import { useEffect, useState } from 'react'; import { AlertTriangle, ShieldCheck } from 'lucide-react'; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '../../../../components/ui/dialog.tsx'; import { Input } from '../../../../components/ui/input.tsx'; import { Label } from '../../../../components/ui/label.tsx'; import { useCredentialRecoveryService } from '../../../../services'; import { useOptionalBillingContext } from '../../../../services/BillingContext.tsx'; import { relayServerFailure } from '../../../../utils/fetchFailureMessage'; // D1/D2 - the receptionist attests an in-person identity check. // This dialog is the ONLY place in the product where a staff member changes a patient's sign-in // credential, and routes.ts:2109 refuses that in general. What makes it defensible is the set: an // attestation naming what was checked, an out-of-band notice to the patient's other channel, and a // revert link that also locks the account. The disabled-until-complete submit is not politeness - an // attestation naming no document is an attestation to nothing. // We record what was CHECKED, never an image of the ID (D2). Do not add an upload here. // Native /