Open History to see the last commit
1import { msg, useMessages } from "gt-react";
2
3import {
4 WorkspaceBreadcrumb,
5 WorkspaceBreadcrumbItem,
6 WorkspaceBreadcrumbSeparator,
7} from "../WorkspaceBreadcrumb";
8import { SETTINGS_SECTION_LABELS } from "./settingsSearch";
9
10const SETTINGS_LABEL = msg("Settings");
11
12const SETTINGS_BREADCRUMB_LABELS: Readonly<Record<string, string>> = {
13 ...SETTINGS_SECTION_LABELS,
14 "/settings/diagnostics": msg("Diagnostics"),
15 "/settings/open-source-licenses": msg("Open source licenses"),
16};
17
18function settingsBreadcrumbLabel(pathname: string): string | null {
19 const normalizedPathname = pathname.replace(/\/+$/, "") || "/";
20 return SETTINGS_BREADCRUMB_LABELS[normalizedPathname] ?? null;
21}
22
23export function SettingsBreadcrumb({ pathname }: { pathname: string }) {
24 const m = useMessages();
25 const sectionLabel = settingsBreadcrumbLabel(pathname);
26
27 return (
28 <WorkspaceBreadcrumb ariaLabel="Settings breadcrumb">
29 {sectionLabel ? (
30 <>
31 <WorkspaceBreadcrumbItem>{m(SETTINGS_LABEL)}</WorkspaceBreadcrumbItem>
32 <WorkspaceBreadcrumbSeparator />
33 </>
34 ) : null}
35 <WorkspaceBreadcrumbItem current className="truncate">
36 {m(sectionLabel ?? SETTINGS_LABEL)}
37 </WorkspaceBreadcrumbItem>
38 </WorkspaceBreadcrumb>
39 );
40}