1- Uid = CreateUUID[];
2-
3- <div>
4- <dialog id="dialog-{Uid}" class="relative" style="z-index:99" aria-labelledby="modal-title" role="dialog" aria-modal="true">
5- <div class="fixed inset-0 bg-gray-500 dark:bg-gray-800 dark:bg-opacity-75 bg-opacity-75 transition-opacity"></div>
6-
7- <div class="fixed inset-0 z-10 w-screen overflow-y-auto">
8- <div class="flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0">
9- <div class="relative transform overflow-hidden rounded-lg bg-white dark:bg-gray-700 px-4 pb-4 pt-5 text-left shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg sm:p-6">
10- <div class="sm:flex sm:items-start">
11- <div class="mx-auto flex h-12 w-12 flex-shrink-0 items-center justify-center rounded-full bg-red-100 dark:bg-red-800 sm:mx-0 sm:h-10 sm:w-10">
12- <svg class="h-6 w-6 text-red-600 dark:text-red-200" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true">
13- <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z" />
14- </svg>
15- </div>
16- <div class="mt-3 text-center sm:ml-4 sm:mt-0 sm:text-left">
17- <h3 class="text-base font-semibold leading-6 text-gray-900 dark:text-gray-400" id="modal-title">Alert</h3>
18- <div class="mt-2">
19- <p id="text-{Uid}" class="text-sm text-gray-500">Are you sure you want to deactivate your account? All of your data will be permanently removed from our servers forever. This action cannot be undone.</p>
20- </div>
21- </div>
22- </div>
23- <div method="dialog" class="mt-5 sm:mt-4 sm:flex sm:flex-row-reverse">
24- <button id="refresh-{Uid}" type="button" class="inline-flex w-full justify-center rounded-md bg-red-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-red-500 sm:ml-3 sm:w-auto dark:bg-red-800 dark:text-gray-300">Refresh window</button>
25- <button id="cancel-{Uid}" type="button" class="mt-3 inline-flex w-full justify-center rounded-md bg-white px-3 py-2 text-sm font-semibold text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 hover:bg-gray-50 sm:mt-0 sm:w-auto dark:bg-gray-400 dark:ring-gray-700 dark:text-gray-800">Cancel</button>
26- </div>
27- </div>
28- </div>
29- </div>
30- </dialog>
31- <script>{
32- const stack = [];
33- let state = false;
34-
35- window.alert = (text = "Unknown alert") => {
36- stack.push(text);
37- if (state) {
38- return;
39- }
40- process();
41- }
42-
43- const process = () => {
44- state = true;
45- modal(stack.shift(), () => {
46- if (stack.length == 0) {
47- state = false;
48- return;
49- }
50- process();
51- });
52- }
53-
54- const modal = (msg = "Unknown alert", cbk = () => {}) => {
55- const dialog = document.getElementById('dialog-<Uid/>');
56- const cancel = document.getElementById('cancel-<Uid/>');
57- const refresh = document.getElementById('refresh-<Uid/>');
58- const text = document.getElementById('text-<Uid/>');
59-
60- text.innerText = msg;
61- const c = () => {
62- dialog.close();
63- cancel.removeEventListener('click', c);
64- cbk();
65- };
66-
67- cancel.addEventListener('click', c);
68- refresh.addEventListener('click', () => {
69- refresh.remove();
70- location.reload();
71- });
72-
73- dialog.showModal();
74-
75- }
76- }</script>
77- </div>
1+ <div class="hidden"></div>
0 commit comments