feat(web): set breadcrumb trails on all AppShell routes (#54)

This commit is contained in:
2026-06-07 19:18:43 +02:00
parent af6004f731
commit 4b55218c69
9 changed files with 68 additions and 8 deletions
+2
View File
@@ -3,12 +3,14 @@ import { useTranslation } from "react-i18next";
import { VocabularyList } from "./vocabulary-list";
import { useDocumentTitle } from "../lib/use-document-title";
import { useBreadcrumb } from "../shell/use-breadcrumb";
import { PageTitle } from "@/components/ui/page-title";
export function VocabulariesPage() {
const { t } = useTranslation();
useDocumentTitle(t("nav.vocabularies"));
useBreadcrumb([{ label: t("nav.vocabularies") }]);
return (
<div className="flex h-full flex-col">
+11 -1
View File
@@ -3,7 +3,8 @@ import { useParams } from "react-router-dom";
import { useTranslation } from "react-i18next";
import type { components } from "../api/schema";
import { useTerms, useAddTerm } from "../api/queries";
import { useTerms, useAddTerm, useVocabularies } from "../api/queries";
import { useBreadcrumb } from "../shell/use-breadcrumb";
import { LabelEditor } from "../components/label-editor";
import { TermRow } from "./term-row";
import { Button } from "@/components/ui/button";
@@ -29,6 +30,15 @@ export function VocabularyTerms() {
const [error, setError] = useState(false);
const { data: vocabularies } = useVocabularies();
const vocabKey = vocabularies?.find((v) => v.id === id)?.key;
useBreadcrumb(
vocabKey
? [{ label: t("nav.vocabularies"), to: "/vocabularies" }, { label: vocabKey }]
: [{ label: t("nav.vocabularies"), to: "/vocabularies" }],
);
if (!id) return null;
const onAdd = (event: FormEvent) => {