refactor(webui): adopt semantic workspace actions
This commit is contained in:
@@ -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,8 +213,14 @@ 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
|
||||||
<FilterBar as="form" surface="control" wrap="never" width="default" className="projects-search" onSubmit={submitSearch}>
|
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" />
|
<Search size={17} aria-hidden="true" />
|
||||||
<input
|
<input
|
||||||
value={query}
|
value={query}
|
||||||
@@ -223,8 +229,8 @@ export default function ProjectsPage({ settings, auth }: PlatformRouteContext) {
|
|||||||
placeholder="Search portfolios, projects, and milestones"
|
placeholder="Search portfolios, projects, and milestones"
|
||||||
/>
|
/>
|
||||||
<Button type="submit" variant="primary">Search</Button>
|
<Button type="submit" variant="primary">Search</Button>
|
||||||
</FilterBar>
|
</FilterBar>
|
||||||
<label className="projects-kind-filter">
|
<label className="projects-kind-filter">
|
||||||
<span>Type</span>
|
<span>Type</span>
|
||||||
<select value={kind} onChange={(event) => setKind(event.target.value as ProjectObjectKind | "")}>
|
<select value={kind} onChange={(event) => setKind(event.target.value as ProjectObjectKind | "")}>
|
||||||
<option value="">All planning objects</option>
|
<option value="">All planning objects</option>
|
||||||
@@ -232,18 +238,19 @@ export default function ProjectsPage({ settings, auth }: PlatformRouteContext) {
|
|||||||
<option value="project">Projects</option>
|
<option value="project">Projects</option>
|
||||||
<option value="milestone">Milestones</option>
|
<option value="milestone">Milestones</option>
|
||||||
</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}
|
||||||
|
|||||||
Reference in New Issue
Block a user