From 9c0fb56b2850bff3fe8358b82cafc1a4fbf8989e Mon Sep 17 00:00:00 2001 From: Baptiste Leproux Date: Wed, 29 Oct 2025 17:37:53 +0100 Subject: [PATCH 1/2] feat(tree): compute tree based on fsPath --- package.json | 2 +- src/app/src/app.vue | 4 +- src/app/src/components/AppFooter.vue | 16 +- src/app/src/components/header/HeaderMain.vue | 2 +- .../src/components/header/HeaderReview.vue | 2 +- .../src/components/media/MediaImageEditor.vue | 2 +- .../shared/item/ItemActionsDropdown.vue | 2 +- .../shared/item/ItemActionsToolbar.vue | 6 +- .../src/components/shared/item/ItemBadge.vue | 2 +- .../components/shared/item/ItemBreadcrumb.vue | 8 +- .../src/components/shared/item/ItemCard.vue | 5 +- .../components/shared/item/ItemCardForm.vue | 8 +- .../src/components/shared/item/ItemTree.vue | 4 +- src/app/src/composables/useContext.ts | 75 +++++-- src/app/src/composables/useStudio.ts | 6 +- src/app/src/composables/useStudioState.ts | 7 +- src/app/src/composables/useTree.ts | 40 ++-- src/app/src/pages/media.vue | 2 +- src/app/src/pages/review.vue | 2 +- src/app/src/types/config.ts | 2 +- src/app/src/types/context.ts | 2 +- src/app/src/types/draft.ts | 2 +- src/app/src/types/tree.ts | 6 +- src/app/src/utils/context.ts | 2 +- src/app/src/utils/draft.ts | 12 +- src/app/src/utils/media.ts | 7 - src/app/src/utils/tree.ts | 54 ++--- src/app/test/integration/actions.test.ts | 174 +++++++++------- src/app/test/mocks/tree.ts | 20 +- src/app/test/unit/utils/context.test.ts | 95 ++++++--- src/app/test/unit/utils/draft.test.ts | 4 +- src/app/test/unit/utils/tree.test.ts | 194 +++++++++--------- src/app/test/utils/index.ts | 4 +- src/module/test/utils/collection.test.ts | 47 +---- 34 files changed, 435 insertions(+), 385 deletions(-) diff --git a/package.json b/package.json index d09b95d4..d9df876c 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "dev:prepare": "nuxt-module-build build --stub src/module && nuxt-module-build prepare src/module && nuxi prepare playground/docus", "release": "pnpm run lint && pnpm run test && pnpm run prepack && changelogen --release && npm publish && git push --follow-tags", "lint": "eslint .", - "typecheck": "nuxt typecheck", + "typecheck": "nuxt typecheck && vue-tsc -p src/app/tsconfig.app.json", "verify": "pnpm run lint && pnpm run typecheck && pnpm run test", "test": "vitest run", "test:watch": "vitest watch", diff --git a/src/app/src/app.vue b/src/app/src/app.vue index c69f0195..1d3571c1 100644 --- a/src/app/src/app.vue +++ b/src/app/src/app.vue @@ -33,13 +33,13 @@ function detectActiveDocuments() { } async function editContentFile(id: string) { - await context.activeTree.value.selectItemById(id) + await context.activeTree.value.selectItemByFsPath(id) ui.open() } async function open() { await router.push(`/${location.value.feature}`) - await context.activeTree.value.selectItemById(location.value.itemId) + await context.activeTree.value.selectItemByFsPath(location.value.fsPath) ui.open() } diff --git a/src/app/src/components/AppFooter.vue b/src/app/src/components/AppFooter.vue index f2773eaa..ee598e13 100644 --- a/src/app/src/components/AppFooter.vue +++ b/src/app/src/components/AppFooter.vue @@ -7,12 +7,12 @@ const { ui, host, git } = useStudio() const { preferences, updatePreference, unsetActiveLocation } = useStudioState() const user = host.user.get() -const showTechnicalMode = computed({ - get: () => preferences.value.showTechnicalMode, - set: (value) => { - updatePreference('showTechnicalMode', value) - }, -}) +// const showTechnicalMode = computed({ +// get: () => preferences.value.showTechnicalMode, +// set: (value) => { +// updatePreference('showTechnicalMode', value) +// }, +// }) const repositoryUrl = computed(() => git.getBranchUrl()) const userMenuItems = computed(() => [ @@ -55,7 +55,7 @@ function closeStudio() { :items="userMenuItems" :ui="{ content: 'w-full' }" > -