diff --git a/webui/src/features/portal/PortalPage.tsx b/webui/src/features/portal/PortalPage.tsx index 38d3374..5d56ab0 100644 --- a/webui/src/features/portal/PortalPage.tsx +++ b/webui/src/features/portal/PortalPage.tsx @@ -6,8 +6,7 @@ import { useState, type FormEvent } from "react"; -import { ActionToolbar, - ActionBlockerHint, +import { ActionBlockerHint, CountBadge, DismissibleAlert, Button, @@ -19,6 +18,7 @@ import { ActionToolbar, StatusBadge, ToggleSwitch, useGuardedNavigate, + WorkspaceActionBar, WorkspaceFrame, type PlatformRouteContext } from "@govoplan/core-webui"; @@ -41,6 +41,7 @@ export default function PortalPage({ settings }: PlatformRouteContext) { const [loading, setLoading] = useState(true); const [error, setError] = useState(""); const [launchingId, setLaunchingId] = useState(""); + const [reloadKey, setReloadKey] = useState(0); const launchAttempts = useRef(new Map setLoading(false)); return () => controller.abort(); - }, [includeUnavailable, settings, submittedQuery]); + }, [includeUnavailable, reloadKey, settings, submittedQuery]); useEffect(() => { const controller = new AbortController(); @@ -79,7 +80,7 @@ export default function PortalPage({ settings }: PlatformRouteContext) { } }); return () => controller.abort(); - }, [settings]); + }, [reloadKey, settings]); const counts = useMemo(() => ({ available: services.filter((entry) => entry.state === "available").length, @@ -131,8 +132,14 @@ export default function PortalPage({ settings }: PlatformRouteContext) { return (
- - + setReloadKey((value) => value + 1), loading }} + className="portal-toolbar" + contextActions={<> + - + + } + helpAction={ - - + />} + />
{counts.available} available diff --git a/webui/src/features/portal/PortalStatusPage.tsx b/webui/src/features/portal/PortalStatusPage.tsx index 1648bce..412e841 100644 --- a/webui/src/features/portal/PortalStatusPage.tsx +++ b/webui/src/features/portal/PortalStatusPage.tsx @@ -1,8 +1,7 @@ -import { Clock3, LogIn, RefreshCw, Send } from "lucide-react"; +import { Clock3, LogIn, Send } from "lucide-react"; import { useCallback, useEffect, useState } from "react"; import { useParams, useSearchParams } from "react-router"; import { - ActionToolbar, Button, Card, DescriptionItem, @@ -12,6 +11,7 @@ import { LoadingIndicator, PageScrollViewport, StatusBadge, + WorkspaceActionBar, WorkspaceFrame, type PlatformRouteContext } from "@govoplan/core-webui"; @@ -101,13 +101,14 @@ export default function PortalStatusPage({ settings }: PlatformRouteContext) { helpModuleId="portal" helpTopicId="portal.application-status" helpContextId="portal.application-status"> - - Application status - - + void load(), loading }} + className="portal-status-toolbar" + contextActions={Application status} + /> {error && {error}} {notice && {notice}}