UNPKG

@dnd-kit-svelte/svelte

Version:

[![Stable release](https://img.shields.io/npm/v/@dnd-kit-svelte/svelte.svg)](https://npm.im/@dnd-kit-svelte/svelte)

23 lines (22 loc) 723 B
import { effect } from '@dnd-kit/state'; import { createSubscriber } from 'svelte/reactivity'; /** Trigger a re-run of Svelte effects/derivations when reading a @dnd-kit/state Signal. */ export function useSignal(signal, _sync = false) { let previous = signal.peek(); const subscribe = createSubscriber((update) => { return effect(() => { const current = signal.value; if (previous !== current) { previous = current; update(); } }); }); return { get value() { // Make this getter reactive if read in a Svelte effect/derived subscribe(); return signal.peek(); }, }; }