chore: baseline plantilla-proyectos como base del CRM
This commit is contained in:
75
frontend/src/lib/components/sidebar/modules.ts
Normal file
75
frontend/src/lib/components/sidebar/modules.ts
Normal file
@@ -0,0 +1,75 @@
|
||||
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,
|
||||
},
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user