summaryrefslogtreecommitdiffhomepage
path: root/packages/ui/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/ui/src')
-rw-r--r--packages/ui/src/hooks/use-filtered-list.tsx15
1 files changed, 11 insertions, 4 deletions
diff --git a/packages/ui/src/hooks/use-filtered-list.tsx b/packages/ui/src/hooks/use-filtered-list.tsx
index 1b3be4b4c..11bc35548 100644
--- a/packages/ui/src/hooks/use-filtered-list.tsx
+++ b/packages/ui/src/hooks/use-filtered-list.tsx
@@ -22,10 +22,17 @@ export function useFilteredList<T>(props: FilteredListProps<T>) {
const empty: Group[] = []
const [grouped, { refetch }] = createResource(
- () => ({
- filter: store.filter,
- items: typeof props.items === "function" ? undefined : props.items,
- }),
+ () => {
+ // When items is a function (not async filter function), call it to track changes
+ const itemsValue = typeof props.items === "function"
+ ? (props.items as () => T[])() // Call synchronous function to track it
+ : props.items
+
+ return {
+ filter: store.filter,
+ items: itemsValue,
+ }
+ },
async ({ filter, items }) => {
const needle = filter?.toLowerCase()
const all = (items ?? (await (props.items as (filter: string) => T[] | Promise<T[]>)(needle))) || []