analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
45 lines • 1.63 kB
TypeScript
import { type BreadcrumbItem } from '../breadcrumbStore/index';
/**
* Interface para configuração de um nível de breadcrumb dinâmico (com dados)
*/
export interface BreadcrumbLevelWithData<T = any> {
/** Dados do nível atual */
data: T | null;
/** ID extraído da URL para comparação */
urlId?: string;
/** Função para obter o ID dos dados */
getId: (data: T) => string;
/** Função para obter o nome dos dados */
getName: (data: T) => string;
/** Função para construir a URL do breadcrumb */
getUrl: (data: T, previousIds: string[]) => string;
}
/**
* Interface para configuração de um nível de breadcrumb estático (sem dados)
*/
export interface BreadcrumbLevelStatic {
/** Breadcrumb estático */
breadcrumb: BreadcrumbItem;
/** ID extraído da URL para validação (se não estiver na URL, não mostra) */
urlId?: string;
}
/**
* Union type para aceitar ambos os tipos de breadcrumb
*/
export type BreadcrumbLevel<T = any> = BreadcrumbLevelWithData<T> | BreadcrumbLevelStatic;
/**
* Configuração do builder de breadcrumbs
*/
export interface BreadcrumbBuilderConfig {
/** Namespace único para este breadcrumb */
namespace: string;
/** Breadcrumb inicial (raiz) */
root: BreadcrumbItem;
/** Níveis hierárquicos de breadcrumbs (cada um pode ter tipo diferente) */
levels: BreadcrumbLevel<any>[];
}
export declare const useBreadcrumbBuilder: (config: BreadcrumbBuilderConfig) => {
breadcrumbs: BreadcrumbItem[];
sliceBreadcrumbs: (index: number) => void;
};
//# sourceMappingURL=useBreadcrumbBuilder.d.ts.map