Skip to content

useDialog ​

useDialog is used to programmatically call wd-dialog, supporting alert, confirm, prompt, show, and close.

Basic Usage ​

First declare wd-dialog in the page, then open the dialog via useDialog().

html
<wd-dialog />
<wd-button @click="openAlert">Open Alert</wd-button>
ts
import { useDialog } from '@/uni_modules/wot-ui'

const dialog = useDialog()

const openAlert = () => {
  dialog.alert({
    title: 'Notice',
    msg: 'Operation successful'
  })
}

Confirm and Prompt ​

confirm and prompt return a Promise, then corresponds to confirmation, catch corresponds to cancellation or closing.

html
<wd-dialog />
<wd-button @click="openConfirm">Open Confirm</wd-button>
<wd-button @click="openPrompt">Open Prompt</wd-button>
ts
import { useDialog } from '@/uni_modules/wot-ui'

const dialog = useDialog()

const openConfirm = () => {
  dialog
    .confirm({
      title: 'Delete Confirmation',
      msg: 'Are you sure you want to delete this record?'
    })
    .then(() => {
      console.log('Clicked confirm')
    })
    .catch(() => {
      console.log('Clicked cancel')
    })
}

const openPrompt = () => {
  dialog
    .prompt({
      title: 'Please enter email',
      inputPattern: /.+@.+\..+/i,
      inputError: 'Invalid email format'
    })
    .then((res) => {
      console.log(res.value)
    })
}

Multiple Instance Calls ​

Use selector to distinguish between multiple instances on the page. useDialog(selector) will bind to the specified instance.

html
<wd-dialog selector="dialog-a" />
<wd-dialog selector="dialog-b" />
<wd-button @click="openA">Open A</wd-button>
<wd-button @click="openB">Open B</wd-button>
ts
import { useDialog } from '@/uni_modules/wot-ui'

const dialogA = useDialog('dialog-a')
const dialogB = useDialog('dialog-b')

const openA = () => {
  dialogA.alert({ title: 'Instance A', msg: 'This is dialog A' })
}

const openB = () => {
  dialogB.alert({ title: 'Instance B', msg: 'This is dialog B' })
}

Pre-confirm Interception ​

beforeConfirm receives the current input value and supports returning boolean or Promise<boolean>.

html
<wd-dialog />
<wd-button @click="openBeforeConfirm">Pre-confirm Interception</wd-button>
ts
import { useDialog, useToast } from '@/uni_modules/wot-ui'

const dialog = useDialog()
const toast = useToast()

const openBeforeConfirm = () => {
  dialog.confirm({
    title: 'Confirm Submit',
    msg: 'Will validate before submitting',
    beforeConfirm: () => {
      toast.loading('Validating...')
      return new Promise((resolve) => {
        setTimeout(() => {
          toast.close()
          resolve(true)
        }, 1200)
      })
    }
  })
}

API ​

Methods ​

Method NameDescriptionParametersReturn Value
showOpen dialogstring | DialogOptionsPromise<DialogResult>
alertOpen Alert dialogstring | DialogOptionsPromise<DialogResult>
confirmOpen Confirm dialogstring | DialogOptionsPromise<DialogResult>
promptOpen Prompt dialogstring | DialogOptionsPromise<DialogResult>
closeClose current dialog-void

DialogResult ​

ParameterDescriptionTypeDefault Value
actionOperation type, optional values are confirm, cancel, modal, closeActionType-
valueInput value in Prompt modestring | number-

useDialog ​

ParameterDescriptionTypeDefault Value
selectorSpecifies the dialog instance identifier, uses default instance when empty stringstring''

DialogOptions ​

ParameterDescriptionTypeDefault Value
titleTitlestring''
msgMessage contentstring''
typeDialog type, optional values are alert, confirm, promptDialogTypealert
themeOperation area style, optional values are button, textDialogThemebutton
zIndexDialog z-indexnumber99
lazyRenderLazy render dialog contentbooleantrue
headerImageTop banner image addressstring-
iconIcon name. Optional values are success, info, warning, danger, also supports custom icon namesstring-
iconColorIcon colorstring-
iconPropsIcon component transparent propertiesPartial<IconProps>-
inputValuePrompt initial valuestring | number-
inputPropsInput component properties in Prompt modePartial<InputProps>{ type: 'text', modelValue: '' }
textareaPropsTextarea component properties in Prompt modePartial<TextareaProps>-
inputPatternPrompt input regex validation ruleRegExp-
inputValidatePrompt input function validation rule, returns boolean or error text(inputValue: string | number) => boolean | string-
inputErrorPrompt validation failure prompt textstring''
actionLayoutOperation button arrangement, optional values are horizontal, verticalDialogActionLayouthorizontal
showCancelButtonWhether to show cancel buttonbooleanalert is false, confirm/prompt is true
confirmButtonTextConfirm button textstring-
cancelButtonTextCancel button textstring-
confirmButtonPropsConfirm button configuration, supports string, object or nullDialogBoxButtonOption{}
cancelButtonPropsCancel button configuration, supports string, object or nullDialogBoxButtonOptionDerived from showCancelButton
actionsCustom action button array; higher priority than confirm/cancel buttons after configurationDialogAction[]-
closeOnClickModalWhether to support closing by clicking maskbooleanfalse
showCloseWhether to show top-right close buttonbooleanfalse
beforeConfirmPre-confirm interception function, returns boolean or Promise<boolean>DialogBeforeConfirm-

Released under the MIT License.

Released under the MIT License.