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 } /> )} ); }