Skip to content

Commit 930c2d8

Browse files
authored
Merge pull request #493 from vsimakhin/fix/column-state-lost
fix column state saving
2 parents 81e28c3 + 62c553d commit 930c2d8

7 files changed

Lines changed: 22 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## [Unreleased]
4+
5+
- Fix: column state (visibility/width) is not saved for some tables.
6+
37
## [4.1.3] - 30.03.2026
48

59
- Update: Golang and npm packages/security patches.

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ The application will automatically create a local SQLite database on the first s
6363

6464
# Changelog
6565

66+
## [Unreleased]
67+
68+
- Fix: column state (visibility/width) is not saved for some tables.
69+
6670
## [4.1.3] - 30.03.2026
6771

6872
- Update: Golang and npm packages/security patches.

app/ui/src/components/Attachments/AttachmentsTable.jsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { useCallback, useMemo, useState } from "react";
22
import { Link } from 'react-router';
33
import dayjs from "dayjs";
4-
import { GridActionsCell } from "@mui/x-data-grid";
4+
import { GridActionsCell, useGridApiRef } from "@mui/x-data-grid";
55
// MUI
66
import Box from '@mui/material/Box';
77
import Typography from '@mui/material/Typography';
@@ -16,6 +16,7 @@ import DownloadAllAttachmentsButton from "./DownloadAllAttachmentsButton";
1616

1717

1818
export const AttachmentsTable = ({ attachments, setSelectedAttachment }) => {
19+
const apiRef = useGridApiRef();
1920
const [filteredRows, setFilteredRows] = useState([]);
2021

2122
const columns = useMemo(() => [
@@ -88,6 +89,7 @@ export const AttachmentsTable = ({ attachments, setSelectedAttachment }) => {
8889

8990
return (
9091
<XDataGrid
92+
apiRef={apiRef}
9193
tableId='attachments'
9294
title="Attachments"
9395
icon={<AttachFileOutlinedIcon />}

app/ui/src/components/Currency/CurrencyTable.jsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useMemo } from 'react';
2-
import { GridActionsCell } from '@mui/x-data-grid';
2+
import { GridActionsCell, useGridApiRef } from '@mui/x-data-grid';
33
// MUI UI elements
44
import Typography from '@mui/material/Typography';
55
import Box from '@mui/material/Box'
@@ -20,6 +20,7 @@ import XDataGrid from '../UIElements/XDataGrid/XDataGrid';
2020
import TableActionHeader from '../UIElements/TableActionHeader';
2121

2222
export const CurrencyTable = ({ logbookData, currencyData, aircrafts }) => {
23+
const apiRef = useGridApiRef();
2324
const { fieldNameF } = useSettings();
2425

2526
const metricOptions = useMemo(() => (
@@ -188,6 +189,7 @@ export const CurrencyTable = ({ logbookData, currencyData, aircrafts }) => {
188189

189190
return (
190191
<XDataGrid
192+
apiRef={apiRef}
191193
tableId="currency"
192194
title="Currency"
193195
icon={<SecurityUpdateGoodOutlinedIcon />}

app/ui/src/components/Import/ImportTable.jsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { useGridApiRef } from '@mui/x-data-grid';
12
import { useMemo, useState } from 'react';
23
// MUI UI elements
34
import LinearProgress from '@mui/material/LinearProgress';
@@ -14,6 +15,7 @@ import XDataGrid from '../UIElements/XDataGrid/XDataGrid';
1415
import { createColumn, createDateColumn, createLandingColumn, createTimeColumn, sumTime } from '../Logbook/helpers';
1516

1617
export const ImportTable = () => {
18+
const apiRef = useGridApiRef();
1719
const [data, setData] = useState([]);
1820
const [inProgress, setInProgress] = useState(false);
1921
const { isSettingsLoading, fieldName } = useSettings();
@@ -149,6 +151,7 @@ export const ImportTable = () => {
149151
<>
150152
{inProgress && <LinearProgress />}
151153
<XDataGrid
154+
apiRef={apiRef}
152155
tableId='import-logbook'
153156
title="Import"
154157
icon={<FileUploadOutlinedIcon />}

app/ui/src/components/Settings/CustomFields/CustomFieldsTable.jsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
import { useMemo } from 'react';
3-
import { GridActionsCell } from '@mui/x-data-grid';
3+
import { GridActionsCell, useGridApiRef } from '@mui/x-data-grid';
44
// MUI UI elements
55
import Tooltip from '@mui/material/Tooltip';
66
// MUI Icons
@@ -16,6 +16,7 @@ import XDataGrid from '../../UIElements/XDataGrid/XDataGrid';
1616
import HelpButton from './HelpButton';
1717

1818
export const CustomFieldsTable = () => {
19+
const apiRef = useGridApiRef();
1920
const { data, isCustomFieldsLoading } = useCustomFields();
2021

2122
const columns = useMemo(() => [
@@ -52,6 +53,7 @@ export const CustomFieldsTable = () => {
5253

5354
return (
5455
<XDataGrid
56+
apiRef={apiRef}
5557
tableId='custom-fields'
5658
title='Custom Fields'
5759
icon={<TuneOutlinedIcon />}

app/ui/src/components/UIElements/XDataGrid/XDataGrid.jsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useMemo, useDeferredValue, useEffect } from 'react';
2-
import { DataGrid, useGridApiRef } from '@mui/x-data-grid';
2+
import { DataGrid } from '@mui/x-data-grid';
33
import { useLocalStorageState } from '@toolpad/core';
44
import dayjs from 'dayjs';
55
import isSameOrAfter from 'dayjs/plugin/isSameOrAfter';
@@ -118,8 +118,7 @@ const StyledDataGrid = styled(DataGrid)(({ theme }) => {
118118
});
119119

120120

121-
const XDataGridContent = ({ tableId, rows, columns, ...props }) => {
122-
const apiRef = useGridApiRef();
121+
const XDataGridContent = ({ apiRef, tableId, rows, columns, ...props }) => {
123122
const [paginationModel, setPaginationModel] = useLocalStorageState(`${tableId}-pagination`, { pageSize: defaultPageSize, page: 0 }, { codec: codec });
124123
const [columnsState, setColumnsState] = useLocalStorageState(`${tableId}-columns`, {}, { codec: codec });
125124

0 commit comments

Comments
 (0)