From 862c06a8fd0aad3057b6fde09767eaaae19fa500 Mon Sep 17 00:00:00 2001 From: justin Date: Tue, 28 Apr 2026 18:40:28 -0500 Subject: [PATCH] Add validation to CPNI and STIR/SHAKEN intake steps - CPNI: requires either clean compliance checkbox OR issues section opened - STIR/SHAKEN: requires selecting implementation status before advancing Co-Authored-By: Claude Opus 4.6 (1M context) --- site/src/components/intake/steps/CPNIStep.astro | 11 +++++++++++ .../components/intake/steps/STIRShakenStep.astro | 16 +++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/site/src/components/intake/steps/CPNIStep.astro b/site/src/components/intake/steps/CPNIStep.astro index ed75d2c..523b4be 100644 --- a/site/src/components/intake/steps/CPNIStep.astro +++ b/site/src/components/intake/steps/CPNIStep.astro @@ -118,6 +118,17 @@ const PW = (window as any).PWIntake; if (PW.steps[PW.get().step_index] !== "cpni_questions") return; + const errEl = document.getElementById("pw-cpni-err") as HTMLDivElement; + + // Validate: if not clean, must have opened issues section + if (!cleanBox.checked && !issuesEl.open) { + errEl.hidden = false; + errEl.textContent = "Please either confirm clean compliance or expand the issues section and provide details."; + evt.preventDefault(); + return; + } + errEl.hidden = true; + const g = (id: string) => (document.getElementById(id) as HTMLInputElement)?.value || ""; if (cleanBox.checked) { diff --git a/site/src/components/intake/steps/STIRShakenStep.astro b/site/src/components/intake/steps/STIRShakenStep.astro index 8fd5a19..49d347a 100644 --- a/site/src/components/intake/steps/STIRShakenStep.astro +++ b/site/src/components/intake/steps/STIRShakenStep.astro @@ -24,6 +24,8 @@ + +