From 1168b89e283115e1318bdd6b9698cd4c2a41e3d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Oct 2026 15:24:41 +0000 Subject: [PATCH 1/3] build(deps): bump @mui/x-data-grid from 8.19.0 to 9.14.0 Bumps [@mui/x-data-grid](https://github.com/mui/mui-x/tree/HEAD/packages/x-data-grid) from 8.19.0 to 9.14.0. - [Release notes](https://github.com/mui/mui-x/releases) - [Changelog](https://github.com/mui/mui-x/blob/master/CHANGELOG.md) - [Commits](https://github.com/mui/mui-x/commits/v9.14.0/packages/x-data-grid) --- updated-dependencies: - dependency-name: "@mui/x-data-grid" dependency-version: 8.20.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 245 +++++++++++++++++++++++++++++++++++++++------- package.json | 2 +- 2 files changed, 210 insertions(+), 37 deletions(-) diff --git a/package-lock.json b/package-lock.json index 20b30d52d..765c55f74 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "@mui/lab": "^7.0.0-beta.17", "@mui/material": "^7.0.2", "@mui/system": "^7.0.2", - "@mui/x-data-grid": "^8.19.0", + "@mui/x-data-grid": "^9.14.0", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", @@ -2107,9 +2107,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", - "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -2160,6 +2160,28 @@ "node": ">=6.9.0" } }, + "node_modules/@base-ui/utils": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@base-ui/utils/-/utils-0.3.2.tgz", + "integrity": "sha512-oWy1aq/I2GmYjpl4PhEAhzflF8VPGKgZeq0xAWTbfD5KBWyxcN0ZP2+WHSUm/5Z6lVMBDLReLcoXwSYoRc/zNQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.2", + "@floating-ui/utils": "^0.2.12", + "reselect": "^5.2.0", + "use-sync-external-store": "^1.6.0" + }, + "peerDependencies": { + "@types/react": "^17 || ^18 || ^19", + "react": "^17 || ^18 || ^19", + "react-dom": "^17 || ^18 || ^19" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@bazel/runfiles": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/@bazel/runfiles/-/runfiles-6.3.1.tgz", @@ -2858,6 +2880,12 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@floating-ui/utils": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.12.tgz", + "integrity": "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==", + "license": "MIT" + }, "node_modules/@humanwhocodes/config-array": { "version": "0.13.0", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", @@ -4285,18 +4313,19 @@ } }, "node_modules/@mui/x-data-grid": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-8.19.0.tgz", - "integrity": "sha512-jxt+d6Fms5Z/gPcSC6mpfCOsGw6YfKu7iiP8Q58RDPEh+I7C9XQfta7tPtNhcCNV1zJ7xBN7aQhslh8Rnadz5w==", + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-9.14.0.tgz", + "integrity": "sha512-DvQpyg3rkNs4GePo3x8NARoeco/EU7IaFLj4hNoAkuD5sWXMKNWLKERWLZvihVani2ypYYJ56FV4SmbNkFuv/g==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.4", - "@mui/utils": "^7.3.5", - "@mui/x-internals": "8.19.0", - "@mui/x-virtualizer": "0.2.9", + "@babel/runtime": "^7.29.7", + "@base-ui/utils": "^0.3.2", + "@mui/utils": "^9.4.0", + "@mui/x-internals": "^9.14.0", + "@mui/x-virtualizer": "0.7.2", "clsx": "^2.1.1", "prop-types": "^15.8.1", - "use-sync-external-store": "^1.6.0" + "use-sync-external-store": "^1.7.0" }, "engines": { "node": ">=14.0.0" @@ -4308,8 +4337,8 @@ "peerDependencies": { "@emotion/react": "^11.9.0", "@emotion/styled": "^11.8.1", - "@mui/material": "^5.15.14 || ^6.0.0 || ^7.0.0", - "@mui/system": "^5.15.14 || ^6.0.0 || ^7.0.0", + "@mui/material": "^7.3.0 || ^9.0.0", + "@mui/system": "^7.3.0 || ^9.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" }, @@ -4322,16 +4351,64 @@ } } }, + "node_modules/@mui/x-data-grid/node_modules/@mui/types": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-9.4.0.tgz", + "integrity": "sha512-13DH0Oniua4WmGqeYbQAZqmiN7r4nfd0zwIoGJ5QeJwyIHgEmf+LkRw/jV1HZb6AiUoHX8Oxf4xgalq3vYHcIw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.7" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/x-data-grid/node_modules/@mui/utils": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-9.4.0.tgz", + "integrity": "sha512-WkzY8uYtqUDyGKPShrRQRBomfMQHddlsyKu/gRRESYO24tDPD2z0xRE8CBoUsWqpBa+YrFs9KixiS7kQRjsPAQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.7", + "@mui/types": "^9.4.0", + "@types/prop-types": "^15.7.15", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.2.8" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@mui/x-internals": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-8.19.0.tgz", - "integrity": "sha512-mMmiyJAN5fW27srXJjhXhXJa+w2xGO45rwcjws6OQc9rdXGdJqRXhBwJd+OT7J1xwSdFIIUhjZRTz1KAfCSGBg==", + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-9.14.0.tgz", + "integrity": "sha512-m4XkKIihP+uWvz18BgSOHtwxCBWtE3Qi2X9hZUdEGW5mk50umziYaCLn9B/3cT9qBU7LirEC8agqpWxDSYjaNw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.4", - "@mui/utils": "^7.3.5", - "reselect": "^5.1.1", - "use-sync-external-store": "^1.6.0" + "@babel/runtime": "^7.29.7", + "@base-ui/utils": "^0.3.2", + "@mui/utils": "^9.4.0", + "reselect": "^5.2.0", + "use-sync-external-store": "^1.7.0" }, "engines": { "node": ">=14.0.0" @@ -4341,18 +4418,67 @@ "url": "https://opencollective.com/mui-org" }, "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@mui/x-internals/node_modules/@mui/types": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-9.4.0.tgz", + "integrity": "sha512-13DH0Oniua4WmGqeYbQAZqmiN7r4nfd0zwIoGJ5QeJwyIHgEmf+LkRw/jV1HZb6AiUoHX8Oxf4xgalq3vYHcIw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.7" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/x-internals/node_modules/@mui/utils": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-9.4.0.tgz", + "integrity": "sha512-WkzY8uYtqUDyGKPShrRQRBomfMQHddlsyKu/gRRESYO24tDPD2z0xRE8CBoUsWqpBa+YrFs9KixiS7kQRjsPAQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.7", + "@mui/types": "^9.4.0", + "@types/prop-types": "^15.7.15", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.2.8" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, "node_modules/@mui/x-virtualizer": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/@mui/x-virtualizer/-/x-virtualizer-0.2.9.tgz", - "integrity": "sha512-++V8H8UQaDT2xsZn4eyNK4n55bsH9ncOuCatA238RptQa19uryLDVKqgSFhNbZ61aVUQ29Xel6q2rJVdS+J64Q==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@mui/x-virtualizer/-/x-virtualizer-0.7.2.tgz", + "integrity": "sha512-8JYK1KZe7rVMzBRxvEZYt0BYS5zXRDV0HPXqTSwe4TPPuldCjTII7IvlzkSC8yS24+2iDlYo5kBKdTJ8uzfMjg==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.4", - "@mui/utils": "^7.3.5", - "@mui/x-internals": "8.19.0" + "@babel/runtime": "^7.29.7", + "@base-ui/utils": "^0.3.2", + "@mui/utils": "^9.4.0", + "@mui/x-internals": "^9.14.0" }, "engines": { "node": ">=14.0.0" @@ -4366,6 +4492,53 @@ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/@mui/x-virtualizer/node_modules/@mui/types": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-9.4.0.tgz", + "integrity": "sha512-13DH0Oniua4WmGqeYbQAZqmiN7r4nfd0zwIoGJ5QeJwyIHgEmf+LkRw/jV1HZb6AiUoHX8Oxf4xgalq3vYHcIw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.7" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/x-virtualizer/node_modules/@mui/utils": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-9.4.0.tgz", + "integrity": "sha512-WkzY8uYtqUDyGKPShrRQRBomfMQHddlsyKu/gRRESYO24tDPD2z0xRE8CBoUsWqpBa+YrFs9KixiS7kQRjsPAQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.29.7", + "@mui/types": "^9.4.0", + "@types/prop-types": "^15.7.15", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.2.8" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -19491,9 +19664,9 @@ } }, "node_modules/react-is": { - "version": "19.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.0.tgz", - "integrity": "sha512-x3Ax3kNSMIIkyVYhWPyO09bu0uttcAIoecO/um/rKGQ4EltYWVYtyiGkS/3xMynrbVQdS69Jhlv8FXUEZehlzA==", + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.3.0.tgz", + "integrity": "sha512-UpMYezM4v5/18F28aC66AEsjXIgE02kyEMH6yLdgLXu/UTfa1Ntwck/nNLrbqJsEXW7gPb0coNO9FQse9WTovA==", "license": "MIT" }, "node_modules/react-refresh": { @@ -20049,9 +20222,9 @@ "license": "MIT" }, "node_modules/reselect": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", - "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.3.0.tgz", + "integrity": "sha512-XGoLeRAVzUTcJ1qkxPQhDJyIZ5d6zzZD9nT7AEZOaaU9UbWclhycElmhO+VD5bFeLuzhPBaOV2oXC8uG35ZSpg==", "license": "MIT" }, "node_modules/resolve": { @@ -22937,9 +23110,9 @@ } }, "node_modules/use-sync-external-store": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", - "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.7.0.tgz", + "integrity": "sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A==", "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" diff --git a/package.json b/package.json index edd214ceb..cf0db026f 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "@mui/lab": "^7.0.0-beta.17", "@mui/material": "^7.0.2", "@mui/system": "^7.0.2", - "@mui/x-data-grid": "^8.19.0", + "@mui/x-data-grid": "^9.14.0", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", From ae03b3d4155cd7af9330a396d54ba859a90b7e4e Mon Sep 17 00:00:00 2001 From: martastn Date: Fri, 9 Oct 2026 10:57:21 +0200 Subject: [PATCH 2/3] fix: restore v8 look of results table after Data Grid v9 bump --- .../components/Results/ResultsTable.tsx | 38 +++++++- .../Results/ResultsTableSortIcon.tsx | 93 +++++++++++++++++++ 2 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 src/WrapperApp/components/Results/ResultsTableSortIcon.tsx diff --git a/src/WrapperApp/components/Results/ResultsTable.tsx b/src/WrapperApp/components/Results/ResultsTable.tsx index 2ea0df4a3..21b855b4c 100644 --- a/src/WrapperApp/components/Results/ResultsTable.tsx +++ b/src/WrapperApp/components/Results/ResultsTable.tsx @@ -1,6 +1,6 @@ import { Button, Stack, Switch, Typography, useTheme } from '@mui/material'; import Box from '@mui/material/Box'; -import { DataGrid, GridColDef } from '@mui/x-data-grid'; +import { DataGrid, GridColDef, GridLocaleText } from '@mui/x-data-grid'; import { ChangeEvent, useState } from 'react'; import { isCustomFilterJSON } from '../../../ThreeEditor/Simulation/Scoring/CustomFilter'; @@ -9,6 +9,7 @@ import { convertToBestUnit } from '../../../util/convertUnits/Units'; import { pages0DToCsv } from '../../../util/csv/Csv'; import { saveString } from '../../../util/File'; import { EstimatorResults } from './ResultsPanel'; +import ResultsTableSortIcon from './ResultsTableSortIcon'; export interface TablePage0DItem { id: number; @@ -35,6 +36,20 @@ const columns: GridColDef[] = [ { field: 'filterRules', headerName: 'Filter rules', flex: 1 } ]; +const localeText: Partial = { + filterPanelColumn: 'Columns', + paginationDisplayedRows: ({ from, to, count, estimated }) => { + if (!estimated) { + return `${from}–${to} of ${count !== -1 ? count : `more than ${to}`}`; + } + + const estimatedLabel = + estimated && estimated > to ? `around ${estimated}` : `more than ${to}`; + + return `${from}–${to} of ${count !== -1 ? count : estimatedLabel}`; + } +}; + const formatValue = (value: number) => { const precision = 6; @@ -108,11 +123,32 @@ export default function TablePage0D(props: { estimator: EstimatorResults }) { rows={tablePages} columns={columns} getRowHeight={() => 40} + localeText={localeText} + slots={{ columnHeaderSortIcon: ResultsTableSortIcon }} sx={{ 'fontSize': 12, 'backgroundColor': 'transparent', '& .MuiDataGrid-columnHeaders, & .MuiDataGrid-columnHeader': { backgroundColor: 'transparent' + }, + '& .MuiDataGrid-columnHeader .MuiDataGrid-sortButton': { + 'backgroundColor': 'transparent', + '&:hover': { + 'backgroundColor': 'var(--IconButton-hoverBg)', + '@media (hover: none)': { + backgroundColor: 'transparent' + } + } + }, + '@media (hover: hover)': { + '& .MuiDataGrid-columnHeader:not(.MuiDataGrid-columnHeader--sorted):hover .MuiDataGrid-sortButton': + { + opacity: 0.5 + }, + '& .MuiDataGrid-columnHeader:not(.MuiDataGrid-columnHeader--sorted):hover .MuiDataGrid-sortButton > *': + { + opacity: 1 + } } }} /> diff --git a/src/WrapperApp/components/Results/ResultsTableSortIcon.tsx b/src/WrapperApp/components/Results/ResultsTableSortIcon.tsx new file mode 100644 index 000000000..87b6fe5d0 --- /dev/null +++ b/src/WrapperApp/components/Results/ResultsTableSortIcon.tsx @@ -0,0 +1,93 @@ +import { IconButton } from '@mui/material'; +import { styled } from '@mui/material/styles'; +import { + gridClasses, + GridColumnHeaderSortIconProps, + GridSortDirection, + useGridApiContext, + useGridRootProps +} from '@mui/x-data-grid'; +import { memo, ReactNode } from 'react'; + +const IconButtonContainer = styled('div')({ + display: 'flex', + visibility: 'hidden', + width: 0 +}); + +const SortButton = styled(IconButton)({ + transition: + 'opacity var(--DataGrid-t-transition-duration-short) var(--DataGrid-t-transition-easing-ease-in-out) 0ms' +}); + +function ResultsTableSortIcon(props: GridColumnHeaderSortIconProps) { + const { direction, index, sortingOrder, disabled, className, ...other } = props; + const apiRef = useGridApiContext(); + const rootProps = useGridRootProps(); + const label = apiRef.current.getLocaleText('columnHeaderSortIconLabel'); + + const { + columnSortedAscendingIcon: AscendingIcon, + columnSortedDescendingIcon: DescendingIcon, + columnUnsortedIcon: UnsortedIcon + } = rootProps.slots; + let icon: ReactNode = null; + + if (direction === 'asc' && AscendingIcon) + icon = ( + + ); + else if (direction === 'desc' && DescendingIcon) + icon = ( + + ); + else if (!direction && UnsortedIcon) + icon = ( + + ); + + if (!icon) return null; + + const button = ( + + {icon} + + ); + + return ( + + {index != null ? ( + + {button} + + ) : ( + button + )} + + ); +} + +export default memo(ResultsTableSortIcon); From 2e559dc38867d0aa0f154a5b13853523dc6280e7 Mon Sep 17 00:00:00 2001 From: martastn Date: Tue, 13 Oct 2026 17:22:31 +0200 Subject: [PATCH 3/3] fix: keep the new Data Grid v9 sort tooltip --- .../components/Results/ResultsTable.tsx | 2 - .../Results/ResultsTableSortIcon.tsx | 93 ------------------- 2 files changed, 95 deletions(-) delete mode 100644 src/WrapperApp/components/Results/ResultsTableSortIcon.tsx diff --git a/src/WrapperApp/components/Results/ResultsTable.tsx b/src/WrapperApp/components/Results/ResultsTable.tsx index 21b855b4c..e54ed6272 100644 --- a/src/WrapperApp/components/Results/ResultsTable.tsx +++ b/src/WrapperApp/components/Results/ResultsTable.tsx @@ -9,7 +9,6 @@ import { convertToBestUnit } from '../../../util/convertUnits/Units'; import { pages0DToCsv } from '../../../util/csv/Csv'; import { saveString } from '../../../util/File'; import { EstimatorResults } from './ResultsPanel'; -import ResultsTableSortIcon from './ResultsTableSortIcon'; export interface TablePage0DItem { id: number; @@ -124,7 +123,6 @@ export default function TablePage0D(props: { estimator: EstimatorResults }) { columns={columns} getRowHeight={() => 40} localeText={localeText} - slots={{ columnHeaderSortIcon: ResultsTableSortIcon }} sx={{ 'fontSize': 12, 'backgroundColor': 'transparent', diff --git a/src/WrapperApp/components/Results/ResultsTableSortIcon.tsx b/src/WrapperApp/components/Results/ResultsTableSortIcon.tsx deleted file mode 100644 index 87b6fe5d0..000000000 --- a/src/WrapperApp/components/Results/ResultsTableSortIcon.tsx +++ /dev/null @@ -1,93 +0,0 @@ -import { IconButton } from '@mui/material'; -import { styled } from '@mui/material/styles'; -import { - gridClasses, - GridColumnHeaderSortIconProps, - GridSortDirection, - useGridApiContext, - useGridRootProps -} from '@mui/x-data-grid'; -import { memo, ReactNode } from 'react'; - -const IconButtonContainer = styled('div')({ - display: 'flex', - visibility: 'hidden', - width: 0 -}); - -const SortButton = styled(IconButton)({ - transition: - 'opacity var(--DataGrid-t-transition-duration-short) var(--DataGrid-t-transition-easing-ease-in-out) 0ms' -}); - -function ResultsTableSortIcon(props: GridColumnHeaderSortIconProps) { - const { direction, index, sortingOrder, disabled, className, ...other } = props; - const apiRef = useGridApiContext(); - const rootProps = useGridRootProps(); - const label = apiRef.current.getLocaleText('columnHeaderSortIconLabel'); - - const { - columnSortedAscendingIcon: AscendingIcon, - columnSortedDescendingIcon: DescendingIcon, - columnUnsortedIcon: UnsortedIcon - } = rootProps.slots; - let icon: ReactNode = null; - - if (direction === 'asc' && AscendingIcon) - icon = ( - - ); - else if (direction === 'desc' && DescendingIcon) - icon = ( - - ); - else if (!direction && UnsortedIcon) - icon = ( - - ); - - if (!icon) return null; - - const button = ( - - {icon} - - ); - - return ( - - {index != null ? ( - - {button} - - ) : ( - button - )} - - ); -} - -export default memo(ResultsTableSortIcon);