From 6d641c87627d5a04315413217e24b04985677ac1 Mon Sep 17 00:00:00 2001 From: Mate Vago Date: Wed, 20 Mar 2024 11:38:24 +0100 Subject: [PATCH] fix: simplify list sorting --- web/crux-ui/src/elements/dyo-table.tsx | 30 +++++++++++--------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/web/crux-ui/src/elements/dyo-table.tsx b/web/crux-ui/src/elements/dyo-table.tsx index c0a3a91d0..c86e4b2b2 100644 --- a/web/crux-ui/src/elements/dyo-table.tsx +++ b/web/crux-ui/src/elements/dyo-table.tsx @@ -144,14 +144,15 @@ const DyoTable = (props: React.PropsWithChildren>) => { const [pagination, setPagination] = useState({ pageNumber: 0, pageSize: 10 }) const [data, setData] = useState(propData) const [sort, setSort] = useState(() => { - if (initialSortColumn != null && initialSortDirection) { - return { - column: initialSortColumn, - direction: initialSortDirection, - } - } - - return null + const direction = initialSortDirection ?? 'asc' + const sortColum = initialSortColumn != null ? initialSortColumn : columns.findIndex(it => it.sortable) + + return sortColum > -1 + ? { + column: sortColum, + direction, + } + : null }) const getField = (obj: any, field: string | ((it: any) => any)) => { @@ -192,15 +193,10 @@ const DyoTable = (props: React.PropsWithChildren>) => { return } - if (sort.direction === 'asc') { - setSort({ - column, - direction: 'desc', - }) - return - } - - setSort(null) + setSort({ + column, + direction: sort.direction === 'asc' ? 'desc' : 'asc', + }) } const paginate = (it: PaginationSettings) => {