51 lines
1.3 KiB
TypeScript
51 lines
1.3 KiB
TypeScript
import type { RouteRecordRaw } from 'vue-router'
|
|
import { useUploadsStore } from '~/ui/stores/upload'
|
|
|
|
export default [
|
|
{
|
|
path: '/ui',
|
|
name: 'ui',
|
|
component: () => import('~/ui/layouts/constrained.vue'),
|
|
children: [
|
|
{
|
|
path: 'upload',
|
|
name: 'upload',
|
|
component: () => import('~/ui/pages/upload.vue'),
|
|
children: [
|
|
{
|
|
path: '',
|
|
name: 'upload.index',
|
|
component: () => import('~/ui/pages/upload/index.vue')
|
|
},
|
|
|
|
{
|
|
path: 'running',
|
|
name: 'upload.running',
|
|
component: () => import('~/ui/pages/upload/running.vue'),
|
|
beforeEnter: (_to, _from, next) => {
|
|
const uploads = useUploadsStore()
|
|
if (uploads.uploadGroups.length === 0) {
|
|
next('/ui/upload')
|
|
} else {
|
|
next()
|
|
}
|
|
}
|
|
},
|
|
|
|
{
|
|
path: 'history',
|
|
name: 'upload.history',
|
|
component: () => import('~/ui/pages/upload/history.vue')
|
|
},
|
|
|
|
{
|
|
path: 'all',
|
|
name: 'upload.all',
|
|
component: () => import('~/ui/pages/upload/all.vue')
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
] as RouteRecordRaw[]
|