nsarrazin HF Staff commited on
Commit
eb17509
·
1 Parent(s): 03cf845

fix: use modal for settings layout

Browse files
src/lib/components/Modal.svelte CHANGED
@@ -1,7 +1,7 @@
1
  <script lang="ts">
2
  import { createEventDispatcher, onDestroy, onMount } from "svelte";
3
  import { cubicOut } from "svelte/easing";
4
- import { fade } from "svelte/transition";
5
  import Portal from "./Portal.svelte";
6
  import { browser } from "$app/environment";
7
 
@@ -63,7 +63,11 @@
63
  tabindex="-1"
64
  bind:this={modalEl}
65
  onkeydown={handleKeydown}
66
- class="max-h-[90dvh] overflow-y-auto overflow-x-hidden rounded-2xl bg-white shadow-2xl outline-none sm:-mt-10 {width}"
 
 
 
 
67
  >
68
  {@render children?.()}
69
  </div>
 
1
  <script lang="ts">
2
  import { createEventDispatcher, onDestroy, onMount } from "svelte";
3
  import { cubicOut } from "svelte/easing";
4
+ import { fade, fly } from "svelte/transition";
5
  import Portal from "./Portal.svelte";
6
  import { browser } from "$app/environment";
7
 
 
63
  tabindex="-1"
64
  bind:this={modalEl}
65
  onkeydown={handleKeydown}
66
+ in:fly={{ y: 100 }}
67
+ class={[
68
+ "max-h-[90dvh] overflow-y-auto overflow-x-hidden rounded-2xl bg-white shadow-2xl outline-none sm:-mt-10",
69
+ width,
70
+ ]}
71
  >
72
  {@render children?.()}
73
  </div>
src/routes/settings/+layout.svelte CHANGED
@@ -1,11 +1,10 @@
1
  <script lang="ts">
2
  import { base } from "$app/paths";
3
- import { clickOutside } from "$lib/actions/clickOutside";
4
  import { afterNavigate, goto } from "$app/navigation";
5
  import { useSettingsStore } from "$lib/stores/settings";
6
  import CarbonCheckmark from "~icons/carbon/checkmark";
7
 
8
- import { fade, fly } from "svelte/transition";
9
  interface Props {
10
  children?: import("svelte").Snippet;
11
  }
@@ -23,29 +22,17 @@
23
  const settings = useSettingsStore();
24
  </script>
25
 
26
- <div
27
- class="fixed inset-0 z-20 flex items-center justify-center bg-black/80 backdrop-blur-sm dark:bg-black/50"
28
- in:fade
29
  >
30
- <dialog
31
- in:fly={{ y: 100 }}
32
- open
33
- use:clickOutside={() => {
34
- if (window?.getSelection()?.toString()) {
35
- return;
36
- }
37
- goto(previousPage);
38
- }}
39
- class="h-[95dvh] w-[90dvw] overflow-hidden rounded-2xl bg-white shadow-2xl outline-none sm:h-[85dvh] xl:w-[1200px] 2xl:h-[75dvh]"
40
- >
41
- {@render children?.()}
42
- {#if $settings.recentlySaved}
43
- <div
44
- class="absolute bottom-4 right-4 m-2 flex items-center gap-1.5 rounded-full border border-gray-300 bg-gray-200 px-3 py-1 text-black"
45
- >
46
- <CarbonCheckmark class="text-green-500" />
47
- Saved
48
- </div>
49
- {/if}
50
- </dialog>
51
- </div>
 
1
  <script lang="ts">
2
  import { base } from "$app/paths";
 
3
  import { afterNavigate, goto } from "$app/navigation";
4
  import { useSettingsStore } from "$lib/stores/settings";
5
  import CarbonCheckmark from "~icons/carbon/checkmark";
6
 
7
+ import Modal from "$lib/components/Modal.svelte";
8
  interface Props {
9
  children?: import("svelte").Snippet;
10
  }
 
22
  const settings = useSettingsStore();
23
  </script>
24
 
25
+ <Modal
26
+ on:close={() => goto(previousPage)}
27
+ width="!h-[95dvh] !w-[90dvw] overflow-hidden rounded-2xl bg-white shadow-2xl outline-none sm:!h-[85dvh] xl:!w-[1200px] 2xl:!h-[75dvh]"
28
  >
29
+ {@render children?.()}
30
+ {#if $settings.recentlySaved}
31
+ <div
32
+ class="absolute bottom-4 right-4 m-2 flex items-center gap-1.5 rounded-full border border-gray-300 bg-gray-200 px-3 py-1 text-black"
33
+ >
34
+ <CarbonCheckmark class="text-green-500" />
35
+ Saved
36
+ </div>
37
+ {/if}
38
+ </Modal>