/* eslint-disable prefer-promise-reject-errors */ import { SNAlertService } from 'snjs'; import { SKAlert } from 'sn-stylekit'; export class AlertService extends SNAlertService { async alert( text: string, title: string, closeButtonText = 'OK', onClose: () => void ) { 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( text: string, title: string, confirmButtonText = 'Confirm', cancelButtonText = 'Cancel', onConfirm: () => void, onCancel: () => void, 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(); }); } }