diff --git a/app/components/user/settings/PrivacySection.tsx b/app/components/user/settings/PrivacySection.tsx index 4e6c860..8cbdc22 100644 --- a/app/components/user/settings/PrivacySection.tsx +++ b/app/components/user/settings/PrivacySection.tsx @@ -16,14 +16,27 @@ import { type Props = { userEmail: string; + dataRequestCooldownUntil: Date | null; dataRequestSuccess?: boolean; dataRequestError?: string; }; -export function PrivacySection({ userEmail, dataRequestSuccess, dataRequestError }: Props) { +export function PrivacySection({ + userEmail, + dataRequestCooldownUntil, + dataRequestSuccess, + dataRequestError, +}: Props) { const [confirmed, setConfirmed] = useState(false); const [dialogOpen, setDialogOpen] = useState(false); + const handleDialogOpenChange = (open: boolean) => { + setDialogOpen(open); + if (!open) setConfirmed(false); + }; + + const inCooldown = dataRequestCooldownUntil != null && dataRequestCooldownUntil > new Date(); + return (
{dataRequestError}
)} - {!dataRequestSuccess && ( + {inCooldown && !dataRequestSuccess && ( ++ Your data request is being processed. You can submit another request + after {dataRequestCooldownUntil!.toLocaleDateString()}. +
+ )} + + {!dataRequestSuccess && !inCooldown && (