fix: make direct campaign pages scrollable

This commit is contained in:
2026-07-28 22:50:11 +02:00
parent 8d0a2608ed
commit f11c56e890
4 changed files with 17 additions and 5 deletions

View File

@@ -8,6 +8,7 @@ import { Button } from "@govoplan/core-webui";
import { StatusBadge } from "@govoplan/core-webui"; import { StatusBadge } from "@govoplan/core-webui";
import { PageTitle } from "@govoplan/core-webui"; import { PageTitle } from "@govoplan/core-webui";
import { LoadingFrame } from "@govoplan/core-webui"; import { LoadingFrame } from "@govoplan/core-webui";
import { PageScrollViewport } from "@govoplan/core-webui";
import { DismissibleAlert, TableActionGroup, i18nMessage, useGuardedNavigate } from "@govoplan/core-webui"; import { DismissibleAlert, TableActionGroup, i18nMessage, useGuardedNavigate } from "@govoplan/core-webui";
import { DataGrid, type DataGridColumn } from "@govoplan/core-webui"; import { DataGrid, type DataGridColumn } from "@govoplan/core-webui";
import { createNewCampaign, listCampaignsDelta, type CampaignDeltaResponse } from "../../api/campaigns"; import { createNewCampaign, listCampaignsDelta, type CampaignDeltaResponse } from "../../api/campaigns";
@@ -138,6 +139,7 @@ export default function CampaignListPage({ settings }: {settings: ApiSettings;})
return ( return (
<PageScrollViewport>
<div className="content-pad workspace-data-page campaigns-page"> <div className="content-pad workspace-data-page campaigns-page">
{error && <DismissibleAlert tone="danger" resetKey={error} floating>{error}</DismissibleAlert>} {error && <DismissibleAlert tone="danger" resetKey={error} floating>{error}</DismissibleAlert>}
@@ -179,7 +181,8 @@ export default function CampaignListPage({ settings }: {settings: ApiSettings;})
} }
</LoadingFrame> </LoadingFrame>
</Card> </Card>
</div>); </div>
</PageScrollViewport>);
} }

View File

@@ -29,6 +29,7 @@ import { DismissibleAlert } from "@govoplan/core-webui";
import { LoadingFrame } from "@govoplan/core-webui"; import { LoadingFrame } from "@govoplan/core-webui";
import { MetricCard } from "@govoplan/core-webui"; import { MetricCard } from "@govoplan/core-webui";
import { PageTitle } from "@govoplan/core-webui"; import { PageTitle } from "@govoplan/core-webui";
import { PageScrollViewport } from "@govoplan/core-webui";
import { import {
StatusBadge, StatusBadge,
TableActionGroup, TableActionGroup,
@@ -755,6 +756,7 @@ export default function OperatorQueuePage({ settings, auth }: {settings: ApiSett
], [navigate, permissions.canOpenReport, selectedRow, selectedVersionId]); ], [navigate, permissions.canOpenReport, selectedRow, selectedVersionId]);
return ( return (
<PageScrollViewport>
<div className="content-pad workspace-data-page"> <div className="content-pad workspace-data-page">
<div className="page-heading split workspace-heading"> <div className="page-heading split workspace-heading">
<div> <div>
@@ -844,7 +846,8 @@ export default function OperatorQueuePage({ settings, auth }: {settings: ApiSett
if (cancelTarget) void runAction(cancelTarget, "cancel"); if (cancelTarget) void runAction(cancelTarget, "cancel");
}} }}
onCancel={() => setCancelTarget(null)} /> onCancel={() => setCancelTarget(null)} />
</div>); </div>
</PageScrollViewport>);
} }

View File

@@ -8,6 +8,7 @@ import {
DismissibleAlert, DismissibleAlert,
LoadingFrame, LoadingFrame,
MetricCard, MetricCard,
PageScrollViewport,
PageTitle, PageTitle,
StatusBadge, StatusBadge,
TableActionGroup, TableActionGroup,
@@ -165,6 +166,7 @@ export default function AggregateReportsPage({ settings }: {settings: ApiSetting
const outcomes = report?.outcomes; const outcomes = report?.outcomes;
return ( return (
<PageScrollViewport className="aggregate-reports-page">
<div className="content-pad workspace-data-page"> <div className="content-pad workspace-data-page">
<div className="page-heading split workspace-heading"> <div className="page-heading split workspace-heading">
<div> <div>
@@ -246,6 +248,7 @@ export default function AggregateReportsPage({ settings }: {settings: ApiSetting
)} )}
</LoadingFrame> </LoadingFrame>
</div> </div>
</PageScrollViewport>
); );
} }

View File

@@ -2,6 +2,7 @@ import { useMemo, useState } from "react";
import { ExternalLink } from "lucide-react"; import { ExternalLink } from "lucide-react";
import { Button } from "@govoplan/core-webui"; import { Button } from "@govoplan/core-webui";
import { Card } from "@govoplan/core-webui"; import { Card } from "@govoplan/core-webui";
import { PageScrollViewport } from "@govoplan/core-webui";
import { PageTitle } from "@govoplan/core-webui"; import { PageTitle } from "@govoplan/core-webui";
import { FieldLabel } from "@govoplan/core-webui"; import { FieldLabel } from "@govoplan/core-webui";
import { StatusBadge, TableActionGroup, i18nMessage } from "@govoplan/core-webui"; import { StatusBadge, TableActionGroup, i18nMessage } from "@govoplan/core-webui";
@@ -164,6 +165,7 @@ export default function TemplatesPage() {
} }
return ( return (
<PageScrollViewport>
<div className="content-pad workspace-data-page module-entry-page"> <div className="content-pad workspace-data-page module-entry-page">
<div className="page-heading split workspace-heading"> <div className="page-heading split workspace-heading">
<div> <div>
@@ -194,7 +196,8 @@ export default function TemplatesPage() {
className="compact-table-wrap module-table-wrap module-entry-table" /> className="compact-table-wrap module-table-wrap module-entry-table" />
</Card> </Card>
</div>); </div>
</PageScrollViewport>);
} }