this repo has no description
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}