UNPKG

@grail-ui/svelte

Version:

[![NPM](https://img.shields.io/npm/v/@grail-ui/svelte)](https://www.npmjs.com/package/@grail-ui/svelte) [![minified](https://img.shields.io/bundlephobia/min/@grail-ui/svelte)](https://bundlephobia.com/package/@grail-ui/svelte) [![minified + zipped](https:

24 lines (23 loc) 607 B
import { writable } from 'svelte/store'; export default function typeahead({ debounceInterval = 200 } = {}) { const { subscribe, set } = writable(''); let debounceTimeout; let pressedLetters = []; function reset() { pressedLetters = []; set(''); } function _add(letter) { pressedLetters.push(letter); clearTimeout(debounceTimeout); debounceTimeout = setTimeout(() => { set(pressedLetters.join('')); reset(); }, debounceInterval); } return { subscribe, add: _add, reset, }; }