38478-vm/frontend/src/menuAside.ts
2026-02-16 11:58:59 +00:00

124 lines
4.0 KiB
TypeScript

import * as icon from '@mdi/js';
import { MenuAsideItem } from './interfaces'
const menuAside: MenuAsideItem[] = [
{
href: '/dashboard',
icon: icon.mdiViewDashboardOutline,
label: 'Dashboard',
},
{
href: '/users/users-list',
label: 'Users',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: icon.mdiAccountGroup ?? icon.mdiTable,
permissions: 'READ_USERS'
},
{
href: '/roles/roles-list',
label: 'Roles',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: icon.mdiShieldAccountVariantOutline ?? icon.mdiTable,
permissions: 'READ_ROLES'
},
{
href: '/permissions/permissions-list',
label: 'Permissions',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: icon.mdiShieldAccountOutline ?? icon.mdiTable,
permissions: 'READ_PERMISSIONS'
},
{
href: '/discord_bots/discord_bots-list',
label: 'Discord bots',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiRobot' in icon ? icon['mdiRobot' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_DISCORD_BOTS'
},
{
href: '/discord_guilds/discord_guilds-list',
label: 'Discord guilds',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiDiscord' in icon ? icon['mdiDiscord' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_DISCORD_GUILDS'
},
{
href: '/voice_channels/voice_channels-list',
label: 'Voice channels',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiVolumeHigh' in icon ? icon['mdiVolumeHigh' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_VOICE_CHANNELS'
},
{
href: '/audio_assets/audio_assets-list',
label: 'Audio assets',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiMusicNote' in icon ? icon['mdiMusicNote' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_AUDIO_ASSETS'
},
{
href: '/slash_commands/slash_commands-list',
label: 'Slash commands',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiSlashForward' in icon ? icon['mdiSlashForward' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_SLASH_COMMANDS'
},
{
href: '/voice_sessions/voice_sessions-list',
label: 'Voice sessions',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiAccessPointNetwork' in icon ? icon['mdiAccessPointNetwork' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_VOICE_SESSIONS'
},
{
href: '/playback_events/playback_events-list',
label: 'Playback events',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiPlayCircle' in icon ? icon['mdiPlayCircle' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_PLAYBACK_EVENTS'
},
{
href: '/reconnect_logs/reconnect_logs-list',
label: 'Reconnect logs',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiReloadAlert' in icon ? icon['mdiReloadAlert' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_RECONNECT_LOGS'
},
{
href: '/bot_settings/bot_settings-list',
label: 'Bot settings',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: 'mdiCogs' in icon ? icon['mdiCogs' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_BOT_SETTINGS'
},
{
href: '/profile',
label: 'Profile',
icon: icon.mdiAccountCircle,
},
{
href: '/api-docs',
target: '_blank',
label: 'Swagger API',
icon: icon.mdiFileCode,
permissions: 'READ_API_DOCS'
},
]
export default menuAside