import React from 'react'; import { usePortal } from '../../common/portal'; import Portal from '../portal'; import Dialog from './dialog'; import DialogInput from './dialog-input'; import DialogKeyboard from './dialog-keyboard'; import DialogMethod from './dialog-method'; import type { DialogOptions, DialogAction, DialogInputOptions, DialogProps, } from './interface'; export const Instance = (opts: DialogOptions) => { return new Promise((resolve) => { const key = Portal.add( { Portal.remove(key); opts.onClosed?.(); }} onResponse={(action) => { resolve(action); }} /> ); }); }; export const confirm = (options: Omit) => Instance({ showCancelButton: true, ...options, }); /** * 不再维护,请用 Dialog 和 Input 组合使用 * @deprecated 已经废弃 */ export const input = (opts: DialogInputOptions) => { const key = Portal.add( { Portal.remove(key); opts.onClosed?.(); }} /> ); }; export const Component: React.FC> = ( props ) => { const { visible, statusBarTranslucent, onClosed } = usePortal({ ...props, }); return ( ); }; export const DialogComponent = Dialog; export const Keyboard: React.FC> = ( props ) => { const { Component: IComponent, visible, useNative, statusBarTranslucent, onClosed, } = usePortal(props); return ( ); }; export const KeyboardComponent = DialogKeyboard;