refactor(webui): adopt semantic workspace actions

This commit is contained in:
2026-08-19 18:47:46 +02:00
parent 2618532377
commit 4bebb4211a
+15 -8
View File
@@ -13,8 +13,7 @@ import {
useState, useState,
type FormEvent type FormEvent
} from "react"; } from "react";
import { ActionToolbar, import { Button,
Button,
Dialog, Dialog,
DocumentationHelpLink, DocumentationHelpLink,
DismissibleAlert, DismissibleAlert,
@@ -30,6 +29,7 @@ import { ActionToolbar,
StatePanel, StatePanel,
StatusBadge, StatusBadge,
hasScope, hasScope,
WorkspaceActionBar,
WorkspaceFrame, WorkspaceFrame,
type PlatformRouteContext type PlatformRouteContext
} from "@govoplan/core-webui"; } from "@govoplan/core-webui";
@@ -213,7 +213,13 @@ export default function ProjectsPage({ settings, auth }: PlatformRouteContext) {
return ( return (
<main className="projects-page"> <main className="projects-page">
<WorkspaceFrame className="projects-shell" label="Projects workspace" interfaceId="projects.workspace" helpContextId="projects.page.workspace" helpModuleId="projects"> <WorkspaceFrame className="projects-shell" label="Projects workspace" interfaceId="projects.workspace" helpContextId="projects.page.workspace" helpModuleId="projects">
<ActionToolbar surface="panel-header" className="projects-toolbar"> <WorkspaceActionBar
scope="workspace"
variant="collection"
refreshable
reloadAction={{ onReload: () => void reload(), loading }}
className="projects-toolbar"
contextActions={<>
<FilterBar as="form" surface="control" wrap="never" width="default" className="projects-search" onSubmit={submitSearch}> <FilterBar as="form" surface="control" wrap="never" width="default" className="projects-search" onSubmit={submitSearch}>
<Search size={17} aria-hidden="true" /> <Search size={17} aria-hidden="true" />
<input <input
@@ -234,16 +240,17 @@ export default function ProjectsPage({ settings, auth }: PlatformRouteContext) {
</select> </select>
</label> </label>
<span className="projects-count">{total} objects</span> <span className="projects-count">{total} objects</span>
<DocumentationHelpLink </>}
helpAction={<DocumentationHelpLink
reference={{ topicId: "projects.module-boundary", documentationType: "user" }} reference={{ topicId: "projects.module-boundary", documentationType: "user" }}
label="Open Projects documentation" label="Open Projects documentation"
/> />}
{canWrite && createAction={canWrite ?
<Button type="button" variant="primary" onClick={openCreate}> <Button type="button" variant="primary" onClick={openCreate}>
<Plus size={16} aria-hidden="true" /> New <Plus size={16} aria-hidden="true" /> New
</Button> </Button>
} : undefined}
</ActionToolbar> />
{error && {error &&
<DismissibleAlert tone="error" onDismiss={() => setError("")}> <DismissibleAlert tone="error" onDismiss={() => setError("")}>
{error} {error}