mirror of
https://github.com/bitwarden/browser
synced 2025-12-11 13:53:34 +00:00
Implements a new functionality for simple configurable dialogs that allows you to set an acceptAction which triggers a pending state. To use this set acceptAction to an async method, and it will be executed on accept prior to closing the dialog.
58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
import { SimpleDialogType } from "./simple-dialog-type.enum";
|
|
import { Translation } from "./translation";
|
|
|
|
// Using type lets devs skip optional params w/out having to pass undefined.
|
|
/**
|
|
*
|
|
* @typedef {Object} SimpleDialogOptions - A configuration type for the Simple Dialog component
|
|
*/
|
|
export type SimpleDialogOptions = {
|
|
/**
|
|
* Dialog title.
|
|
*
|
|
* If not localized, pass in a `Translation`. */
|
|
title: string | Translation;
|
|
|
|
/** Dialog content.
|
|
*
|
|
* If not localized, pass in a `Translation`. */
|
|
content: string | Translation;
|
|
|
|
/** Dialog type. It controls default icons and icon colors. */
|
|
type: SimpleDialogType;
|
|
|
|
/** Dialog custom icon class.
|
|
*
|
|
* If not provided, a standard icon will be inferred from type.
|
|
* Note: icon color is enforced based on dialog type. */
|
|
icon?: string;
|
|
|
|
/** Dialog custom accept button text.
|
|
*
|
|
* If not provided, ("yes" | i18n) will be used.
|
|
*
|
|
* If not localized, pass in a `Translation` */
|
|
acceptButtonText?: string | Translation;
|
|
|
|
/**
|
|
* Dialog custom cancel button text.
|
|
*
|
|
* If not provided, ("no" | i18n) will be used.
|
|
*
|
|
* If custom acceptButtonText is passed in, ("cancel" | i18n) will be used.
|
|
*
|
|
* If null is provided, the cancel button will be removed.
|
|
*
|
|
* If not localized, pass in a `Translation` */
|
|
cancelButtonText?: string | Translation;
|
|
|
|
/** Whether or not the user can use escape or clicking the backdrop to close the dialog */
|
|
disableClose?: boolean;
|
|
|
|
/**
|
|
* Custom accept action. Runs when the user clicks the accept button and shows a loading spinner until the promise
|
|
* is resolved.
|
|
*/
|
|
acceptAction?: () => Promise<void>;
|
|
};
|