analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
75 lines • 2.46 kB
TypeScript
/**
* 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