import React from 'react' import { Text } from 'react-native' import RootSiblings from 'react-native-root-siblings' import Dialog from './Dialog' function showModal (obj: Taro.showModal.Option): Promise { const { title = '', content = '', showCancel = true, cancelText = '取消', cancelColor = '#000000', confirmText = '确定', confirmColor = '#3CC51F', success, fail, complete } = obj || {} let sibling return new Promise((resolve, reject) => { function onConfirm () { const res = { errMsg: 'showModal:ok', confirm: true, cancel: false } sibling && sibling.destroy() sibling = undefined success?.(res) complete?.(res) resolve(res) } function onCancel () { const res = { errMsg: 'showModal:cancel', confirm: false, cancel: true } sibling && sibling.destroy() sibling = undefined success?.(res) complete?.(res) resolve(res) } try { sibling = new RootSiblings( {content} ) } catch (e) { const res = { errMsg: `showModal fail:${e.message}` } fail?.(res) complete?.(res) reject(res) } }) } export { showModal }