From 59cd41d3319fc3c47c1acb5d97aceefc9c43b163 Mon Sep 17 00:00:00 2001 From: Kasper Seweryn Date: Thu, 25 Jan 2024 00:38:38 +0100 Subject: [PATCH] feat: create router for UI v2 --- front/src/App.vue | 8 +- front/src/router/index.ts | 8 +- front/src/router/routes/index.ts | 2 - front/src/router/routes/ui.ts | 10 +- front/src/ui/components/CoverArt.vue | 10 +- front/src/ui/components/Sidebar.vue | 132 ++++++++-- front/src/ui/components/UploadGroupList.vue | 103 +++++--- front/src/ui/components/UploadList.vue | 60 ++++- front/src/ui/components/UploadModal.vue | 33 ++- front/src/ui/components/VerticalCollapse.vue | 5 +- front/src/ui/composables/bytes.ts | 1 - front/src/ui/composables/metadata.ts | 2 +- front/src/ui/pages/index.vue | 95 ++++++-- front/src/ui/pages/upload.vue | 27 ++- front/src/ui/pages/upload/all.vue | 28 ++- front/src/ui/pages/upload/index.vue | 18 +- front/src/ui/pages/upload/running.vue | 5 +- front/src/ui/routes/auth.ts | 68 ++++++ front/src/ui/routes/content.ts | 41 ++++ front/src/ui/routes/index.ts | 139 +++++++++++ front/src/ui/routes/library.ts | 238 +++++++++++++++++++ front/src/ui/routes/manage.ts | 188 +++++++++++++++ front/src/ui/routes/settings.ts | 30 +++ front/src/ui/routes/ui.ts | 50 ++++ front/src/ui/routes/user.ts | 34 +++ front/src/ui/stores/upload.ts | 9 +- front/src/ui/workers/file-metadata-parser.ts | 1 - 27 files changed, 1198 insertions(+), 147 deletions(-) create mode 100644 front/src/ui/routes/auth.ts create mode 100644 front/src/ui/routes/content.ts create mode 100644 front/src/ui/routes/index.ts create mode 100644 front/src/ui/routes/library.ts create mode 100644 front/src/ui/routes/manage.ts create mode 100644 front/src/ui/routes/settings.ts create mode 100644 front/src/ui/routes/ui.ts create mode 100644 front/src/ui/routes/user.ts diff --git a/front/src/App.vue b/front/src/App.vue index 3beccfd3f..a534848da 100644 --- a/front/src/App.vue +++ b/front/src/App.vue @@ -11,9 +11,7 @@ import { useStore } from '~/store' import useLogger from '~/composables/useLogger' -import { useRoute } from 'vue-router' - -const route = useRoute() +import { useLocalStorage } from '@vueuse/core' const logger = useLogger() logger.debug('App setup()') @@ -71,10 +69,12 @@ const { width } = useWindowSize() // NOTE: We're not checking if we're authenticated in the store, // because we want to learn if we are authenticated at all store.dispatch('auth/fetchUser') + +const isUIv2 = useLocalStorage('ui-v2', false) diff --git a/front/src/router/index.ts b/front/src/router/index.ts index ce71293fa..8589d6249 100644 --- a/front/src/router/index.ts +++ b/front/src/router/index.ts @@ -1,6 +1,12 @@ +import { useLocalStorage } from '@vueuse/core' import { createRouter, createWebHistory } from 'vue-router' import { forceInstanceChooser } from './guards' -import routes from './routes' + +import routesV1 from './routes' +import routesV2 from '~/ui/routes' + +const isUIv2 = useLocalStorage('ui-v2', false) +const routes = isUIv2.value ? routesV2 : routesV1 const router = createRouter({ history: createWebHistory(import.meta.env.VUE_APP_ROUTER_BASE_URL as string ?? '/'), diff --git a/front/src/router/routes/index.ts b/front/src/router/routes/index.ts index 6bad9918c..d125d99d6 100644 --- a/front/src/router/routes/index.ts +++ b/front/src/router/routes/index.ts @@ -7,11 +7,9 @@ import manage from './manage' import store from '~/store' import auth from './auth' import user from './user' -import ui from './ui' import { requireLoggedIn } from '~/router/guards' export default [ - ...ui, { path: '/', name: 'index', diff --git a/front/src/router/routes/ui.ts b/front/src/router/routes/ui.ts index 9b5c44e02..f4994b901 100644 --- a/front/src/router/routes/ui.ts +++ b/front/src/router/routes/ui.ts @@ -9,18 +9,18 @@ export default [ children: [ { path: 'upload', - name: 'ui.upload', + name: 'upload', component: () => import('~/ui/pages/upload.vue'), children: [ { path: '', - name: 'ui.upload.index', + name: 'upload.index', component: () => import('~/ui/pages/upload/index.vue') }, { path: 'running', - name: 'ui.upload.running', + name: 'upload.running', component: () => import('~/ui/pages/upload/running.vue'), beforeEnter: (_to, _from, next) => { const uploads = useUploadsStore() @@ -34,13 +34,13 @@ export default [ { path: 'history', - name: 'ui.upload.history', + name: 'upload.history', component: () => import('~/ui/pages/upload/history.vue') }, { path: 'all', - name: 'ui.upload.all', + name: 'upload.all', component: () => import('~/ui/pages/upload/all.vue') } ] diff --git a/front/src/ui/components/CoverArt.vue b/front/src/ui/components/CoverArt.vue index 2b425130f..c39529271 100644 --- a/front/src/ui/components/CoverArt.vue +++ b/front/src/ui/components/CoverArt.vue @@ -15,8 +15,14 @@ const coverUrl = computed(() => { diff --git a/front/src/ui/components/Sidebar.vue b/front/src/ui/components/Sidebar.vue index 47f2e725c..8022a02bb 100644 --- a/front/src/ui/components/Sidebar.vue +++ b/front/src/ui/components/Sidebar.vue @@ -1,7 +1,7 @@