@knapsack/app
Version:
Build Design Systems on top of knapsack, by Basalt
23 lines (21 loc) • 596 B
text/typescript
import { KnapsackNavItem } from '../../schemas/nav';
export function getBreadcrumb({
navItem,
navItems,
rootKey = 'root',
}: {
navItem: KnapsackNavItem;
navItems: KnapsackNavItem[];
rootKey?: string;
}): string[] {
const breadcrumb: string[] = [];
const getParentItem = (parentId: string): KnapsackNavItem =>
navItems.find(({ id }) => parentId === id);
let { parentId } = navItem;
while (parentId !== rootKey) {
const parentItem = getParentItem(parentId);
breadcrumb.push(parentItem.name);
parentId = parentItem.parentId;
}
return breadcrumb.reverse();
}