This commit is contained in:
+18
@@ -0,0 +1,18 @@
|
||||
export type ScrollLockProps = {
|
||||
/**
|
||||
* Whether to prevent body scrolling when the content is open.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
preventScroll?: boolean;
|
||||
/**
|
||||
* The delay in milliseconds before the scrollbar is restored after closing the
|
||||
* dialog. This is only applicable when using the `child` snippet for custom
|
||||
* transitions and `preventScroll` is `true`. You should set this to a value
|
||||
* greater than the transition duration to prevent content from shifting during
|
||||
* the transition.
|
||||
*
|
||||
* @default null
|
||||
*/
|
||||
restoreScrollDelay?: number | null;
|
||||
};
|
||||
+1
@@ -0,0 +1 @@
|
||||
export {};
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
<script lang="ts">
|
||||
import type { ScrollLockProps } from "./index.js";
|
||||
import { BodyScrollLock } from "../../../internal/body-scroll-lock.svelte.js";
|
||||
|
||||
let { preventScroll = true, restoreScrollDelay = null }: ScrollLockProps = $props();
|
||||
|
||||
if (preventScroll) {
|
||||
new BodyScrollLock(preventScroll, () => restoreScrollDelay);
|
||||
}
|
||||
</script>
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
import type { ScrollLockProps } from "./index.js";
|
||||
declare const ScrollLock: import("svelte").Component<ScrollLockProps, {}, "">;
|
||||
type ScrollLock = ReturnType<typeof ScrollLock>;
|
||||
export default ScrollLock;
|
||||
Reference in New Issue
Block a user