mirror of
https://github.com/apache/superset.git
synced 2026-05-12 19:35:17 +00:00
fix(table chart): fix rerender bug that continuously cleared search box (#39707)
This commit is contained in:
@@ -147,7 +147,25 @@ export default typedMemo(function DataTable<D extends object>({
|
||||
hooks || [],
|
||||
].flat();
|
||||
|
||||
const columnNames = Object.keys(data?.[0] || {});
|
||||
const columnNames = columns.map((column, index) => {
|
||||
const normalizedColumn = column as typeof column & {
|
||||
accessor?: string | ((row: D) => unknown);
|
||||
columnKey?: string;
|
||||
id?: string;
|
||||
};
|
||||
|
||||
const accessorName =
|
||||
typeof normalizedColumn.accessor === 'string'
|
||||
? normalizedColumn.accessor
|
||||
: undefined;
|
||||
|
||||
return (
|
||||
normalizedColumn.columnKey ??
|
||||
normalizedColumn.id ??
|
||||
accessorName ??
|
||||
String(index)
|
||||
);
|
||||
});
|
||||
const previousColumnNames = usePrevious(columnNames);
|
||||
const resultsSize = serverPagination ? rowCount : data.length;
|
||||
const sortByRef = useRef([]); // cache initial `sortby` so sorting doesn't trigger page reset
|
||||
@@ -237,6 +255,7 @@ export default typedMemo(function DataTable<D extends object>({
|
||||
getTableSize: defaultGetTableSize,
|
||||
globalFilter: defaultGlobalFilter,
|
||||
sortTypes,
|
||||
autoResetGlobalFilter: !isEqual(columnNames, previousColumnNames),
|
||||
autoResetSortBy: !isEqual(columnNames, previousColumnNames),
|
||||
manualSortBy: !!serverPagination,
|
||||
...moreUseTableOptions,
|
||||
|
||||
Reference in New Issue
Block a user