diff --git a/ts/lib/components/HelpModal.svelte b/ts/lib/components/HelpModal.svelte index cf6292537..aa7e24232 100644 --- a/ts/lib/components/HelpModal.svelte +++ b/ts/lib/components/HelpModal.svelte @@ -6,16 +6,14 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html import * as tr from "@generated/ftl"; import { renderMarkdown } from "@tslib/helpers"; import Carousel from "bootstrap/js/dist/carousel"; - import Modal from "bootstrap/js/dist/modal"; - import { createEventDispatcher, getContext, onDestroy, onMount } from "svelte"; + import { createEventDispatcher, onMount } from "svelte"; + import Modal from "./Modal.svelte"; import { infoCircle } from "$lib/components/icons"; - import { registerModalClosingHandler } from "$lib/sveltelib/modal-closing"; import { pageTheme } from "$lib/sveltelib/theme"; import Badge from "./Badge.svelte"; import Col from "./Col.svelte"; - import { modalsKey } from "./context-keys"; import HelpSection from "./HelpSection.svelte"; import Icon from "./Icon.svelte"; import Row from "./Row.svelte"; @@ -27,50 +25,20 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html export let helpSections: HelpItem[]; export let fsrs = false; - export const modalKey: string = Math.random().toString(36).substring(2); - - const modals = getContext>(modalsKey); - - let modal: Modal; let carousel: Carousel; - let modalRef: HTMLDivElement; + let modal: Modal; let carouselRef: HTMLDivElement; - function onOkClicked(): void { - modal.hide(); - } - const dispatch = createEventDispatcher(); - const { set: setModalOpen, remove: removeModalClosingHandler } = - registerModalClosingHandler(onOkClicked); - - function onShown() { - setModalOpen(true); - } - - function onHidden() { - setModalOpen(false); - } - onMount(() => { - modalRef.addEventListener("shown.bs.modal", onShown); - modalRef.addEventListener("hidden.bs.modal", onHidden); - modal = new Modal(modalRef, { keyboard: false }); carousel = new Carousel(carouselRef, { interval: false, ride: false }); /* Bootstrap's Carousel.Event interface doesn't seem to work as a type here */ carouselRef.addEventListener("slide.bs.carousel", (e: any) => { activeIndex = e.to; }); dispatch("mount", { modal: modal, carousel: carousel }); - modals.set(modalKey, modal); - }); - - onDestroy(() => { - removeModalClosingHandler(); - modalRef.removeEventListener("shown.bs.modal", onShown); - modalRef.removeEventListener("hidden.bs.modal", onHidden); }); let activeIndex = startIndex; @@ -80,119 +48,98 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html -