A couple fixes to Dialog

Quickfix for SSR
Let it take open from OpenClose context properly
This commit is contained in:
Ryan Gossiaux
2021-12-14 22:54:06 -08:00
parent 47c6918fd2
commit df96d74003

View File

@@ -5,6 +5,7 @@
createEventDispatcher,
tick,
onDestroy,
onMount,
} from "svelte";
export enum DialogStates {
Open,
@@ -62,7 +63,8 @@
let containers: Set<HTMLElement> = new Set();
let openClosedState: Writable<State> | undefined = getContext("OpenClosed");
$: open =
$: {
open =
open === undefined && openClosedState !== undefined
? match($openClosedState, {
[State.Open]: true,
@@ -84,6 +86,7 @@
`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${open}`
);
}
}
$: dialogState = open ? DialogStates.Open : DialogStates.Closed;
$: visible =
@@ -148,11 +151,14 @@
$api.close();
}
let mounted = false;
onMount(() => (mounted = true));
$: _cleanupScrollLock = (() => {
if (_cleanupScrollLock) {
_cleanupScrollLock();
}
if (dialogState !== DialogStates.Open) return;
if (!mounted) return;
let overflow = document.documentElement.style.overflow;
let paddingRight = document.documentElement.style.paddingRight;