Files
start-os/web/projects/ui/src/app/utils/system-utilities.ts
waterplea 7689cbbe0d chore: add sections
Signed-off-by: waterplea <alexander@inkin.ru>
2024-05-30 12:04:38 +01:00

51 lines
1.3 KiB
TypeScript

import { inject } from '@angular/core'
import { toSignal } from '@angular/core/rxjs-interop'
import { BadgeService } from 'src/app/services/badge.service'
export const SYSTEM_UTILITIES: Record<string, { icon: string; title: string }> =
{
'/portal/system/notifications': {
icon: 'tuiIconBell',
title: 'Notifications',
},
'/portal/system/marketplace': {
icon: 'tuiIconShoppingCart',
title: 'Marketplace',
},
'/portal/system/updates': {
icon: 'tuiIconGlobe',
title: 'Updates',
},
'/portal/system/sideload': {
icon: 'tuiIconUpload',
title: 'Sideload',
},
'/portal/system/logs': {
icon: 'tuiIconFileText',
title: 'Logs',
},
'/portal/system/metrics': {
icon: 'tuiIconActivity',
title: 'Metrics',
},
'/portal/system/backups': {
icon: 'tuiIconSave',
title: 'Backups',
},
'/portal/system/settings': {
icon: 'tuiIconTool',
title: 'Settings',
},
}
export function getMenu() {
const badge = inject(BadgeService)
return Object.keys(SYSTEM_UTILITIES).map(key => ({
name: SYSTEM_UTILITIES[key].title,
icon: SYSTEM_UTILITIES[key].icon,
routerLink: key,
badge: toSignal(badge.getCount(key), { initialValue: 0 }),
}))
}