From 5a21ac47ebe17fea49955b12aa8511345b007c83 Mon Sep 17 00:00:00 2001 From: archipelago Date: Tue, 14 Jul 2026 06:42:08 -0400 Subject: [PATCH] =?UTF-8?q?fix(ui):=20standard=20tab=20+=20toggle=20stylin?= =?UTF-8?q?g=20=E2=80=94=20Federation=20view=20tabs,=20WLAN=20switch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Federation List/Map tabs now use the Home mode-switcher tablist (full-width on mobile, shrink-wrapped on desktop, proper tablist a11y) - Network Interfaces WLAN adapter toggle replaced with the shared ToggleSwitch used by AI data access in Settings; ToggleSwitch gains optional disabled/ariaLabel props (non-breaking) Co-Authored-By: Claude Fable 5 --- neode-ui/src/components/ToggleSwitch.vue | 6 +++++- neode-ui/src/views/Federation.vue | 10 ++++++---- neode-ui/src/views/Server.vue | 15 +++++---------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/neode-ui/src/components/ToggleSwitch.vue b/neode-ui/src/components/ToggleSwitch.vue index 74199f5c..a743fdf7 100644 --- a/neode-ui/src/components/ToggleSwitch.vue +++ b/neode-ui/src/components/ToggleSwitch.vue @@ -3,10 +3,12 @@ type="button" role="switch" :aria-checked="modelValue" + :aria-label="ariaLabel" + :disabled="disabled" tabindex="-1" data-controller-ignore class="w-10 h-6 rounded-full shrink-0 transition-colors relative" - :class="modelValue ? 'bg-orange-500' : 'bg-white/15'" + :class="[modelValue ? 'bg-orange-500' : 'bg-white/15', disabled ? 'opacity-40 cursor-not-allowed' : '']" @click="$emit('update:modelValue', !modelValue)" >
defineProps<{ modelValue: boolean + disabled?: boolean + ariaLabel?: string }>() defineEmits<{ diff --git a/neode-ui/src/views/Federation.vue b/neode-ui/src/views/Federation.vue index c7d0af6d..f96a215f 100644 --- a/neode-ui/src/views/Federation.vue +++ b/neode-ui/src/views/Federation.vue @@ -15,13 +15,15 @@ @rotate="rotateDid" /> - -
+ +
- + @update:model-value="toggleWifiRadio(iface)" + />

No physical interfaces detected

@@ -413,6 +407,7 @@ import QuickActionsCard from './server/QuickActionsCard.vue' import TorServicesCard from './server/TorServicesCard.vue' import ServerModals from './server/ServerModals.vue' import FipsNetworkCard from './server/FipsNetworkCard.vue' +import ToggleSwitch from '@/components/ToggleSwitch.vue' import type { TorServiceInfo } from './server/TorServicesCard.vue' const appStore = useAppStore()