From df1a7d3bb11d528c981f33b97196c0a570e7797c Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Tue, 18 Aug 2026 13:17:32 +0200 Subject: [PATCH] Adopt shared WebUI structural primitives --- webui/src/features/portal/PortalPage.tsx | 20 +++++---- webui/src/styles/portal.css | 56 +----------------------- 2 files changed, 14 insertions(+), 62 deletions(-) diff --git a/webui/src/features/portal/PortalPage.tsx b/webui/src/features/portal/PortalPage.tsx index 322cdd5..38d3374 100644 --- a/webui/src/features/portal/PortalPage.tsx +++ b/webui/src/features/portal/PortalPage.tsx @@ -8,14 +8,18 @@ import { } from "react"; import { ActionToolbar, ActionBlockerHint, + CountBadge, DismissibleAlert, Button, DocumentationHelpLink, + FilterBar, LoadingIndicator, PageScrollViewport, + StatePanel, StatusBadge, ToggleSwitch, useGuardedNavigate, + WorkspaceFrame, type PlatformRouteContext } from "@govoplan/core-webui"; import { @@ -126,9 +130,9 @@ export default function PortalPage({ settings }: PlatformRouteContext) { return (
-
- -
+ + + - + {entry.unread_count > 99 ? "99+" : entry.unread_count} - +
+
); } diff --git a/webui/src/styles/portal.css b/webui/src/styles/portal.css index 104f77b..3ab60fe 100644 --- a/webui/src/styles/portal.css +++ b/webui/src/styles/portal.css @@ -4,36 +4,7 @@ overflow: hidden; } -.portal-shell { - display: flex; - flex-direction: column; - height: 100%; - min-height: 0; - background: var(--surface); -} - -.portal-toolbar { - display: flex; - align-items: center; - justify-content: space-between; - gap: 16px; - min-height: 58px; - padding: 10px 18px; - border-bottom: 1px solid var(--border); - background: var(--surface-raised); -} - -.portal-search { - display: flex; - align-items: center; - gap: 8px; - width: min(620px, 100%); -} - -.portal-search input { - min-width: 120px; - flex: 1; -} +.portal-search { flex: 1 1 620px; } .portal-result-summary { display: flex; @@ -114,13 +85,7 @@ } .portal-postbox-count { - min-width: 24px; - padding: 2px 5px; - border-radius: 10px; - background: var(--accent); - color: var(--on-accent); - font-size: 0.75rem; - text-align: center; + flex: 0 0 auto; } .portal-service-entry { @@ -198,20 +163,3 @@ align-items: center; gap: 6px; } - -.portal-empty { - padding: 36px 0; - color: var(--text-soft); - text-align: center; -} - -@media (max-width: 720px) { - .portal-toolbar { - align-items: stretch; - flex-direction: column; - } - - .portal-search { - width: 100%; - } -}