"use client" import { CheckIcon, CopyIcon } from "lucide-react" import { type ComponentProps, useContext, useState } from "react" import { AuthUIContext } from "../../../lib/auth-ui-provider" import { cn } from "../../../lib/utils" import { Button } from "../../ui/button" import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "../../ui/dialog" import type { SettingsCardClassNames } from "../shared/settings-card" interface BackupCodesDialogProps extends ComponentProps { classNames?: SettingsCardClassNames backupCodes: string[] } export function BackupCodesDialog({ classNames, backupCodes, onOpenChange, ...props }: BackupCodesDialogProps) { const { localization } = useContext(AuthUIContext) const [copied, setCopied] = useState(false) const handleCopy = () => { const codeText = backupCodes.join("\n") navigator.clipboard.writeText(codeText) setCopied(true) setTimeout(() => setCopied(false), 2000) } return ( e.preventDefault()} className={classNames?.dialog?.content} > {localization.BACKUP_CODES} {localization.BACKUP_CODES_DESCRIPTION}
{backupCodes.map((code, index) => (
{code}
))}
) }