Type “AlertDialog”

Extends Popup

An AlertDialog represents a native dialog pop-up showing a message and up to three buttons. Is automatically disposed when closed.

You can import this type like this:

import {AlertDialog} from 'tabris';

Or reference it directly form anywhere as “tabris.AlertDialog”.

Properties

buttons

Type: {ok?: string, cancel?: string, neutral?: string}

An object with the texts of the buttons to display. There are up to three buttons: ok, cancel and neutral. If no text is given for a button it will not be displayed. Example: {ok: 'Yes', cancel: 'No'} shows ‘Yes’ and ‘No’, but no ‘neutral’ button.

message

Type: string

The message to display inside the dialog.

textInputs

Type: TextInput[]

A list of TextInput widgets to be displayed alongside the title and message. The text values inserted by the user can be read in the dialogs close event from the respective TextInputs. Eg.: dialog.on('close', (e) => e.target.textInputs[0].text)

title

Type: string

The title of the dialog.

Events

buttonsChanged

Fired when the buttons property has changed.

Event Parameters

  • target: this The widget the event was fired on.

  • value: {ok?: string, cancel?: string, neutral?: string} The new value of buttons.

close

Fired when the dialog was closed for any reason.

Event Parameters

  • target: this The widget the event was fired on.

  • button: ‘ok’|‘cancel’|‘neutral’|’’ The type of button that was used to close the dialog. Can also be an empty string, e.g. when the global back button was pressed.

closeCancel

Fired when the dialog was closed by pressing the ‘cancel’ button.

closeNeutral

Fired when the dialog was closed by pressing the ‘neutral’ button.

closeOk

Fired when the dialog was closed by pressing the ‘ok’ button.

messageChanged

Fired when the message property has changed.

Event Parameters

  • target: this The widget the event was fired on.

  • value: string The new value of message.

textInputsChanged

Fired when the textInputs property has changed.

Event Parameters

  • target: this The widget the event was fired on.

  • value: TextInput[] The new value of textInputs.

titleChanged

Fired when the title property has changed.

Event Parameters

  • target: this The widget the event was fired on.

  • value: string The new value of title.

Example

import {AlertDialog, Button, TextInput, ui} from 'tabris';

// AlertDialog example

new Button({
  left: 16, top: 'prev() 16', right: 16,
  text: 'Show simple dialog'
}).on('select', () => {
  new AlertDialog({
    title: 'Comment saved',
    buttons: {ok: 'Acknowledge'}
  }).open();
}).appendTo(ui.contentView);

new Button({
  left: 16, top: 'prev() 16', right: 16,
  text: 'Show full featured dialog'
}).on('select', () => {
  new AlertDialog({
    title: 'Conflict while saving',
    message: 'How do you want to resolve the conflict?',
    buttons: {
      ok: 'Replace',
      cancel: 'Discard',
      neutral: 'Keep editing'
    }
  }).on({
    closeOk: () => console.log('Replace'),
    closeNeutral: () => console.log('Keep editing'),
    closeCancel: () => console.log('Discard'),
    close: ({button}) => console.log('Dialog closed: ' + button)
  }).open();
}).appendTo(ui.contentView);

new Button({
  left: 16, top: 'prev() 16', right: 16,
  text: 'Show self closing dialog'
}).on('select', () => {
  let alertDialog = new AlertDialog({
    message: 'This dialogs closes in 3 seconds.',
    buttons: {ok: 'OK'}
  }).open();
  setTimeout(() => alertDialog.close(), 3000);
}).appendTo(ui.contentView);

new Button({
  left: 16, top: 'prev() 16', right: 16,
  text: 'Show text input dialog'
}).on('select', () => new AlertDialog({
  title: 'Sign-in required',
  message: 'Provide sign-in credentials to access your personalized content.',
  buttons: {ok: 'Sign-in', cancel: 'Cancel'},
  textInputs: [new TextInput({message: 'Username'}), new TextInput({message: 'Password', type: 'password'})]
}).on('close', ({target: dialog}) => console.log(`Input: ${dialog.textInputs[0].text} / ${dialog.textInputs[1].text}`))
  .open())
  .appendTo(ui.contentView);

See also