import { RCTResponderProps } from '~/components/RenderIOCall' import IVButton from '~/components/IVButton' import IVDialog, { useDialogState } from '~/components/IVDialog' import XCircleIcon from '~/icons/compiled/XCircle' import ErrorCircleIcon from '~/icons/compiled/ErrorCircle' import CheckCircleIcon from '~/icons/compiled/CheckCircleOutline' import RenderMarkdown, { ALLOWED_INLINE_ELEMENTS, } from '~/components/RenderMarkdown' const AFFIRMATIVE_RESPONSE_LABEL = 'Confirm' const NEGATIVE_RESPONSE_LABEL = 'Cancel' function InlineConfirmPrompt( props: RCTResponderProps<'CONFIRM'> & { onRespond: (value: boolean) => void } ) { if (props.isCurrentCall === false) { const Icon = props.value ? CheckCircleIcon : XCircleIcon return (

{props.label}

{props.value ? AFFIRMATIVE_RESPONSE_LABEL : NEGATIVE_RESPONSE_LABEL}
) } return (

{props.label}

{props.helpText && (
)}
props.onRespond(true)} disabled={props.isSubmitting} loading={props.isSubmitting && props.value === true} autoFocus /> props.onRespond(false)} disabled={props.isSubmitting} loading={props.isSubmitting && props.value === false} />
) } export default function Confirm(props: RCTResponderProps<'CONFIRM'>) { const dialog = useDialogState({ visible: !props.disabled && !props.shouldUseAppendUi, // non-modals are rendered within their parent component, not a modal: props.context === 'transaction', }) const onRespond = (value: boolean) => { props.onUpdatePendingReturnValue(value) if (props.context !== 'docs') dialog.hide() } if (props.shouldUseAppendUi) { return (
) } return ( {props.helpText && (
)}
onRespond(true)} autoFocus /> onRespond(false)} />
) }