import { createEffect, createMemo, createSignal, onCleanup, type ValidComponent } from "solid-js" import { Dynamic } from "solid-js/web" export const TextShimmer = (props: { text: string class?: string as?: T active?: boolean offset?: number }) => { const text = createMemo(() => props.text ?? "") const active = createMemo(() => props.active ?? true) const offset = createMemo(() => props.offset ?? 0) const [run, setRun] = createSignal(active()) const swap = 220 let timer: ReturnType | undefined createEffect(() => { if (timer) { clearTimeout(timer) timer = undefined } if (active()) { setRun(true) return } timer = setTimeout(() => { timer = undefined setRun(false) }, swap) }) onCleanup(() => { if (!timer) return clearTimeout(timer) }) return ( ) }