feat: table list sorter

This commit is contained in:
jialin
2025-12-21 21:37:05 +08:00
parent 6738dfe0d3
commit 23a761226a
25 changed files with 417 additions and 138 deletions
+29
View File
@@ -23,3 +23,32 @@ export default function useTableSort({
setSortOrder: handleSortChange
};
}
type orderType = {
columnKey?: string;
field?: string;
order: SortOrder;
};
export function useTableMultiSort() {
const [sortOrder, setSortOrder] = useState<string[]>([]);
const handleMultiSortChange = (order: orderType | orderType[]) => {
const sortOrders = Array.isArray(order) ? order : [order];
const sortOrderMap: string[] = [];
sortOrders.forEach((item) => {
const key = item.columnKey || item.field;
if (key) {
sortOrderMap.push(item.order === 'descend' ? `-${key}` : key);
}
});
setSortOrder(sortOrderMap);
return sortOrderMap;
};
return {
sortOrder,
handleMultiSortChange
};
}