From 816c5aac970d663ea52bba7fef3198d069cffc2e Mon Sep 17 00:00:00 2001 From: Jin Yi Date: Tue, 10 Feb 2026 17:48:52 +0900 Subject: [PATCH] refactor: tab style modified --- .../content/setting/WorkspacePanelContent.vue | 170 ++++++++++-------- 1 file changed, 95 insertions(+), 75 deletions(-) diff --git a/src/components/dialog/content/setting/WorkspacePanelContent.vue b/src/components/dialog/content/setting/WorkspacePanelContent.vue index 049b6456ab..0aea250d7b 100644 --- a/src/components/dialog/content/setting/WorkspacePanelContent.vue +++ b/src/components/dialog/content/setting/WorkspacePanelContent.vue @@ -9,81 +9,98 @@ {{ workspaceName }} -
- - {{ $t('workspacePanel.tabs.planCredits') }} - - {{ - $t('workspacePanel.tabs.membersCount', { - count: isInPersonalWorkspace ? 1 : members.length - }) - }} - - + +
+ + + {{ $t('workspacePanel.tabs.planCredits') }} + + + {{ + $t('workspacePanel.tabs.membersCount', { + count: isInPersonalWorkspace ? 1 : members.length + }) + }} + + - - -
+ +
- - + + + + + + + @@ -93,8 +110,7 @@ import Menu from 'primevue/menu' import { computed, onMounted, ref } from 'vue' import { useI18n } from 'vue-i18n' -import Tab from '@/components/tab/Tab.vue' -import TabList from '@/components/tab/TabList.vue' +import { TabsContent, TabsList, TabsRoot, TabsTrigger } from 'reka-ui' import WorkspaceProfilePic from '@/components/common/WorkspaceProfilePic.vue' import MembersPanelContent from '@/components/dialog/content/setting/MembersPanelContent.vue' @@ -103,6 +119,14 @@ import SubscriptionPanelContentWorkspace from '@/platform/cloud/subscription/com import { useWorkspaceUI } from '@/platform/workspace/composables/useWorkspaceUI' import { useTeamWorkspaceStore } from '@/platform/workspace/stores/teamWorkspaceStore' import { useDialogService } from '@/services/dialogService' +import { cn } from '@/utils/tailwindUtil' + +const tabTriggerBase = + 'flex items-center justify-center shrink-0 px-2.5 py-2 text-sm rounded-lg cursor-pointer transition-all duration-200 outline-hidden border-none' +const tabTriggerActive = + 'bg-interface-menu-component-surface-hovered text-text-primary text-bold' +const tabTriggerInactive = + 'bg-transparent text-text-secondary hover:bg-button-hover-surface focus:bg-button-hover-surface' const { defaultTab = 'plan' } = defineProps<{ defaultTab?: string @@ -128,10 +152,6 @@ const { fetchMembers, fetchPendingInvites } = workspaceStore const { workspaceRole, permissions, uiConfig } = useWorkspaceUI() const activeTab = ref('plan') -function setActiveTab(tab: string) { - activeTab.value = tab -} - const menu = ref | null>(null) function handleLeaveWorkspace() { @@ -205,7 +225,7 @@ const menuItems = computed(() => { }) onMounted(() => { - setActiveTab(defaultTab) + activeTab.value = defaultTab fetchMembers() fetchPendingInvites() })