diff --git a/job-tracker-ui/src/App.tsx b/job-tracker-ui/src/App.tsx index 0210bd3..bb8e0cd 100644 --- a/job-tracker-ui/src/App.tsx +++ b/job-tracker-ui/src/App.tsx @@ -100,6 +100,16 @@ function titleFor(path: string, t: (k: any) => string): string { return t("appTitle"); } +function subtitleFor(path: string, t: (k: any) => string): string | undefined { + if (path === "/dashboard") return t("dashboardPageSubtitle"); + if (path.startsWith("/jobs")) return t("jobsPageSubtitle"); + if (path.startsWith("/kanban")) return t("kanbanPageSubtitle"); + if (path.startsWith("/reminders")) return t("remindersPageSubtitle"); + if (path.startsWith("/correspondence/review")) return t("gmailReviewPageSubtitle"); + if (path.startsWith("/correspondence")) return t("correspondencePageSubtitle"); + return undefined; +} + function PageLoader() { return Loading...; } @@ -209,6 +219,7 @@ function Shell({ jobPageSize, setJobPageSize, jobColumns, setJobColumns, themeMo if (requireAuth && !me) return ; const pageTitle = titleFor(path, t); + const pageSubtitle = subtitleFor(path, t); const breadcrumbs = breadcrumbsFor(path, t); const setAndPersistPageSize = (n: 15 | 20 | 25) => { setJobPageSize(n); window.localStorage.setItem("jobPageSize", String(n)); }; const setAndPersistColumns = (next: JobTableColumns) => { setJobColumns(next); window.localStorage.setItem("jobColumns", JSON.stringify(next)); }; @@ -275,6 +286,7 @@ function Shell({ jobPageSize, setJobPageSize, jobColumns, setJobColumns, themeMo <> {score.hasEnoughSignal ? ( - - + + - + } label={`${items.length} items`} variant="outlined" /> 0 ? "success" : "default"} /> + diff --git a/job-tracker-ui/src/views/GmailReviewPage.tsx b/job-tracker-ui/src/views/GmailReviewPage.tsx index ea6fc33..4b058e9 100644 --- a/job-tracker-ui/src/views/GmailReviewPage.tsx +++ b/job-tracker-ui/src/views/GmailReviewPage.tsx @@ -138,6 +138,7 @@ export default function GmailReviewPage() { +