76 lines
1.3 KiB
TypeScript
76 lines
1.3 KiB
TypeScript
import {
|
|
LayoutDashboard,
|
|
Settings2,
|
|
Users,
|
|
Shield,
|
|
} from '@lucide/svelte';
|
|
|
|
export type SystemContext = 'fixed_asset' | 'inventory';
|
|
|
|
export interface NavItem {
|
|
title: string;
|
|
url: string;
|
|
permission?: string;
|
|
systemContext?: SystemContext;
|
|
}
|
|
|
|
export interface NavMainItem {
|
|
title: string;
|
|
url: string;
|
|
icon: any;
|
|
isActive?: boolean;
|
|
permission?: string;
|
|
items?: NavItem[];
|
|
}
|
|
|
|
/**
|
|
* Navegación principal del dashboard.
|
|
* Agrega aquí los módulos de tu proyecto.
|
|
*/
|
|
export function getNavMain(): NavMainItem[] {
|
|
return [
|
|
{
|
|
title: 'Dashboard',
|
|
url: '/dashboard',
|
|
icon: LayoutDashboard,
|
|
},
|
|
{
|
|
title: 'Usuarios',
|
|
url: '/dashboard/users',
|
|
icon: Users,
|
|
},
|
|
{
|
|
title: 'Roles y permisos',
|
|
url: '/dashboard/roles',
|
|
icon: Shield,
|
|
},
|
|
{
|
|
title: 'Configuración',
|
|
url: '/dashboard/settings/general',
|
|
icon: Settings2,
|
|
},
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Datos completos del sidebar (navegación + usuario fallback + proyectos).
|
|
* El usuario real se inyecta desde page.data en app-sidebar.svelte.
|
|
*/
|
|
export function getSidebarData() {
|
|
return {
|
|
navMain: getNavMain(),
|
|
projects: [] as { name: string; url: string; icon: any }[],
|
|
user: {
|
|
name: '',
|
|
email: '',
|
|
username: '',
|
|
firstName: null,
|
|
lastName: null,
|
|
displayName: '',
|
|
avatarUrl: null,
|
|
workspaceAvatarUrl: null,
|
|
legacyAvatarUrl: null,
|
|
},
|
|
};
|
|
}
|