{error}
} + {error && ( +{t('environments.loading')}
} diff --git a/client/src/pages/Page.module.css b/client/src/pages/Page.module.css index 42a53d6..95c51c6 100644 --- a/client/src/pages/Page.module.css +++ b/client/src/pages/Page.module.css @@ -36,6 +36,17 @@ font-size: var(--font-size-sm); } +.codeInline { + font-family: var(--font-mono, ui-monospace, monospace); + font-size: 0.85em; + padding: 0.15em 0.45em; + background: var(--color-code-bg, color-mix(in srgb, var(--color-bg-raised) 60%, var(--color-secondary) 40%)); + border: 1px solid var(--color-border); + border-radius: var(--radius-sm); + color: var(--color-secondary-fg); + word-break: break-all; +} + /* ── Environment cards ──────────────────────────────────────── */ .envGrid { diff --git a/client/src/pages/SessionDetailPage.tsx b/client/src/pages/SessionDetailPage.tsx new file mode 100644 index 0000000..e473400 --- /dev/null +++ b/client/src/pages/SessionDetailPage.tsx @@ -0,0 +1,93 @@ +import { useEffect, useState } from 'react'; +import { useNavigate, useParams } from 'react-router-dom'; +import { useTranslation } from 'react-i18next'; +import { Trash2 } from 'lucide-react'; +import { sessions } from '../api'; +import type { Session } from '../api'; +import { Badge, Breadcrumbs, Button, Card, DescriptionList, Notification, Timestamp } from '../ui'; +import styles from './Page.module.css'; + +export function SessionDetailPage() { + const { t } = useTranslation(); + const { id } = useParams<{ id: string }>(); + const navigate = useNavigate(); + const [session, setSession] = useState{t('sessions.loading')}
} + + {session && ( +{session.token} },
+ {
+ term: t('sessions.field_lastUsed'),
+ detail: session.lastUsedAt ?