import { PageMeta } from "../types"; import { FilterList, Option } from "./filter"; import { faFileLines } from "@fortawesome/free-solid-svg-icons"; export function PageNavigator({ allPages, onNavigate, currentPage, }: { allPages: Set; onNavigate: (page: string | undefined) => void; currentPage?: string; }) { let options: Option[] = []; for (let pageMeta of allPages) { if (currentPage && currentPage === pageMeta.name) { continue; } // Order by last modified date in descending order let orderId = -pageMeta.lastModified; // Unless it was opened and is still in memory if (pageMeta.lastOpened) { orderId = -pageMeta.lastOpened; } options.push({ ...pageMeta, orderId: orderId, }); } return ( { onNavigate(opt?.name); }} /> ); }