import * as React from "react"; import { BlockMapType, MapPageUrl, MapImageUrl } from "../types"; import PageIcon from "./page-icon"; interface PageHeaderProps { blockMap: BlockMapType; mapPageUrl: MapPageUrl; mapImageUrl: MapImageUrl; } const PageHeader: React.FC = ({ blockMap, mapPageUrl, mapImageUrl }) => { const blockIds = Object.keys(blockMap); const activePageId = blockIds[0]; if (!activePageId) { return null; } const breadcrumbs = []; let currentPageId = activePageId; do { const block = blockMap[currentPageId]; if (!block || !block.value) { break; } const title = block.value.properties?.title[0][0]; const icon = (block.value as any).format?.page_icon; if (!(title || icon)) { break; } breadcrumbs.push({ block, active: currentPageId === activePageId, pageId: currentPageId, title, icon }); const parentId = block.value.parent_id; if (!parentId) { break; } currentPageId = parentId; } while (true); breadcrumbs.reverse(); return (
{breadcrumbs.map((breadcrumb, index) => ( {breadcrumb.icon && ( )} {breadcrumb.title && ( {breadcrumb.title} )} {index < breadcrumbs.length - 1 && ( / )} ))}
); }; export default PageHeader;