this repo has no description
at main 1.2 kB view raw
1import { Accessor, createSignal, Setter } from "solid-js"; 2 3export interface ConfirmationPopupButton{ 4 text: string, 5 callback: () => void 6} 7 8export class ConfirmationManager{ 9 public static Instance: ConfirmationManager; 10 11 private _setText: Setter<string>; 12 public Text: Accessor<string>; 13 14 private _setBody: Setter<string>; 15 public Body: Accessor<string>; 16 17 private _setButtons: Setter<ConfirmationPopupButton[]>; 18 public Buttons: Accessor<ConfirmationPopupButton[]>; 19 20 private _setShown: Setter<boolean>; 21 public Shown: Accessor<boolean>; 22 23 constructor(){ 24 ConfirmationManager.Instance = this; 25 26 [ this.Text, this._setText ] = createSignal(''); 27 [ this.Body, this._setBody ] = createSignal(''); 28 [ this.Buttons, this._setButtons ] = createSignal<ConfirmationPopupButton[]>([]); 29 [ this.Shown, this._setShown ] = createSignal(false); 30 } 31 32 public ShowConfirmation( text: string, body: string, buttons: ConfirmationPopupButton[] ): boolean{ 33 if(this.Shown())return false; 34 35 this._setShown(true); 36 37 this._setText(text); 38 this._setBody(body); 39 this._setButtons(buttons); 40 41 return true; 42 } 43 44 public CancelConfirmation(){ 45 this._setShown(false); 46 } 47}