mobilizon.chapril.org-mobil.../js/src/router/settings.ts

157 lines
4.7 KiB
TypeScript

import { RouteConfig } from 'vue-router';
import Settings from '@/views/Settings.vue';
import AccountSettings from '@/views/Settings/AccountSettings.vue';
import Preferences from '@/views/Settings/Preferences.vue';
import Notifications from '@/views/Settings/Notifications.vue';
import Dashboard from '@/views/Admin/Dashboard.vue';
import AdminSettings from '@/views/Admin/Settings.vue';
import Follows from '@/views/Admin/Follows.vue';
import Followings from '@/components/Admin/Followings.vue';
import Followers from '@/components/Admin/Followers.vue';
import ReportList from '@/views/Moderation/ReportList.vue';
import Report from '@/views/Moderation/Report.vue';
import Logs from '@/views/Moderation/Logs.vue';
import EditIdentity from '@/views/Account/children/EditIdentity.vue';
export enum SettingsRouteName {
SETTINGS = 'SETTINGS',
ACCOUNT_SETTINGS = 'ACCOUNT_SETTINGS',
ACCOUNT_SETTINGS_GENERAL = 'ACCOUNT_SETTINGS_GENERAL',
PREFERENCES = 'PREFERENCES',
NOTIFICATIONS = 'NOTIFICATIONS',
ADMIN = 'ADMIN',
ADMIN_DASHBOARD = 'ADMIN_DASHBOARD',
ADMIN_SETTINGS = 'ADMIN_SETTINGS',
RELAYS = 'Relays',
RELAY_FOLLOWINGS = 'Followings',
RELAY_FOLLOWERS = 'Followers',
MODERATION = 'MODERATION',
REPORTS = 'Reports',
REPORT = 'Report',
REPORT_LOGS = 'Logs',
CREATE_IDENTITY = 'CreateIdentity',
UPDATE_IDENTITY = 'UpdateIdentity',
IDENTITIES = 'IDENTITIES',
}
export const settingsRoutes: RouteConfig[] = [
{
path: '/settings',
component: Settings,
props: true,
meta: { requiredAuth: true },
redirect: { name: SettingsRouteName.ACCOUNT_SETTINGS },
name: SettingsRouteName.SETTINGS,
children: [
{
path: 'account',
name: SettingsRouteName.ACCOUNT_SETTINGS,
redirect: { name: SettingsRouteName.ACCOUNT_SETTINGS_GENERAL },
},
{
path: 'account/general',
name: SettingsRouteName.ACCOUNT_SETTINGS_GENERAL,
component: AccountSettings,
props: true,
meta: { requiredAuth: true },
},
{
path: 'preferences',
name: SettingsRouteName.PREFERENCES,
component: Preferences,
props: true,
meta: { requiredAuth: true },
},
{
path: 'notifications',
name: SettingsRouteName.NOTIFICATIONS,
component: Notifications,
props: true,
meta: { requiredAuth: true },
},
{
path: 'admin',
name: SettingsRouteName.ADMIN,
redirect: { name: SettingsRouteName.ADMIN_DASHBOARD },
},
{
path: 'admin/dashboard',
name: SettingsRouteName.ADMIN_DASHBOARD,
component: Dashboard,
meta: { requiredAuth: true },
},
{
path: 'admin/settings',
name: SettingsRouteName.ADMIN_SETTINGS,
component: AdminSettings,
props: true,
meta: { requiredAuth: true },
},
{
path: 'admin/relays',
name: SettingsRouteName.RELAYS,
redirect: { name: SettingsRouteName.RELAY_FOLLOWINGS },
component: Follows,
children: [
{
path: 'followings',
name: SettingsRouteName.RELAY_FOLLOWINGS,
component: Followings,
},
{
path: 'followers',
name: SettingsRouteName.RELAY_FOLLOWERS,
component: Followers,
},
],
props: true,
meta: { requiredAuth: true },
},
{
path: '/moderation',
name: SettingsRouteName.MODERATION,
redirect: { name: SettingsRouteName.REPORTS },
},
{
path: '/moderation/reports/:filter?',
name: SettingsRouteName.REPORTS,
component: ReportList,
props: true,
meta: { requiredAuth: true },
},
{
path: '/moderation/report/:reportId',
name: SettingsRouteName.REPORT,
component: Report,
props: true,
meta: { requiredAuth: true },
},
{
path: '/moderation/logs',
name: SettingsRouteName.REPORT_LOGS,
component: Logs,
props: true,
meta: { requiredAuth: true },
},
{
path: '/identity',
name: SettingsRouteName.IDENTITIES,
redirect: { name: SettingsRouteName.UPDATE_IDENTITY },
},
{
path: '/identity/create',
name: SettingsRouteName.CREATE_IDENTITY,
component: EditIdentity,
props: (route) => ({ identityName: route.params.identityName, isUpdate: false }),
},
{
path: '/identity/update/:identityName?',
name: SettingsRouteName.UPDATE_IDENTITY,
component: EditIdentity,
props: (route) => ({ identityName: route.params.identityName, isUpdate: true }),
},
],
},
];