fix(ui): centralize contextual help and navigation presentation
Verified with the coordinated workspace changes by devkit full run 2026-09-08T225814-186389-0000-3e3ed7cd (all seven phases passed). This shared UI pass does not mark the individual module reviews complete.
This commit is contained in:
@@ -8,6 +8,7 @@ import {
|
||||
CountBadge,
|
||||
DismissibleAlert,
|
||||
DocumentationHelpLink,
|
||||
TextWithHelp,
|
||||
MultiSelectFilter,
|
||||
SelectionList,
|
||||
SelectionListItem,
|
||||
@@ -288,11 +289,11 @@ export default function NotificationCenterPage({ settings, auth }: { settings: A
|
||||
scope="detail-pane"
|
||||
variant="detail"
|
||||
className="notifications-topbar"
|
||||
contextActions={<div className="notifications-title-line">
|
||||
<Bell size={18} />
|
||||
title={<span className="notifications-title-line">
|
||||
<Bell size={18} aria-hidden="true" />
|
||||
<strong>{selected?.subject || selected?.event_kind || "i18n:govoplan-notifications.surface.center"}</strong>
|
||||
</div>}
|
||||
helpAction={<DocumentationHelpLink reference={NOTIFICATIONS_DOCUMENTATION} />}
|
||||
</span>}
|
||||
titleHelp={<DocumentationHelpLink reference={NOTIFICATIONS_DOCUMENTATION} />}
|
||||
primaryActions={<div className="notifications-actions">
|
||||
<Button onClick={() => void markSelected("read")} disabled={Boolean(markReadDisabledReason)} disabledReason={markReadDisabledReason}>
|
||||
<Check size={16} /> i18n:govoplan-notifications.mark_read
|
||||
@@ -389,8 +390,9 @@ function NotificationDetails({ notification }: { notification: NotificationMessa
|
||||
|
||||
<section className="notifications-attempts">
|
||||
<ActionToolbar surface="section-header" className="notifications-section-heading">
|
||||
<h2>i18n:govoplan-notifications.delivery_attempts</h2>
|
||||
<DocumentationHelpLink reference={NOTIFICATIONS_DELIVERY_DOCUMENTATION} />
|
||||
<TextWithHelp as="div" help={<DocumentationHelpLink reference={NOTIFICATIONS_DELIVERY_DOCUMENTATION} />}>
|
||||
<h2>i18n:govoplan-notifications.delivery_attempts</h2>
|
||||
</TextWithHelp>
|
||||
</ActionToolbar>
|
||||
{notification.attempts.length === 0 ? <p className="muted">i18n:govoplan-notifications.no_delivery_attempt</p> : null}
|
||||
{notification.attempts.map((attempt) => (
|
||||
|
||||
@@ -183,9 +183,6 @@ export default function NotificationSettingsPanel({ settings, auth }: { settings
|
||||
|
||||
return (
|
||||
<ContentGrid columns={2} collapseAt="workspace" className="notifications-settings-panel">
|
||||
<div className="notifications-settings-documentation">
|
||||
<DocumentationHelpLink reference={NOTIFICATIONS_DOCUMENTATION} />
|
||||
</div>
|
||||
{!canWrite ? (
|
||||
<ActionBlockerHint
|
||||
tone="info"
|
||||
@@ -200,7 +197,7 @@ export default function NotificationSettingsPanel({ settings, auth }: { settings
|
||||
documentation={NOTIFICATIONS_DOCUMENTATION}
|
||||
/>
|
||||
) : null}
|
||||
<Card title="i18n:govoplan-notifications.notifications">
|
||||
<Card title="i18n:govoplan-notifications.notifications" titleHelp={<DocumentationHelpLink reference={NOTIFICATIONS_DOCUMENTATION} />}>
|
||||
<FormGrid columns={1} collapseAt="standard" className="">
|
||||
<ToggleSwitch
|
||||
label="i18n:govoplan-notifications.unread_badge"
|
||||
@@ -230,9 +227,9 @@ export default function NotificationSettingsPanel({ settings, auth }: { settings
|
||||
{message ? <DismissibleAlert tone={messageTone} resetKey={message} floating>{message}</DismissibleAlert> : null}
|
||||
</FormGrid>
|
||||
</Card>
|
||||
<Card title="i18n:govoplan-notifications.delivery">
|
||||
<Card title="i18n:govoplan-notifications.delivery" titleHelp={<DocumentationHelpLink reference={NOTIFICATIONS_DELIVERY_DOCUMENTATION} />}>
|
||||
<FormGrid columns={1} collapseAt="standard" className="">
|
||||
<DocumentationHelpLink reference={NOTIFICATIONS_DELIVERY_DOCUMENTATION} />
|
||||
|
||||
<div className="notifications-settings-inline-title">
|
||||
<Mail size={16} />
|
||||
<strong>i18n:govoplan-notifications.email_notifications</strong>
|
||||
|
||||
@@ -2,7 +2,6 @@ import { MetricGrid } from "@govoplan/core-webui";
|
||||
import { Link } from "react-router";
|
||||
import {
|
||||
DismissibleAlert,
|
||||
DocumentationHelpLink,
|
||||
LoadingFrame,
|
||||
MetricCard,
|
||||
adminErrorMessage,
|
||||
@@ -11,7 +10,6 @@ import {
|
||||
type DashboardWidgetConfiguration,
|
||||
useSharedNotificationSummary
|
||||
} from "@govoplan/core-webui";
|
||||
import { NOTIFICATIONS_DOCUMENTATION } from "./interfacePatterns";
|
||||
|
||||
export default function NotificationSummaryWidget({
|
||||
settings,
|
||||
@@ -66,7 +64,6 @@ export default function NotificationSummaryWidget({
|
||||
)}
|
||||
</MetricGrid>
|
||||
<div className="notifications-widget-actions">
|
||||
<DocumentationHelpLink reference={NOTIFICATIONS_DOCUMENTATION} />
|
||||
{showCenterLink && (
|
||||
<Link className="btn btn-secondary" to="/notifications">
|
||||
i18n:govoplan-notifications.open_center
|
||||
|
||||
Reference in New Issue
Block a user