mobilizon/js/src/router/groups.ts

71 lines
1.8 KiB
TypeScript

import { RouteConfig } from 'vue-router';
import TodoLists from '@/views/Todos/TodoLists.vue';
import TodoList from '@/views/Todos/TodoList.vue';
import Todo from '@/views/Todos/Todo.vue';
import Settings from '@/views/Group/Settings.vue';
import Resources from '@/views/Resources/Resources.vue';
import ResourceFolder from '@/views/Resources/ResourceFolder.vue';
export enum GroupsRouteName {
TODO_LISTS = 'TODO_LISTS',
TODO_LIST = 'TODO_LIST',
TODO = 'TODO',
GROUP_SETTINGS = 'GROUP_SETTINGS',
PUBLIC_SETTINGS = 'PUBLIC_SETTINGS',
RESOURCES = 'RESOURCES',
RESOURCE_FOLDER_ROOT = 'RESOURCE_FOLDER_ROOT',
RESOURCE_FOLDER = 'RESOURCE_FOLDER',
}
export const groupsRoutes: RouteConfig[] = [
{
path: '/@:preferredUsername/todo-lists',
name: GroupsRouteName.TODO_LISTS,
component: TodoLists,
props: true,
meta: { requiredAuth: true },
},
{
path: '/todo-lists/:id',
name: GroupsRouteName.TODO_LIST,
component: TodoList,
props: true,
meta: { requiredAuth: true },
},
{
path: '/todo/:todoId',
name: GroupsRouteName.TODO,
component: Todo,
props: true,
meta: { requiredAuth: true },
},
{
path: '/@:preferredUsername/resources',
name: GroupsRouteName.RESOURCE_FOLDER_ROOT,
component: ResourceFolder,
props: { path: '/' },
meta: { requiredAuth: true },
},
{
path: '/@:preferredUsername/resources/:path+',
name: GroupsRouteName.RESOURCE_FOLDER,
component: ResourceFolder,
props: true,
meta: { requiredAuth: true },
},
{
path: '/settings',
component: Settings,
props: true,
meta: { requiredAuth: true },
redirect: { name: GroupsRouteName.PUBLIC_SETTINGS },
name: GroupsRouteName.GROUP_SETTINGS,
children: [
{
path: 'public',
name: GroupsRouteName.PUBLIC_SETTINGS,
},
],
},
];