21 lines
1.6 KiB
TypeScript
21 lines
1.6 KiB
TypeScript
import ValidationDetails from "../../../govoplan-campaign/webui/src/features/campaigns/review/ValidationDetails";
|
|
import RepeatedFilesDetails from "../../../govoplan-campaign/webui/src/features/campaigns/review/RepeatedFilesDetails";
|
|
import { generatedTranslations } from "../../../govoplan-campaign/webui/src/i18n/generatedTranslations";
|
|
import { PlatformLanguageProvider } from "../src/i18n/LanguageContext";
|
|
import { useState } from "react";
|
|
|
|
const issues = Array.from({ length: 12 }, (_, index) => [
|
|
{ code: "missing_required_attachment", severity: "warning", path: `/entries/recipient-${index + 1}/attachments/0`, message: `Missing attachment for recipient ${index + 1}.` },
|
|
{ code: "missing_attachment_coverage", severity: "info", path: `/entries/recipient-${index + 1}`, message: `Policy excludes recipient ${index + 1} without attachments.` }
|
|
]).flat();
|
|
const findings = Array.from({ length: 12 }, (_, index) => ({ file_name: `repeated-file-${index + 1}.pdf`, file_fingerprint: `file-${index}`, use_count: 3, disposition: "allowed" }));
|
|
|
|
export default function CampaignReviewDetailsScenario() {
|
|
const [count, setCount] = useState(12);
|
|
return <PlatformLanguageProvider preferredLanguageCode={new URLSearchParams(window.location.search).get("language") ?? "en"} moduleTranslations={[generatedTranslations]}>
|
|
<button onClick={() => setCount(2)}>Reduce fixture details</button>
|
|
<section aria-label="Validation details fixture"><ValidationDetails issues={issues.slice(0, count * 2)} /></section>
|
|
<section aria-label="Repeated files fixture"><RepeatedFilesDetails findings={findings.slice(0, count)} /></section>
|
|
</PlatformLanguageProvider>;
|
|
}
|