From 56207c33fd53bff4728f6876fb1daffc262509c8 Mon Sep 17 00:00:00 2001 From: rizky Date: Tue, 16 Jul 2024 22:40:43 -0700 Subject: [PATCH] fix sorting table list --- comps/list/TableList.tsx | 57 ++++++++++++++++++++---------------- preset/login/utils/logout.ts | 3 +- 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/comps/list/TableList.tsx b/comps/list/TableList.tsx index e043588..ab491af 100755 --- a/comps/list/TableList.tsx +++ b/comps/list/TableList.tsx @@ -28,6 +28,7 @@ import { filterWhere } from "../filter/parser/filter-where"; import { getFilter } from "../filter/utils/get-filter"; import { Skeleton } from "../ui/skeleton"; import { sortTree } from "./utils/sort-tree"; +import { set } from "lib/utils/set"; type OnRowClick = (arg: { row: any; @@ -151,40 +152,46 @@ export const TableList: FC = ({ local.sort.columns = cols; local.paging.skip = 0; if (cols.length > 0) { - const { columnKey, direction } = cols[0]; + let { columnKey, direction } = cols[0]; - let should_set = true; - const gf = JSON.stringify(gen_fields); - const fields = fields_map.get(gf); + if (columnKey.includes(".")) { + let root: any = {}; + set(root, columnKey, direction === "ASC" ? "asc" : "desc"); + local.sort.orderBy = root; + } else { + let should_set = true; + const gf = JSON.stringify(gen_fields); + const fields = fields_map.get(gf); - if (fields) { - const rel = fields?.find((e) => e.name === columnKey); - if (rel && rel.checked) { - should_set = false; + if (fields) { + const rel = fields?.find((e) => e.name === columnKey); + if (rel && rel.checked) { + should_set = false; - if (rel.type === "has-many") { - local.sort.orderBy = { - [columnKey]: { - _count: direction === "ASC" ? "asc" : "desc", - }, - }; - } else { - const field = rel.checked.find((e) => !e.is_pk); - if (field) { + if (rel.type === "has-many") { local.sort.orderBy = { [columnKey]: { - [field.name]: direction === "ASC" ? "asc" : "desc", + _count: direction === "ASC" ? "asc" : "desc", }, }; + } else { + const field = rel.checked.find((e) => !e.is_pk); + if (field) { + local.sort.orderBy = { + [columnKey]: { + [field.name]: direction === "ASC" ? "asc" : "desc", + }, + }; + } } } } - } - if (should_set) { - local.sort.orderBy = { - [columnKey]: direction === "ASC" ? "asc" : "desc", - }; + if (should_set) { + local.sort.orderBy = { + [columnKey]: direction === "ASC" ? "asc" : "desc", + }; + } } } else { local.sort.orderBy = null; @@ -417,7 +424,7 @@ export const TableList: FC = ({ row={props.row} col={{ name: props.column.key, - value: props.row[props.column.key], + value: get(props.row, props.column.key), depth: props.row.__depth || 0, }} rows={local.data} @@ -448,7 +455,7 @@ export const TableList: FC = ({ row={props.row} col={{ name: props.column.key, - value: props.row[props.column.key], + value: get(props.row, props.column.key), depth: props.row.__depth || 0, }} rows={local.data} diff --git a/preset/login/utils/logout.ts b/preset/login/utils/logout.ts index 97b4be9..9523a4c 100755 --- a/preset/login/utils/logout.ts +++ b/preset/login/utils/logout.ts @@ -25,7 +25,6 @@ export const logout = (url_login?: string) => { localStorage.removeItem("user" + id_site); } if (url_login !== getPathname()) { - console.log(url_login, getPathname()); - // location.href = `${getBasename()}${url_login}`; + location.href = `${getBasename()}${url_login}`; } };