From 400c4291cdfe227cfb753ba50b5ee22e5f0043a2 Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Tue, 11 Aug 2020 17:13:13 -0400 Subject: [PATCH] Open current folder in library / detail --- app/src/components/v-button/v-button.vue | 6 ++- app/src/components/v-item-group/v-item.vue | 6 ++- app/src/components/v-list/v-list-group.vue | 12 +++++- .../v-tabs/v-tab-item/v-tab-item.vue | 2 +- app/src/components/v-tabs/v-tab/v-tab.vue | 6 ++- .../composables/groupable/groupable.test.ts | 8 ++-- app/src/composables/groupable/groupable.ts | 43 +++++++++++++++++-- .../navigation/navigation-folder.vue | 17 ++++++-- .../components/navigation/navigation.vue | 36 +++++++++++++--- .../modules/files/composables/use-folders.ts | 8 +++- .../modules/files/routes/browse/browse.vue | 7 ++- .../drawer-detail/drawer-detail.vue | 5 ++- 12 files changed, 128 insertions(+), 28 deletions(-) diff --git a/app/src/components/v-button/v-button.vue b/app/src/components/v-button/v-button.vue index ab43956ade..ab206b1ddb 100644 --- a/app/src/components/v-button/v-button.vue +++ b/app/src/components/v-button/v-button.vue @@ -126,7 +126,11 @@ export default defineComponent({ if (notEmpty(props.to)) return 'router-link'; return 'button'; }); - const { active, toggle } = useGroupable(props.value, 'button-group'); + + const { active, toggle } = useGroupable({ + value: props.value, + group: 'button-group', + }); return { sizeClass, onClick, component, active, toggle }; diff --git a/app/src/components/v-item-group/v-item.vue b/app/src/components/v-item-group/v-item.vue index 3bbd41953b..f066e85893 100644 --- a/app/src/components/v-item-group/v-item.vue +++ b/app/src/components/v-item-group/v-item.vue @@ -20,7 +20,11 @@ export default defineComponent({ }, }, setup(props) { - const { active, toggle } = useGroupable(props.value, props.scope); + const { active, toggle } = useGroupable({ + value: props.value, + group: props.scope, + }); + return { active, toggle }; }, }); diff --git a/app/src/components/v-list/v-list-group.vue b/app/src/components/v-list/v-list-group.vue index 3fbe65de13..3b445ffe52 100644 --- a/app/src/components/v-list/v-list-group.vue +++ b/app/src/components/v-list/v-list-group.vue @@ -17,7 +17,7 @@ diff --git a/app/src/modules/files/composables/use-folders.ts b/app/src/modules/files/composables/use-folders.ts index 357f1ebb13..bd666032ed 100644 --- a/app/src/modules/files/composables/use-folders.ts +++ b/app/src/modules/files/composables/use-folders.ts @@ -16,23 +16,26 @@ export type Folder = { let loading: Ref | null = null; let folders: Ref | null = null; +let nestedFolders: Ref | null = null; let error: Ref | null = null; export default function useFolders() { if (loading === null) loading = ref(false); if (folders === null) folders = ref(null); + if (nestedFolders === null) nestedFolders = ref(null); if (error === null) error = ref(null); if (folders.value === null && loading.value === false) { fetchFolders(); } - return { loading, folders, error, fetchFolders }; + return { loading, folders, nestedFolders, error, fetchFolders }; async function fetchFolders() { if (loading === null) return; if (folders === null) return; + if (nestedFolders === null) return; if (error === null) return; loading.value = true; @@ -45,7 +48,8 @@ export default function useFolders() { }, }); - folders.value = nestFolders(response.data.data); + folders.value = response.data.data; + nestedFolders.value = nestFolders(response.data.data); } catch (err) { error.value = err; } finally { diff --git a/app/src/modules/files/routes/browse/browse.vue b/app/src/modules/files/routes/browse/browse.vue index 043bb9f453..606813b384 100644 --- a/app/src/modules/files/routes/browse/browse.vue +++ b/app/src/modules/files/routes/browse/browse.vue @@ -84,7 +84,7 @@