From cc664a764d2e799975f44a7b1144d28d598ad1ee Mon Sep 17 00:00:00 2001 From: Sebin Nyshkim Date: Sun, 2 Apr 2023 17:42:26 +0200 Subject: [PATCH] feat: move modal out of views and into global app context --- src/App.vue | 34 ++++++++++++++++++++++++++++++---- src/views/AnatomyView.vue | 16 ---------------- src/views/GeneralView.vue | 16 ---------------- src/views/HomeView.vue | 16 ---------------- 4 files changed, 30 insertions(+), 52 deletions(-) diff --git a/src/App.vue b/src/App.vue index 63fa01b..23b3a32 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,6 +2,9 @@ import { ref, provide } from "vue"; import { RouterView } from "vue-router"; import { isWarnKey, modalResultKey, nsfwKey, showModalKey } from "@/keys"; +import RefModal from "@/components/RefModal.vue"; +import ButtonGroup from "@/components/ButtonGroup.vue"; +import Button from "@/components/RefButton.vue"; import SiteHeader from "@/components/SiteHeader.vue"; import SiteFooter from "@/components/SiteFooter.vue"; import SiteNavigation from "@/components/SiteNavigation.vue"; @@ -13,10 +16,11 @@ const isNsfw = ref(false); const isConfirmedHorny = ref(false); const isWarn = ref(false); +const nsfwmodal = ref>(); + const showModal = (): void => { if (!isConfirmedHorny.value) { - isWarn.value = true; - document.body.classList.add("scroll-lock"); + nsfwmodal.value?.showModal(); setTimeout(() => { isNsfw.value = false; @@ -29,8 +33,7 @@ const showModal = (): void => { const modalResult = (value: boolean): void => { isNsfw.value = value; isConfirmedHorny.value = value; - isWarn.value = false; - document.body.classList.remove("scroll-lock"); + nsfwmodal.value?.close(); }; provide(isWarnKey, isWarn); @@ -40,6 +43,29 @@ provide(showModalKey, showModal);