Files
standardnotes-app-web/app/assets/javascripts/services/alertService.js
Mo Bitar 8835fd6ebf WIP
2020-04-01 09:53:19 -05:00

67 lines
1.5 KiB
JavaScript

/* eslint-disable prefer-promise-reject-errors */
import { SNAlertService } from 'snjs';
import { SKAlert } from 'sn-stylekit';
export class AlertService extends SNAlertService {
async alert(
title,
text,
closeButtonText = "OK",
onClose
) {
return new Promise((resolve) => {
const buttons = [
{
text: closeButtonText,
style: "neutral",
action: async () => {
if (onClose) {
this.deviceInterface.timeout(onClose);
}
resolve(true);
}
}
];
const alert = new SKAlert({ title, text, buttons });
alert.present();
});
}
async confirm(
title,
text,
confirmButtonText = "Confirm",
cancelButtonText = "Cancel",
onConfirm,
onCancel,
destructive = false
) {
return new Promise((resolve, reject) => {
const buttons = [
{
text: cancelButtonText,
style: "neutral",
action: async () => {
if (onCancel) {
this.deviceInterface.timeout(onCancel);
}
reject(false);
}
},
{
text: confirmButtonText,
style: destructive ? "danger" : "info",
action: async () => {
if (onConfirm) {
this.deviceInterface.timeout(onConfirm);
}
resolve(true);
}
},
];
const alert = new SKAlert({ title, text, buttons });
alert.present();
});
}
}