diff --git a/packages/raystack/components/data-table/data-table.types.tsx b/packages/raystack/components/data-table/data-table.types.tsx index 3edf07fc9..94b655abe 100644 --- a/packages/raystack/components/data-table/data-table.types.tsx +++ b/packages/raystack/components/data-table/data-table.types.tsx @@ -110,7 +110,7 @@ export interface DataTableProps { totalRowCount?: number; loadingRowCount?: number; onTableQueryChange?: (query: DataTableQuery) => void; - defaultSort: DataTableSort; + defaultSort?: DataTableSort; onLoadMore?: () => Promise; onRowClick?: (row: TData) => void; onColumnVisibilityChange?: (columnVisibility: VisibilityState) => void; diff --git a/packages/raystack/components/data-table/utils/index.tsx b/packages/raystack/components/data-table/utils/index.tsx index 05d3ef2c7..9fd709cf6 100644 --- a/packages/raystack/components/data-table/utils/index.tsx +++ b/packages/raystack/components/data-table/utils/index.tsx @@ -117,7 +117,7 @@ const generateFilterMap = ( }; const generateSortMap = (sort: DataTableSort[] = []): Map => { - return new Map(sort.map(({ name, order }) => [name, order])); + return new Map(sort.filter(Boolean).map(({ name, order }) => [name, order])); }; const isFilterChanged = ( @@ -173,7 +173,10 @@ export const hasActiveQuery = ( const hasSearch = Boolean( tableQuery?.search && tableQuery.search.trim() !== '' ); - const sortChanged = isSortChanged([defaultSort], tableQuery.sort || []); + const sortChanged = isSortChanged( + defaultSort ? [defaultSort] : [], + tableQuery.sort || [] + ); const groupChanged = isGroupChanged( [defaultGroupOption.id], tableQuery.group_by || [] @@ -346,7 +349,7 @@ export function getDefaultTableQuery( const internalQuery = dataTableQueryToInternal(oldQuery); return { - sort: [defaultSort], + sort: defaultSort ? [defaultSort] : [], group_by: [defaultGroupOption.id], ...internalQuery };