UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

75 lines 2.46 kB
/** * Interface para um item de breadcrumb */ export interface BreadcrumbItem { id: string; name: string; url: string; } /** * Interface para o estado do store de breadcrumbs */ interface BreadcrumbStore { breadcrumbs: Record<string, BreadcrumbItem[]>; setBreadcrumbs: (namespace: string, items: BreadcrumbItem[]) => void; addBreadcrumb: (namespace: string, item: BreadcrumbItem) => void; updateBreadcrumb: (namespace: string, itemId: string, updates: Partial<BreadcrumbItem>) => void; removeBreadcrumbFrom: (namespace: string, itemId: string) => void; sliceBreadcrumbs: (namespace: string, index: number) => void; clearBreadcrumbs: (namespace: string) => void; getBreadcrumbs: (namespace: string) => BreadcrumbItem[]; } /** * Store Zustand para gerenciar breadcrumbs * Suporta múltiplas instâncias através de namespaces */ export declare const useBreadcrumbStore: import("zustand").UseBoundStore<import("zustand").StoreApi<BreadcrumbStore>>; /** * Hook customizado para facilitar o uso de breadcrumbs * * @param namespace - Identificador único para esta instância de breadcrumbs * @returns Objeto com breadcrumbs e métodos para manipulá-los * * @example * ```tsx * const { breadcrumbs, setBreadcrumbs, addBreadcrumb } = useBreadcrumb('performance'); * * // Definir breadcrumbs iniciais * setBreadcrumbs([ * { id: 'home', name: 'Home', url: '/' }, * { id: 'page', name: 'Page', url: '/page' } * ]); * * // Adicionar novo breadcrumb * addBreadcrumb({ id: 'detail', name: 'Detail', url: '/page/detail' }); * ``` */ export declare const useBreadcrumb: (namespace: string) => { breadcrumbs: BreadcrumbItem[]; /** * Define todos os breadcrumbs de uma vez */ setBreadcrumbs: (items: BreadcrumbItem[]) => void; /** * Adiciona um novo breadcrumb ao final */ addBreadcrumb: (item: BreadcrumbItem) => void; /** * Atualiza um breadcrumb existente */ updateBreadcrumb: (itemId: string, updates: Partial<BreadcrumbItem>) => void; /** * Remove um breadcrumb e todos os seguintes */ removeBreadcrumbFrom: (itemId: string) => void; /** * Mantém apenas os breadcrumbs até o índice especificado (inclusivo) */ sliceBreadcrumbs: (index: number) => void; /** * Limpa todos os breadcrumbs */ clearBreadcrumbs: () => void; }; export {}; //# sourceMappingURL=breadcrumbStore.d.ts.map