From 165c40405c3181529afac652d6a0a7d51fa31c94 Mon Sep 17 00:00:00 2001 From: Farnabaz Date: Wed, 24 Sep 2025 11:51:24 +0200 Subject: [PATCH] feat: show document sync and edit this page button --- src/app/src/App.vue | 72 +++++++++++-------- .../components/panel/base/PanelBaseFooter.vue | 10 +++ src/app/src/composables/useStudio.ts | 6 +- src/app/src/composables/useUi.ts | 5 +- 4 files changed, 60 insertions(+), 33 deletions(-) diff --git a/src/app/src/App.vue b/src/app/src/App.vue index fbc6f6c0..137fe7c4 100644 --- a/src/app/src/App.vue +++ b/src/app/src/App.vue @@ -4,7 +4,8 @@ import PanelContent from './components/panel/content/PanelContent.vue' import PanelMedia from './components/panel/PanelMedia.vue' import PanelConfig from './components/panel/PanelConfig.vue' import { useSidebar } from './composables/useSidebar' -import { watch } from 'vue' +import { watch, ref } from 'vue' +import { StudioFeature } from './types' const { sidebarWidth } = useSidebar() const { ui, host, isReady, tree } = useStudio() @@ -13,29 +14,30 @@ watch(sidebarWidth, () => { host.ui.updateStyles() } }) -// const activeDocuments = ref<{ id: string, label: string, value: string }[]>([]) +const activeDocuments = ref<{ id: string, title: string }[]>([]) -// function detectActiveDocuments() { -// activeDocuments.value = host.document.detectActives().map((content) => { -// return { -// id: content.id, -// label: content.title, -// value: content.id, -// onSelect: () => { -// onContentSelect(content.id) -// }, -// } -// }) -// } +function detectActiveDocuments() { + activeDocuments.value = host.document.detectActives().map((content) => { + return { + id: content.id, + title: content.title, + } + }) +} -// host.on.mounted(() => { -// detectActiveDocuments() -// host.on.routeChange(() => { -// setTimeout(() => { -// detectActiveDocuments() -// }, 100) -// }) -// }) +function onContentSelect(id: string) { + tree.selectItemById(id) + ui.openPanel(StudioFeature.Content) +} + +host.on.mounted(() => { + detectActiveDocuments() + host.on.routeChange(() => { + setTimeout(() => { + detectActiveDocuments() + }, 100) + }) +}) diff --git a/src/app/src/components/panel/base/PanelBaseFooter.vue b/src/app/src/components/panel/base/PanelBaseFooter.vue index e19c9cfe..9af4d6dd 100644 --- a/src/app/src/components/panel/base/PanelBaseFooter.vue +++ b/src/app/src/components/panel/base/PanelBaseFooter.vue @@ -3,6 +3,7 @@ import { computed } from 'vue' import { useStudio } from '../../../composables/useStudio' const studio = useStudio() +const uiConfig = studio.ui.config const user = studio.host.user.get() @@ -41,6 +42,15 @@ const userMenuItems = computed(() => [