feat(breadcrumb): start implementing interactive breadcrumbs

This commit is contained in:
Elian Doran 2025-12-08 16:01:34 +02:00
parent 6e29fe8d58
commit 5f215b14c2
No known key found for this signature in database
2 changed files with 26 additions and 4 deletions

View File

@ -1,4 +1,13 @@
.component.breadcrumb {
contain: none;
margin: 0 10px;
display: flex;
align-items: center;
font-size: 0.9em;
gap: 0.25em;
a {
color: inherit;
text-decoration: none;
}
}

View File

@ -1,7 +1,8 @@
import { Fragment } from "preact/jsx-runtime";
import "./Breadcrumb.css";
import ActionButton from "./react/ActionButton";
import { useNoteContext } from "./react/hooks";
import NoteLink from "./react/NoteLink";
import { joinElements } from "./react/react_utils";
export default function Breadcrumb() {
const { noteContext } = useNoteContext();
@ -9,9 +10,12 @@ export default function Breadcrumb() {
return (
<div className="breadcrumb">
{joinElements(notePath.map(item => (
<BreadcrumbItem key={item} notePath={item} />
)), <>&nbsp;&nbsp;</>)}
{notePath.map(item => (
<Fragment key={item}>
<BreadcrumbItem notePath={item} />
<BreadcrumbSeparator notePath={item} />
</Fragment>
))}
</div>
)
}
@ -25,6 +29,15 @@ function BreadcrumbItem({ notePath }: { notePath: string }) {
)
}
function BreadcrumbSeparator({ notePath }: { notePath: string}) {
return (
<ActionButton
icon="bx bx-chevron-right"
text=""
/>
)
}
function buildNotePaths(notePathArray: string[] | undefined) {
if (!notePathArray) return [];