From 989ccaec93d2b5740d2c09bbcb779e8fcb6b6afc Mon Sep 17 00:00:00 2001 From: justin Date: Sat, 30 May 2026 15:33:56 -0500 Subject: [PATCH] =?UTF-8?q?Fix=20MCS150Step=20null=20crash=20=E2=80=94=20w?= =?UTF-8?q?as=20breaking=20ALL=20DOT=20intake=20pages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MCS150Step script compiled into hoisted JS for all order pages. Non-null assertions on photo ID elements crashed on non-MCS150 pages, preventing DOTIntakeStep's showRelevantSections from running. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../components/intake/steps/MCS150Step.astro | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/site/src/components/intake/steps/MCS150Step.astro b/site/src/components/intake/steps/MCS150Step.astro index 5f5d28b..cf32b45 100644 --- a/site/src/components/intake/steps/MCS150Step.astro +++ b/site/src/components/intake/steps/MCS150Step.astro @@ -351,15 +351,15 @@ PW.set({ ...state, intake_data: intake }); }); - // Photo ID upload handling - const idBtn = document.getElementById("mcs-id-btn")!; - const idInput = document.getElementById("mcs-photo-id") as HTMLInputElement; - const idPreview = document.getElementById("mcs-id-preview")!; - const idImg = document.getElementById("mcs-id-img") as HTMLImageElement; - const idRemove = document.getElementById("mcs-id-remove")!; + // Photo ID upload handling (elements may not exist on non-MCS150 pages) + const idBtn = document.getElementById("mcs-id-btn"); + const idInput = document.getElementById("mcs-photo-id") as HTMLInputElement | null; + const idPreview = document.getElementById("mcs-id-preview"); + const idImg = document.getElementById("mcs-id-img") as HTMLImageElement | null; + const idRemove = document.getElementById("mcs-id-remove"); - idBtn.addEventListener("click", () => idInput.click()); - idInput.addEventListener("change", () => { + idBtn?.addEventListener("click", () => idInput?.click()); + idInput?.addEventListener("change", () => { const file = idInput.files?.[0]; if (!file) return; // Store file reference for upload on submit @@ -367,19 +367,19 @@ // Show preview if (file.type.startsWith("image/")) { const reader = new FileReader(); - reader.onload = (e) => { idImg.src = e.target?.result as string; }; + if (idImg) { reader.onload = (e) => { idImg.src = e.target?.result as string; }; } reader.readAsDataURL(file); - } else { + } else if (idImg) { idImg.src = ""; idImg.alt = file.name; } - idPreview.hidden = false; - idBtn.style.display = "none"; + if (idPreview) idPreview.hidden = false; + if (idBtn) idBtn.style.display = "none"; }); - idRemove.addEventListener("click", () => { + idRemove?.addEventListener("click", () => { (window as any).__mcs150PhotoId = null; - idInput.value = ""; - idPreview.hidden = true; - idBtn.style.display = "flex"; + if (idInput) idInput.value = ""; + if (idPreview) idPreview.hidden = true; + if (idBtn) idBtn.style.display = "flex"; });