import type { Color } from "@yaakapp-internal/plugins"; import type { FormEvent } from "react"; import { useState } from "react"; import { CopyIconButton } from "../CopyIconButton"; import { Button } from "./Button"; import { PlainInput } from "./PlainInput"; import { HStack } from "./Stacks"; export interface ConfirmProps { onHide: () => void; onResult: (result: boolean) => void; confirmText?: string; requireTyping?: string; color?: Color; } export function Confirm({ onHide, onResult, confirmText, requireTyping, color = "primary", }: ConfirmProps) { const [confirm, setConfirm] = useState(""); const handleHide = () => { onResult(false); onHide(); }; const didConfirm = !requireTyping || confirm === requireTyping; const handleSuccess = (e: FormEvent) => { e.preventDefault(); if (didConfirm) { onResult(true); onHide(); } }; return (
{requireTyping && ( } label={ <> Type {requireTyping} to confirm } /> )} ); }