From 5ab720b58f6d92a92bff8a7c434acc70cb13df08 Mon Sep 17 00:00:00 2001 From: Toni Kangas Date: Sat, 15 Jun 2024 01:56:27 +0300 Subject: [PATCH] Allow re-opening completed and dead-end modals (#131) --- src/components/Menu/Icon.svelte | 16 ++++++ src/components/Menu/IconButton.svelte | 37 +++---------- src/components/Menu/icons.ts | 31 +++++++++++ src/components/MinimizeableModal.svelte | 72 +++++++++++++++++++++++++ src/components/Modal.svelte | 6 ++- src/views/Pileon/CompletedModal.svelte | 15 ++---- src/views/Pileon/DeadEndModal.svelte | 15 ++---- src/views/Pileon/Pileon.svelte | 2 + 8 files changed, 140 insertions(+), 54 deletions(-) create mode 100644 src/components/Menu/Icon.svelte create mode 100644 src/components/Menu/icons.ts create mode 100644 src/components/MinimizeableModal.svelte diff --git a/src/components/Menu/Icon.svelte b/src/components/Menu/Icon.svelte new file mode 100644 index 0000000..fb7ad9a --- /dev/null +++ b/src/components/Menu/Icon.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/src/components/Menu/IconButton.svelte b/src/components/Menu/IconButton.svelte index 1c9aaf8..6f87e96 100644 --- a/src/components/Menu/IconButton.svelte +++ b/src/components/Menu/IconButton.svelte @@ -1,24 +1,8 @@ + +{#if open} + + + +{/if} + + + diff --git a/src/components/Modal.svelte b/src/components/Modal.svelte index 9ffb0db..d3b601e 100644 --- a/src/components/Modal.svelte +++ b/src/components/Modal.svelte @@ -5,9 +5,11 @@ import { randomString } from "../utils/components"; import IconButton from "./Menu/IconButton.svelte"; + import type { IIconName } from "./Menu/icons"; export let title: string; export let position: "left" | "center" = "center"; + export let closeIcon: IIconName = "Close"; const id = `modal-${randomString()}`; const titleId = `${id}-title`; @@ -55,7 +57,7 @@ >

{title}

- +
@@ -138,7 +140,7 @@ top: calc(env(titlebar-area-height) + 1rem) background: white - z-index: 4 + z-index: 6 font-size: 1rem overflow: hidden diff --git a/src/views/Pileon/CompletedModal.svelte b/src/views/Pileon/CompletedModal.svelte index eeb08e6..8b1e467 100644 --- a/src/views/Pileon/CompletedModal.svelte +++ b/src/views/Pileon/CompletedModal.svelte @@ -2,7 +2,7 @@ import { createEventDispatcher } from "svelte"; import IconButton from "../../components/Menu/IconButton.svelte"; - import Modal from "../../components/Modal.svelte"; + import MinimizeableModal from "../../components/MinimizeableModal.svelte"; import { isCompleted, type Piles } from "../../utils/pileon"; import { type IEvent } from "../../utils/statistics"; @@ -11,20 +11,13 @@ export let events: IEvent[]; export let piles: Piles; - let show = true; $: completed = isCompleted(piles); - $: events, (show = true); const dispatch = createEventDispatcher(); -{#if completed && show} - { - show = false; - }} - > +{#if completed} +
dispatch("shuffle")} />
-
+ {/if}