From 29d5cb136d42d3f60919eda7c7a8dc8bca0f9977 Mon Sep 17 00:00:00 2001 From: c-bata Date: Sat, 10 Apr 2021 03:14:00 +0900 Subject: [PATCH] Fix less comparator of DataGrid --- .../static/components/DataGrid.tsx | 4 ++-- .../static/components/StudyDetail.tsx | 22 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/optuna_dashboard/static/components/DataGrid.tsx b/optuna_dashboard/static/components/DataGrid.tsx index 951a26ae..61d0fa44 100644 --- a/optuna_dashboard/static/components/DataGrid.tsx +++ b/optuna_dashboard/static/components/DataGrid.tsx @@ -51,7 +51,7 @@ interface DataGridColumn { field: keyof T label: string sortable?: boolean - less?: (i: number, j: number) => number + less?: (a: T, b: T) => number filterable?: boolean toCellValue?: (rowIndex: number) => string | React.ReactNode padding?: "default" | "checkbox" | "none" @@ -342,7 +342,7 @@ function stableSort( const stabilizedThis = array.map((el, index) => [el, index] as [T, number]) stabilizedThis.sort((a, b) => { if (less) { - const result = order == "asc" ? -less(a[1], b[1]) : less(a[1], b[1]) + const result = order == "asc" ? -less(a[0], b[0]) : less(a[0], b[0]) if (result !== 0) return result } else { const result = comparator(a[0], b[0]) diff --git a/optuna_dashboard/static/components/StudyDetail.tsx b/optuna_dashboard/static/components/StudyDetail.tsx index 8422de63..7af107eb 100644 --- a/optuna_dashboard/static/components/StudyDetail.tsx +++ b/optuna_dashboard/static/components/StudyDetail.tsx @@ -265,9 +265,9 @@ const TrialTable: FC<{ studyDetail: StudyDetail | null }> = ({ field: "values", label: "Value", sortable: true, - less: (i, j): number => { - const firstVal = trials[i].values?.[0] - const secondVal = trials[j].values?.[0] + less: (firstEl, secondEl): number => { + const firstVal = firstEl.values?.[0] + const secondVal = secondEl.values?.[0] if (firstVal === secondVal) { return 0 @@ -293,9 +293,9 @@ const TrialTable: FC<{ studyDetail: StudyDetail | null }> = ({ field: "values", label: `Objective ${objectiveId}`, sortable: true, - less: (i, j): number => { - const firstVal = trials[i].values?.[objectiveId] - const secondVal = trials[j].values?.[objectiveId] + less: (firstEl, secondEl): number => { + const firstVal = firstEl.values?.[objectiveId] + const secondVal = secondEl.values?.[objectiveId] if (firstVal === secondVal) { return 0 @@ -328,15 +328,15 @@ const TrialTable: FC<{ studyDetail: StudyDetail | null }> = ({ return null }, sortable: true, - less: (i, j): number => { - const firstStartMs = trials[i].datetime_start?.getTime() - const firstCompleteMs = trials[i].datetime_complete?.getTime() + less: (firstEl, secondEl): number => { + const firstStartMs = firstEl.datetime_start?.getTime() + const firstCompleteMs = firstEl.datetime_complete?.getTime() const firstDurationMs = firstStartMs !== undefined && firstCompleteMs !== undefined ? firstCompleteMs - firstStartMs : undefined - const secondStartMs = trials[j].datetime_start?.getTime() - const secondCompleteMs = trials[j].datetime_complete?.getTime() + const secondStartMs = secondEl.datetime_start?.getTime() + const secondCompleteMs = secondEl.datetime_complete?.getTime() const secondDurationMs = secondStartMs !== undefined && secondCompleteMs !== undefined ? secondCompleteMs - secondStartMs