From cd85871d0109feae90a99574b8bcc82cd80db3b1 Mon Sep 17 00:00:00 2001 From: patak Date: Mon, 19 Dec 2022 16:44:14 +0100 Subject: [PATCH] feat: account switcher sidebar (#460) * feat: account switcher sidebar * fix: defer loading sidebar until masto initialised * fix: only show user switcher for 2 or more accounts * chore: use `ofetch` (newer version of `ohymfetch`) * chore: early alpha warning * fix: handle missing user in github preview * refactor: avoid circular auto-import Co-authored-by: Daniel Roe --- components/nav/SelectFeatureFlags.vue | 6 +++ components/user/UserPicker.vue | 30 +++++++++++++++ composables/featureFlags.ts | 5 +++ layouts/default.vue | 55 +++++++++++++++------------ locales/cs-CZ.json | 1 + locales/de-DE.json | 1 + locales/en-US.json | 1 + locales/es-ES.json | 1 + locales/fr-FR.json | 1 + locales/ja-JP.json | 1 + locales/zh-CN.json | 1 + 11 files changed, 78 insertions(+), 25 deletions(-) create mode 100644 components/user/UserPicker.vue diff --git a/components/nav/SelectFeatureFlags.vue b/components/nav/SelectFeatureFlags.vue index 600b81d1..9de3d085 100644 --- a/components/nav/SelectFeatureFlags.vue +++ b/components/nav/SelectFeatureFlags.vue @@ -24,6 +24,12 @@ const featureFlags = useFeatureFlags() > {{ $t('feature_flag.github_cards') }} + + {{ $t('feature_flag.user_switcher_sidebar') }} + diff --git a/components/user/UserPicker.vue b/components/user/UserPicker.vue new file mode 100644 index 00000000..0d9c17f6 --- /dev/null +++ b/components/user/UserPicker.vue @@ -0,0 +1,30 @@ + + + diff --git a/composables/featureFlags.ts b/composables/featureFlags.ts index b4e7135d..d5903bfe 100644 --- a/composables/featureFlags.ts +++ b/composables/featureFlags.ts @@ -4,6 +4,7 @@ export interface FeatureFlags { experimentalVirtualScroll: boolean experimentalAvatarOnAvatar: boolean experimentalGitHubCards: boolean + experimentalUserSwitcherSidebar: boolean } export type FeatureFlagsMap = Record @@ -12,6 +13,7 @@ export function getDefaultFeatureFlags(): FeatureFlags { experimentalVirtualScroll: false, experimentalAvatarOnAvatar: true, experimentalGitHubCards: true, + experimentalUserSwitcherSidebar: true, } } @@ -31,3 +33,6 @@ export function toggleFeatureFlag(key: keyof FeatureFlags) { else featureFlags[key] = true } + +const userSwitcherSidebar = eagerComputed(() => useFeatureFlags().experimentalUserSwitcherSidebar) +export const showUserSwitcherSidebar = computed(() => useUsers().value.length > 1 && userSwitcherSidebar.value) diff --git a/layouts/default.vue b/layouts/default.vue index d08587e6..0b6f51bf 100644 --- a/layouts/default.vue +++ b/layouts/default.vue @@ -1,14 +1,38 @@