UNPKG

@sv-use/core

Version:

A collection of Svelte 5 utilities.

24 lines (23 loc) 738 B
import { untrack } from 'svelte'; /** * A state that automatically resets to the default value after a delay. * @param defaultValue The default value of the state (can be an object). * @param delay The delay in milliseconds. * @see https://svelte-librarian.github.io/sv-use/docs/core/auto-reset-state */ export function autoResetState(defaultValue, delay = 3000) { let timeout; const _state = $state({ current: defaultValue }); $effect(() => { $state.snapshot(_state); if (timeout) { clearTimeout(timeout); } untrack(() => { timeout = setTimeout(() => { _state.current = defaultValue; }, delay); }); }); return _state; }