Reloading redesign

This commit is contained in:
2026-06-10 14:36:42 +02:00
parent 4544a89443
commit 7de516c5e3
17 changed files with 149 additions and 51 deletions

View File

@@ -4,6 +4,7 @@ import Button from "../../components/Button";
import Card from "../../components/Card";
import FormField from "../../components/FormField";
import PageTitle from "../../components/PageTitle";
import LoadingFrame from "../../components/LoadingFrame";
import ToggleSwitch from "../../components/ToggleSwitch";
import { autosaveCampaignVersion } from "../../api/campaigns";
import { useCampaignWorkspaceData } from "./hooks/useCampaignWorkspaceData";
@@ -25,12 +26,13 @@ export default function GlobalSettingsPage({ settings, campaignId }: { settings:
const version = data.currentVersion;
const locked = isAuditLockedVersion(version);
const validationPolicy = asRecord(draft?.validation_policy);
const attachments = asRecord(draft?.attachments);
const delivery = asRecord(draft?.delivery);
const displayDraft = draft ?? ensureCampaignDraft(null);
const validationPolicy = asRecord(displayDraft.validation_policy);
const attachments = asRecord(displayDraft.attachments);
const delivery = asRecord(displayDraft.delivery);
const rateLimit = asRecord(delivery.rate_limit);
const retry = asRecord(delivery.retry);
const statusTracking = asRecord(draft?.status_tracking);
const statusTracking = asRecord(displayDraft.status_tracking);
const optIns = asRecord(editorState.opt_ins);
useEffect(() => {
@@ -108,7 +110,7 @@ export default function GlobalSettingsPage({ settings, campaignId }: { settings:
{localError && <div className="alert danger">{localError}</div>}
{locked && <div className="alert info">This version is read-only. {versionLockReason(version)} Copy the campaign before editing global settings.</div>}
{draft && (
<LoadingFrame loading={loading || !draft} label="Loading campaign draft…">
<>
<div className="dashboard-grid">
<Card title="Validation policy">
@@ -158,7 +160,7 @@ export default function GlobalSettingsPage({ settings, campaignId }: { settings:
<Button variant="primary" onClick={() => saveDraft("manual")} disabled={!dirty || locked}>Save current draft</Button>
</div>
</>
)}
</LoadingFrame>
</div>
);
}