Browse Source

fix: tab control

Signed-off-by: mertmit <mertmit99@gmail.com>
pull/5172/head
mertmit 2 years ago
parent
commit
38175509d8
  1. 25
      packages/nc-gui/composables/useTabs.ts
  2. 11
      packages/nc-gui/pages/[projectType]/[projectId]/index.vue

25
packages/nc-gui/composables/useTabs.ts

@ -17,6 +17,10 @@ export const useTabs = createSharedComposable(() => {
const route = $(router.currentRoute) const route = $(router.currentRoute)
const { t } = useI18n()
const { isUIAllowed } = useUIPermission()
const { bases, tables } = useProject() const { bases, tables } = useProject()
const projectType = $computed(() => route.params.projectType as string) const projectType = $computed(() => route.params.projectType as string)
@ -55,8 +59,8 @@ export const useTabs = createSharedComposable(() => {
} }
return index return index
} else if (routeName.startsWith('nc-projectId-index-index-auth')) { } else if (routeName.startsWith('projectType-projectId-index-index-auth')) {
return tabs.value.findIndex((t) => t.type === 'auth') return tabs.value.findIndex((t) => t.type === TabType.AUTH)
} }
// by default, it's showing Team & Auth // by default, it's showing Team & Auth
@ -155,5 +159,22 @@ export const useTabs = createSharedComposable(() => {
} }
} }
watch(
() => route.name,
(n, o) => {
if (n === o) return
if (!n || !/^projectType-projectId-index-index/.test(n.toString())) return
const activeTabRoute = n.toString().replace('projectType-projectId-index-index-', '')
switch (activeTabRoute) {
case TabType.AUTH:
if (isUIAllowed('teamAndAuth')) addTab({ id: TabType.AUTH, type: TabType.AUTH, title: t('title.teamAndAuth') })
break
default:
break
}
},
{ immediate: true },
)
return { tabs, addTab, activeTabIndex, activeTab, clearTabs, closeTab, updateTab } return { tabs, addTab, activeTabIndex, activeTab, clearTabs, closeTab, updateTab }
}) })

11
packages/nc-gui/pages/[projectType]/[projectId]/index.vue

@ -164,8 +164,6 @@ onKeyStroke(
{ eventName: 'keydown' }, { eventName: 'keydown' },
) )
clearTabs()
onBeforeMount(async () => { onBeforeMount(async () => {
try { try {
await loadProject() await loadProject()
@ -179,8 +177,8 @@ onBeforeMount(async () => {
message.error(await extractSdkResponseErrorMsg(e)) message.error(await extractSdkResponseErrorMsg(e))
} }
if (!route.params.type && isUIAllowed('teamAndAuth')) { if (route.name === 'projectType-projectId-index-index' && isUIAllowed('teamAndAuth')) {
addTab({ type: TabType.AUTH, title: t('title.teamAndAuth') }) addTab({ id: TabType.AUTH, type: TabType.AUTH, title: t('title.teamAndAuth') })
} }
/** If v1 url found navigate to corresponding new url */ /** If v1 url found navigate to corresponding new url */
@ -195,7 +193,10 @@ onMounted(() => {
toggleHasSidebar(true) toggleHasSidebar(true)
}) })
onBeforeUnmount(reset) onBeforeUnmount(() => {
clearTabs()
reset()
})
function openKeyboardShortcutDialog() { function openKeyboardShortcutDialog() {
$e('a:actions:keyboard-shortcut') $e('a:actions:keyboard-shortcut')

Loading…
Cancel
Save