import { NgModule } from '@angular/core'
import { RouterModule, Routes } from '@angular/router'
import { LoginGuard } from '../core'
import { MyAccountAbusesListComponent } from './my-account-abuses/my-account-abuses-list.component'
import { MyAccountApplicationsComponent } from './my-account-applications/my-account-applications.component'
import { MyAccountBlocklistComponent } from './my-account-blocklist/my-account-blocklist.component'
import { MyAccountServerBlocklistComponent } from './my-account-blocklist/my-account-server-blocklist.component'
import { MyAccountNotificationsComponent } from './my-account-notifications/my-account-notifications.component'
import { MyAccountSettingsComponent } from './my-account-settings/my-account-settings.component'
import { MyAccountTwoFactorComponent } from './my-account-settings/my-account-two-factor'
import { MyAccountComponent } from './my-account.component'
const myAccountRoutes: Routes = [
{
path: '',
component: MyAccountComponent,
canActivateChild: [ LoginGuard ],
children: [
{
path: '',
redirectTo: 'settings',
pathMatch: 'full'
},
{
path: 'settings',
component: MyAccountSettingsComponent,
data: {
meta: {
title: $localize`Account settings`
}
}
},
{
path: 'two-factor-auth',
component: MyAccountTwoFactorComponent,
data: {
meta: {
title: $localize`Two factor authentication`
}
}
},
{
path: 'video-channels',
redirectTo: '/my-library/video-channels',
pathMatch: 'full'
},
{
path: 'video-playlists',
redirectTo: '/my-library/video-playlists',
pathMatch: 'full'
},
{
path: 'video-playlists/create',
redirectTo: '/my-library/video-playlists/create',
pathMatch: 'full'
},
{
path: 'video-playlists/:videoPlaylistId',
redirectTo: '/my-library/video-playlists/:videoPlaylistId',
pathMatch: 'full'
},
{
path: 'video-playlists/update/:videoPlaylistId',
redirectTo: '/my-library/video-playlists/update/:videoPlaylistId',
pathMatch: 'full'
},
{
path: 'videos',
redirectTo: '/my-library/videos',
pathMatch: 'full'
},
{
path: 'video-imports',
redirectTo: '/my-library/video-imports',
pathMatch: 'full'
},
{
path: 'subscriptions',
redirectTo: '/my-library/subscriptions',
pathMatch: 'full'
},
{
path: 'ownership',
redirectTo: '/my-library/ownership',
pathMatch: 'full'
},
{
path: 'blocklist/accounts',
component: MyAccountBlocklistComponent,
data: {
meta: {
title: $localize`Muted accounts`
}
}
},
{
path: 'blocklist/servers',
component: MyAccountServerBlocklistComponent,
data: {
meta: {
title: $localize`Muted servers`
}
}
},
{
path: 'history/videos',
redirectTo: '/my-library/history/videos',
pathMatch: 'full'
},
{
path: 'notifications',
component: MyAccountNotificationsComponent,
data: {
meta: {
title: $localize`Notifications`
}
}
},
{
path: 'abuses',
component: MyAccountAbusesListComponent,
data: {
meta: {
title: $localize`My abuse reports`
}
}
},
{
path: 'applications',
component: MyAccountApplicationsComponent,
data: {
meta: {
title: $localize`Applications`
}
}
}
]
}
]
@NgModule({
imports: [ RouterModule.forChild(myAccountRoutes) ],
exports: [ RouterModule ]
})
export class MyAccountRoutingModule {}