summaryrefslogtreecommitdiff
path: root/src/engine/utils/modal.ts
blob: a3788213c87ab62f760a2ad9f5ad45fba7beb828 (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
39
40
41
import { Miscellaneous } from "../config";

let modalOpen = false;

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

    modalContent.innerHTML = content;
    modalContent.style.animation = "scaleUp 0.25s";

    modalOpen = true;
  }
};

export const closeModal = (
  id = Miscellaneous.MODAL_ID,
  contentId = Miscellaneous.MODAL_CONTENT_ID,
) => {
  const modal = document.getElementById(id);
  const modalContent = document.getElementById(contentId);

  if (modal && modalOpen && modalContent) {
    modal.style.animation = "fadeOut 0.25s";
    modalContent.style.animation = "scaleDown 0.25s";

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

      modalOpen = false;
    }, 200);
  }
};