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-
confirmButtonProps v1.5.0Confirm button configuration, supports string, object or nullDialogBoxButtonOption{}
cancelButtonProps v1.5.0Cancel 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.