import { useEffect, useState } from "react"; import { Button, Input, Modal } from "../atoms"; import * as api from "../../services/api"; interface Props { open: boolean; onClose: () => void; onCreated: (preferredProfileKey: string) => void | Promise; } export default function CreateProfileModal({ open, onClose, onCreated, }: Props) { const [createName, setCreateName] = useState(""); const [createUseWhen, setCreateUseWhen] = useState(""); const [createSource, setCreateSource] = useState(""); const [createLoading, setCreateLoading] = useState(false); useEffect(() => { if (open) { return; } setCreateName(""); setCreateUseWhen(""); setCreateSource(""); setCreateLoading(false); }, [open]); const handleCreate = async () => { if (!createName.trim() || createLoading) return; setCreateLoading(true); try { const created = await api.createProfile({ name: createName.trim(), useWhen: createUseWhen.trim() || undefined, }); onClose(); await onCreated(created.id || created.name); } catch (e) { console.error("Failed to create profile", e); } finally { setCreateLoading(false); } }; return ( } >
setCreateName(e.target.value)} /> setCreateUseWhen(e.target.value)} /> setCreateSource(e.target.value)} />
); }