fixed bug where all selected columns would be selected for a table when hitting back button after running a process then clicking on a new record from process results

This commit is contained in:
Tim Chamberlain
2023-05-26 16:08:17 -05:00
parent b05f12ab5c
commit 6d1aa54d53

View File

@ -30,7 +30,8 @@ import {QJobError} from "@kingsrook/qqq-frontend-core/lib/model/processes/QJobEr
import {QRecord} from "@kingsrook/qqq-frontend-core/lib/model/QRecord"; import {QRecord} from "@kingsrook/qqq-frontend-core/lib/model/QRecord";
import {QQueryFilter} from "@kingsrook/qqq-frontend-core/lib/model/query/QQueryFilter"; import {QQueryFilter} from "@kingsrook/qqq-frontend-core/lib/model/query/QQueryFilter";
import {QueryJoin} from "@kingsrook/qqq-frontend-core/lib/model/query/QueryJoin"; import {QueryJoin} from "@kingsrook/qqq-frontend-core/lib/model/query/QueryJoin";
import {Alert, Box, Collapse, TablePagination} from "@mui/material"; import {Alert, Collapse, TablePagination} from "@mui/material";
import Box from "@mui/material/Box";
import Button from "@mui/material/Button"; import Button from "@mui/material/Button";
import Card from "@mui/material/Card"; import Card from "@mui/material/Card";
import Dialog from "@mui/material/Dialog"; import Dialog from "@mui/material/Dialog";
@ -48,7 +49,7 @@ import MenuItem from "@mui/material/MenuItem";
import Modal from "@mui/material/Modal"; import Modal from "@mui/material/Modal";
import TextField from "@mui/material/TextField"; import TextField from "@mui/material/TextField";
import Tooltip from "@mui/material/Tooltip"; import Tooltip from "@mui/material/Tooltip";
import {DataGridPro, GridCallbackDetails, GridColDef, GridColumnMenuContainer, GridColumnMenuProps, GridColumnOrderChangeParams, GridColumnPinningMenuItems, GridColumnsMenuItem, GridColumnVisibilityModel, GridDensity, GridEventListener, GridExportMenuItemProps, GridFilterMenuItem, GridFilterModel, GridPinnedColumns, gridPreferencePanelStateSelector, GridRowId, GridRowParams, GridRowProps, GridRowsProp, GridSelectionModel, GridSortItem, GridSortModel, GridState, GridToolbarColumnsButton, GridToolbarContainer, GridToolbarDensitySelector, GridToolbarExportContainer, GridToolbarFilterButton, HideGridColMenuItem, MuiEvent, SortGridMenuItems, useGridApiContext, useGridApiEventHandler, useGridSelector} from "@mui/x-data-grid-pro"; import {DataGridPro, GridCallbackDetails, GridColDef, GridColumnMenuContainer, GridColumnMenuProps, GridColumnOrderChangeParams, GridColumnPinningMenuItems, GridColumnsMenuItem, GridColumnVisibilityModel, GridDensity, GridEventListener, GridExportMenuItemProps, GridFilterMenuItem, GridFilterModel, GridPinnedColumns, gridPreferencePanelStateSelector, GridRowId, GridRowParams, GridRowsProp, GridSelectionModel, GridSortItem, GridSortModel, GridState, GridToolbarColumnsButton, GridToolbarContainer, GridToolbarDensitySelector, GridToolbarExportContainer, GridToolbarFilterButton, HideGridColMenuItem, MuiEvent, SortGridMenuItems, useGridApiContext, useGridApiEventHandler, useGridSelector} from "@mui/x-data-grid-pro";
import {GridRowModel} from "@mui/x-data-grid/models/gridRows"; import {GridRowModel} from "@mui/x-data-grid/models/gridRows";
import FormData from "form-data"; import FormData from "form-data";
import React, {forwardRef, useContext, useEffect, useReducer, useRef, useState} from "react"; import React, {forwardRef, useContext, useEffect, useReducer, useRef, useState} from "react";
@ -314,6 +315,16 @@ function RecordQuery({table, launchProcess}: Props): JSX.Element
}, [location, tableMetaData]); }, [location, tableMetaData]);
const updateColumnVisibilityModel = () =>
{
if (localStorage.getItem(columnVisibilityLocalStorageKey))
{
const visibility = JSON.parse(localStorage.getItem(columnVisibilityLocalStorageKey));
setColumnVisibilityModel(visibility);
didDefaultVisibilityComeFromLocalStorage = true;
}
}
/////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////
// any time these are out of sync, it means we need to reload things // // any time these are out of sync, it means we need to reload things //
/////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////
@ -321,7 +332,7 @@ function RecordQuery({table, launchProcess}: Props): JSX.Element
{ {
setTableMetaData(null); setTableMetaData(null);
setColumnSortModel([]); setColumnSortModel([]);
setColumnVisibilityModel({}); updateColumnVisibilityModel();
setColumnsModel([]); setColumnsModel([]);
setFilterModel({items: []}); setFilterModel({items: []});
setDefaultFilterLoaded(false); setDefaultFilterLoaded(false);