// Compose screen — multi-step: scope -> recipients -> draft -> preview const TEMPLATE_BODY = `Dear FOI Officer, Under the Freedom of Information Act 2000, I am writing to request the following information for the academic years 2022–23, 2023–24 and 2024–25: 1. The total number of employees (including the Accounting Officer / CEO) earning a gross annual salary of £100,000 or more, broken down by £5,000 band. 2. The total value of expense claims made by those employees in each year, broken down by category (travel, subsistence, hospitality, other). 3. Any policies governing executive remuneration, performance-related pay, and severance. I would prefer to receive the response in a machine-readable format (CSV or XLSX) where applicable. If any part of this request is unclear, or if you believe the cost of compliance would exceed the appropriate limit under section 12, please contact me so that we may refine the scope. Yours faithfully, R. Davies National Education Union — Research `; function Compose({ go }) { const [step, setStep] = React.useState(0); const [title, setTitle] = React.useState("CEO and executive pay across MATs"); const [body, setBody] = React.useState(TEMPLATE_BODY); const [scope, setScope] = React.useState("both"); // dfe | mat | both const [selectedMats, setSelectedMats] = React.useState(window.MATS.slice(0, 12).map(m => m.uid)); const [tag, setTag] = React.useState("pay, executive, 2024-25"); const [redact, setRedact] = React.useState(true); const [sentRef, setSentRef] = React.useState(null); const matCount = selectedMats.length; const dfeIncluded = scope === "dfe" || scope === "both"; const matIncluded = scope === "mat" || scope === "both"; const totalRecipients = (dfeIncluded ? 1 : 0) + (matIncluded ? matCount : 0); const steps = ["Scope", "Recipients", "Draft", "Review & send"]; if (sentRef) return { setSentRef(null); setStep(0); }} />; return (
Compose request
{steps.map((s, i) => ( ))}
{step === 0 && (
{[ { id: "dfe", title: "DfE only", sub: "Via WhatDoTheyKnow API" }, { id: "mat", title: "MATs only", sub: "Via email (SMTP)" }, { id: "both", title: "DfE + MATs", sub: "Both channels in parallel" } ].map((o) => ( ))}
)} {step === 1 && ( )} {step === 1 && (
)} {step === 2 && (