import React, { useEffect, useState } from "react"; import { X } from "@phosphor-icons/react"; import BrowserExtensionApiKey from "@/models/browserExtensionApiKey"; import { fullApiUrl, POPUP_BROWSER_EXTENSION_EVENT } from "@/utils/constants"; export default function NewBrowserExtensionApiKeyModal({ closeModal, onSuccess, isMultiUser, }) { const [apiKey, setApiKey] = useState(null); const [error, setError] = useState(null); const [copied, setCopied] = useState(false); const handleCreate = async (e) => { setError(null); e.preventDefault(); const { apiKey: newApiKey, error } = await BrowserExtensionApiKey.generateKey(); if (!!newApiKey) { const fullApiKey = `${fullApiUrl()}|${newApiKey}`; setApiKey(fullApiKey); onSuccess(); window.postMessage( { type: POPUP_BROWSER_EXTENSION_EVENT, apiKey: fullApiKey }, "*" ); } setError(error); }; const copyApiKey = () => { if (!apiKey) return false; window.navigator.clipboard.writeText(apiKey); setCopied(true); }; useEffect(() => { function resetStatus() { if (!copied) return false; setTimeout(() => { setCopied(false); }, 3000); } resetStatus(); }, [copied]); return (