From c7736938c2bcc5f4a07650c8d02d74904f252c3e Mon Sep 17 00:00:00 2001 From: Aman khan Date: Tue, 6 Jan 2026 20:29:41 +0500 Subject: [PATCH] server-paginated-select and server-paginated-table now supports multiselect --- .../server-paginated-select.tsx | 24 +++++++++++++++---- .../server-paginated-table.tsx | 2 +- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/lib/components/server-paginated-select/server-paginated-select.tsx b/src/lib/components/server-paginated-select/server-paginated-select.tsx index 3d21f63..553e81e 100644 --- a/src/lib/components/server-paginated-select/server-paginated-select.tsx +++ b/src/lib/components/server-paginated-select/server-paginated-select.tsx @@ -118,11 +118,25 @@ export default function ServerPaginatedSelect({ !data.find((item) => valueResolver(item) === val) && fetchDefaultValue ) { - fetchDefaultValue(val) - .then((item) => - setData((prev) => uniqBy(prev.concat(item.data), "id") as any[]) - ) - .catch(console.error); + if (Array.isArray(val)) { + Promise.all(val.map((id: string) => fetchDefaultValue(id))) + .then((items) => { + setData( + (prev) => + uniqBy( + prev.concat(...items.map((item) => item.data)), + "id" + ) as any[] + ); + }) + .catch(console.error); + } else { + fetchDefaultValue(val) + .then((item) => + setData((prev) => uniqBy(prev.concat(item.data), "id") as any[]) + ) + .catch(console.error); + } } }, [props?.defaultValue]); diff --git a/src/lib/components/server-paginated-table/server-paginated-table.tsx b/src/lib/components/server-paginated-table/server-paginated-table.tsx index d11e912..58b7c86 100644 --- a/src/lib/components/server-paginated-table/server-paginated-table.tsx +++ b/src/lib/components/server-paginated-table/server-paginated-table.tsx @@ -88,7 +88,7 @@ export default function ServerPaginatedTable({ current: 1, pageSize, ...filters?.reduce( - (acc, filter) => ({ ...acc, [`filter.${filter.key}`]: "" }), + (acc, filter) => ({ ...acc, [`filter.${filter.key}`]: undefined }), {} ), ["sort.field"]: defaultSortField,