// Woodbury Operator — Inspections & Compliance. Registers window.InspectionsScreen. (function () { const NS = window.WoodburyPropertiesDesignSystem_7290ca; const { Card, CardHeader, Button, Badge, StatCard, IconTile, Modal, Select, Input, ProgressBar, Checkbox } = NS; const typeTone = { "Move-in": "accent", "Move-out": "brand", "Routine": "neutral" }; function InspectionsScreen() { const I = window.WB_INSPECTIONS; const C = window.WB_COMPLIANCE; const [modal, setModal] = React.useState(null); // 'new' | inspection const [checks, setChecks] = React.useState(window.WB_INSPECTION_CHECKLIST.map((c) => c.done)); const [inProp, setInProp] = React.useState(window.WB_SITES[0]); const [inUnit, setInUnit] = React.useState(""); const close = () => setModal(null); const openNew = () => { const p = window.WB_SITES[0]; setInProp(p); setInUnit(window.WBunitsFor(p, false)[0] || ""); setModal("new"); }; const openChecklist = (insp) => { setChecks(window.WB_INSPECTION_CHECKLIST.map((c) => c.done)); setModal(insp); }; const doneCount = checks.filter(Boolean).length; const pct = Math.round((doneCount / checks.length) * 100); return (
Schedule Inspection} />
window.WBNavigate&&window.WBNavigate("Inspections")} label="Scheduled" value="2" icon="calendar-days" iconTone="accent" /> window.WBNavigate&&window.WBNavigate("Inspections")} label="In Progress" value="1" icon="clipboard-list" iconTone="brand" /> window.WBNavigate&&window.WBNavigate("Inspections")} label="Completed (30d)" value="6" icon="clipboard-check" iconTone="success" emphasis="success" /> window.WBNavigate&&window.WBNavigate("Inspections")} label="Compliance Alerts" value="2" icon="shield-alert" iconTone="danger" emphasis="danger" />
{/* Compliance reminders */} window.WBToast("Reminders enabled for expiring documents")}>Remind me} />
{["Document", "Site", "Expires", "Status", ""].map((h, i) => {h})}
{C.map((c, i) => (
{c.doc}
{c.site}
{c.expires}
{c.days} days
{c.status}
))}
{/* Inspection schedule */} Filter} /> {I.map((insp, i) => (
{insp.unit}{insp.type}
{insp.tenant} · Inspector: {insp.inspector} · {insp.date}
{insp.status}
))}
{/* Schedule modal */} }>
{ setInProp(e.target.value); setInUnit(window.WBunitsFor(e.target.value, false)[0] || ""); }} options={window.WB_SITES} containerStyle={{ flex: 1 }} />