diff --git a/src/features/file/helpers.ts b/src/features/file/helpers.ts index f709e2e..544bbd2 100644 --- a/src/features/file/helpers.ts +++ b/src/features/file/helpers.ts @@ -1,4 +1,4 @@ -import { Accessor, createEffect, createResource, createSignal, InitializedResource, onCleanup, Resource } from "solid-js"; +import { Accessor, createEffect, from, createSignal } from "solid-js"; import { json } from "./parser"; import { filter } from "~/utilities"; @@ -88,17 +88,11 @@ function createPolled(source: Accessor, callback: (source: S, prev: T) }; function createTicker(interval: number): Accessor { - const [tick, update] = createSignal(true); + return from(set => { + const ref = setInterval(() => set((v = true) => !v), interval); - const intervalId = setInterval(() => { - update(v => !v); - }, interval); - - onCleanup(() => { - clearInterval(intervalId); - }); - - return tick; + return () => clearInterval(ref); + }) as Accessor; } async function* walk(directory: FileSystemDirectoryHandle, path: string[] = []): AsyncGenerator<{ id: string, handle: FileSystemFileHandle, path: string[], file: File }, void, never> {