summaryrefslogtreecommitdiff
path: root/src/engine/utils/modal.ts
blob: e7b36b168ec38f3bf691c6a3f9b6938c6a599639 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import { Miscellaneous } from "../config";

let modalOpen = false;

export const openModal = (content: string, id = Miscellaneous.MODAL_ID) => {
  const modal = document.getElementById(id);
  if (modal && !modalOpen) {
    modal.style.display = "flex";
    modal.style.animation = "fadeIn 0.25s";

    modal.innerHTML = `<div class="modal-content">${content}</div>`;
    const modalContent = document.querySelector<HTMLElement>(".modal-content");
    if (modalContent) {
      modalContent.style.animation = "scaleUp 0.25s";
    }

    modalOpen = true;
  }
};

export const closeModal = (id = Miscellaneous.MODAL_ID) => {
  const modal = document.getElementById(id);
  if (modal && modalOpen) {
    modal.style.animation = "fadeOut 0.25s";

    const modalContent = document.querySelector<HTMLElement>(".modal-content");
    if (modalContent) {
      modalContent.style.animation = "scaleDown 0.25s";
    }

    setTimeout(() => {
      modal.innerHTML = "";
      modal.style.display = "none";

      modalOpen = false;
    }, 250);
  }
};