"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 type { AuthLocalization } from "../../../localization/auth-localization" import { Button } from "../../ui/button" import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "../../ui/dialog" import type { SettingsCardClassNames } from "../shared/settings-card" interface ApiKeyDisplayDialogProps extends ComponentProps { classNames?: SettingsCardClassNames localization?: AuthLocalization apiKey: string } export function ApiKeyDisplayDialog({ classNames, apiKey, localization, onOpenChange, ...props }: ApiKeyDisplayDialogProps) { const { localization: contextLocalization } = useContext(AuthUIContext) localization = { ...contextLocalization, ...localization } const [copied, setCopied] = useState(false) const handleCopy = () => { navigator.clipboard.writeText(apiKey) setCopied(true) setTimeout(() => setCopied(false), 2000) } return ( e.preventDefault()} className={classNames?.dialog?.content} > {localization.API_KEY_CREATED} {localization.CREATE_API_KEY_SUCCESS}
{apiKey}
) }