refactor(webui): adopt semantic workspace actions
This commit is contained in:
@@ -13,8 +13,7 @@ import {
|
||||
useState,
|
||||
type FormEvent
|
||||
} from "react";
|
||||
import { ActionToolbar,
|
||||
Button,
|
||||
import { Button,
|
||||
Dialog,
|
||||
DocumentationHelpLink,
|
||||
DismissibleAlert,
|
||||
@@ -30,6 +29,7 @@ import { ActionToolbar,
|
||||
StatePanel,
|
||||
StatusBadge,
|
||||
hasScope,
|
||||
WorkspaceActionBar,
|
||||
WorkspaceFrame,
|
||||
type PlatformRouteContext
|
||||
} from "@govoplan/core-webui";
|
||||
@@ -213,8 +213,14 @@ export default function ProjectsPage({ settings, auth }: PlatformRouteContext) {
|
||||
return (
|
||||
<main className="projects-page">
|
||||
<WorkspaceFrame className="projects-shell" label="Projects workspace" interfaceId="projects.workspace" helpContextId="projects.page.workspace" helpModuleId="projects">
|
||||
<ActionToolbar surface="panel-header" className="projects-toolbar">
|
||||
<FilterBar as="form" surface="control" wrap="never" width="default" className="projects-search" onSubmit={submitSearch}>
|
||||
<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}>
|
||||
<Search size={17} aria-hidden="true" />
|
||||
<input
|
||||
value={query}
|
||||
@@ -223,8 +229,8 @@ export default function ProjectsPage({ settings, auth }: PlatformRouteContext) {
|
||||
placeholder="Search portfolios, projects, and milestones"
|
||||
/>
|
||||
<Button type="submit" variant="primary">Search</Button>
|
||||
</FilterBar>
|
||||
<label className="projects-kind-filter">
|
||||
</FilterBar>
|
||||
<label className="projects-kind-filter">
|
||||
<span>Type</span>
|
||||
<select value={kind} onChange={(event) => setKind(event.target.value as ProjectObjectKind | "")}>
|
||||
<option value="">All planning objects</option>
|
||||
@@ -232,18 +238,19 @@ export default function ProjectsPage({ settings, auth }: PlatformRouteContext) {
|
||||
<option value="project">Projects</option>
|
||||
<option value="milestone">Milestones</option>
|
||||
</select>
|
||||
</label>
|
||||
<span className="projects-count">{total} objects</span>
|
||||
<DocumentationHelpLink
|
||||
</label>
|
||||
<span className="projects-count">{total} objects</span>
|
||||
</>}
|
||||
helpAction={<DocumentationHelpLink
|
||||
reference={{ topicId: "projects.module-boundary", documentationType: "user" }}
|
||||
label="Open Projects documentation"
|
||||
/>
|
||||
{canWrite &&
|
||||
/>}
|
||||
createAction={canWrite ?
|
||||
<Button type="button" variant="primary" onClick={openCreate}>
|
||||
<Plus size={16} aria-hidden="true" /> New
|
||||
</Button>
|
||||
}
|
||||
</ActionToolbar>
|
||||
: undefined}
|
||||
/>
|
||||
{error &&
|
||||
<DismissibleAlert tone="error" onDismiss={() => setError("")}>
|
||||
{error}
|
||||
|
||||
Reference in New Issue
Block a user