/* global React */ const { useState } = React; // ─────────── Document Checklist ─────────── const DocChecklist = ({ onDone, onUpload }) => { const docs = [ { k:'id', title:'Government photo ID', req:true, note:'Driver\'s license, state ID, or passport', status:'done', filename:'DL_Maria_R.pdf' }, { k:'ssn', title:'Social Security card or W-2', req:true, note:'One document showing your SSN', status:'done', filename:'W2_2024.pdf' }, { k:'med', title:'Medical records (last 12 months)', req:true, note:'From any treating doctor — we can help request these', status:'needs', why:'One file was blurry — please re-upload' }, { k:'meds', title:'List of current medications', req:true, note:'Photo of labels or pharmacy printout works', status:'pending' }, { k:'work', title:'Employment history (past 15 yrs)', req:true, note:'Job titles, employers, dates — we\'ll help you build this', status:'pending' }, { k:'va', title:'DD-214 (if veteran)', req:false, note:'Skip if not applicable', status:'skip' }, { k:'bank', title:'Bank statements (last 60 days)', req:false, note:'Optional for SSDI, required for SSI', status:'skip' }, ]; const progress = Math.round((docs.filter(d=>d.status==='done').length / docs.filter(d=>d.req).length) * 100); return (
Personalized checklist

Documents we need for your SSDI claim.

Ready to file
{progress}%

Upload what you have now. You can add the rest anytime. We'll tell you exactly what each one is for.

{docs.map(d => (
{d.status==='done' && } {d.status==='needs' && } {d.status==='pending' &&
} {d.status==='skip' && }
{d.title} {d.req ? Required : Optional} {d.status === 'needs' && Re-upload}
{d.status === 'done' && <> {d.filename} · uploaded 2h ago} {d.status === 'needs' && {d.why}} {d.status === 'pending' && d.note} {d.status === 'skip' && d.note}
{d.status === 'pending' && Upload} {d.status === 'needs' && Re-upload} {d.status === 'done' && } {d.status === 'skip' && Add anyway}
))}
Don't have them all? We can request medical records on your behalf with a signed release form. This adds 10–14 days to the case but nothing comes out of your pocket.
Back to intake Continue
); }; // ─────────── Document Upload ─────────── const DocUpload = ({ onDone, onBack }) => { const [drag, setDrag] = useState(false); const [files, setFiles] = useState([ { name:'Dr_Patel_Visit_2024-11.pdf', size:'1.2 MB', status:'ok', date:'Just now' }, { name:'MRI_Report.jpg', size:'3.8 MB', status:'ok', date:'Just now' }, { name:'IMG_4218.heic', size:'2.1 MB', status:'quality', date:'Just now' }, ]); return (
Upload · Medical records

Drop in anything you have.

PDFs, photos, or scans. We\'ll read them and pull out what\'s relevant. Nothing is submitted to the SSA from here.

{e.preventDefault(); setDrag(true);}} onDragLeave={()=>setDrag(false)} onDrop={e=>{e.preventDefault(); setDrag(false);}} >
Drop files here
or browse from your device
PDF·JPG·PNG·HEIC·up to 25MB
Take a photo Import from Drive Email to us
This session
{files.map((f, i) => (
{f.name.split('.').pop().toUpperCase()}
{f.name}
{f.size} · {f.date}
{f.status === 'ok' && Looks good} {f.status === 'quality' && Check quality}
))}
Encrypted in transit and at rest. Files live in your case only. You can delete any file anytime.
Skip for now Continue
); }; // ─────────── Upload Review (re-upload guidance) ─────────── const UploadReview = ({ onDone, onBack }) => { return (
Needs attention · 1 file

We couldn\'t quite read this one.

The image is a little blurry in the corners. A clearer photo will help the reviewer move faster — usually 2–3 days.

IMG_4218.heic
IMG_4218.heic
2.1 MB · uploaded 2 min ago
{[ ['Corners are blurry', 'warn'], ['Text on right side is cut off', 'warn'], ['Looks like a photo of a screen', 'warn'], ].map(([msg, kind], i) => (
{msg}
))}
Tips for a clean shot:
· Lay the paper flat on a dark surface
· Turn on good room light, avoid shadows
· Frame all four corners before tapping
Use this file anyway Re-upload
); }; Object.assign(window, { DocChecklist, DocUpload, UploadReview });