Polish: per-route titles and a way to sign out

There was no sign-out control anywhere. Easy to miss when you develop
permanently signed in, and a stranded feeling for anyone on a shared machine.
Clearing the identity provider's session is sufficient — PIG holds no session
of its own — and the auth listener returns to sign-in without a reload. A hard
redirect follows regardless, so a failed provider call cannot leave a
half-signed-out interface.

Every route now sets its own document title. A single static title makes
browser history and a wall of tabs useless: every entry reads "pig" and nobody
can tell the margin view from the pipeline.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-12 19:49:32 -07:00
parent 46d7d80f1b
commit d154a78d48
7 changed files with 78 additions and 2 deletions
+3
View File
@@ -10,6 +10,7 @@ import { useMemo, useState } from 'react';
import { useQuery } from '@tanstack/react-query';
import { get, money, relativeTime } from '@/lib/api';
import { Badge, Card, EmptyState, Skeleton } from '@/components/ui';
import { usePageTitle } from '@/lib/title';
interface DemandDeal {
id: string;
@@ -126,6 +127,8 @@ function PipelineBoard<T extends { id: string; stage: string; updatedAt: string
endpoint: string;
renderCard: (deal: T, accountName: string | null) => React.ReactNode;
}) {
usePageTitle(title);
const { data, isLoading } = useQuery({
queryKey: [endpoint],
queryFn: () => get<Board<T>>(endpoint),