tui: fix session list search filtering (#31748)

Fix #31182
Close #31211
This commit is contained in:
Simon Klee
2026-06-10 21:47:05 +02:00
committed by GitHub
parent ffcb568912
commit e5dc3f94fa
3 changed files with 13 additions and 7 deletions
-1
View File
@@ -54,7 +54,6 @@
"@opentui/core": "catalog:",
"@opentui/keymap": "catalog:",
"@opentui/solid": "catalog:",
"@solid-primitives/scheduled": "1.5.2",
"clipboardy": "4.0.0",
"diff": "catalog:",
"effect": "catalog:",
+13 -3
View File
@@ -1,9 +1,19 @@
import { createEffect, createSignal, on, onCleanup, type Accessor } from "solid-js"
import { debounce, type Scheduled } from "@solid-primitives/scheduled"
export function createDebouncedSignal<T>(value: T, ms: number): [Accessor<T>, Scheduled<[value: T]>] {
export function createDebouncedSignal<T>(value: T, ms: number): [Accessor<T>, (value: T) => void] {
const [get, set] = createSignal(value)
return [get, debounce((v: T) => set(() => v), ms)]
let timer: ReturnType<typeof setTimeout> | undefined
const debounced = (next: T) => {
if (timer) clearTimeout(timer)
timer = setTimeout(() => {
timer = undefined
set(() => next)
}, ms)
}
onCleanup(() => {
if (timer) clearTimeout(timer)
})
return [get, debounced]
}
export function createFadeIn(show: Accessor<boolean>, enabled: Accessor<boolean>) {