Skip to content

Commit

Permalink
refactor: persist an array instead of object
Browse files Browse the repository at this point in the history
  • Loading branch information
Fabian Obermaier committed Jun 24, 2021
1 parent 53f32fe commit 5bf5e92
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 11 deletions.
7 changes: 4 additions & 3 deletions src/components/MTableGroupbar/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,15 @@ function MTableGroupbar(props) {

useEffect(() => {
if (props.persistentGroupingsId) {
const persistentGroupings = {};
const persistentGroupings = [];

props.groupColumns.forEach((column) => {
persistentGroupings[column.field] = {
persistentGroupings.push({
field: column.field,
groupOrder: column.tableData.groupOrder,
groupSort: column.tableData.groupSort,
columnOrder: column.tableData.columnOrder
};
});
});

localStorage.setItem(
Expand Down
20 changes: 12 additions & 8 deletions src/material-table.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,18 +88,22 @@ export default class MaterialTable extends React.Component {
let savedGroupings = localStorage.getItem(
props.options.persistentGroupingsId
);

if (savedGroupings) {
const parsedGroupings = JSON.parse(savedGroupings);

if (parsedGroupings) {
Object.entries(parsedGroupings).forEach(([columnName, groupings]) => {
const column = columnsCopy.find((col) => col.field === columnName);
parsedGroupings.forEach((savedGrouping) => {
const column = columnsCopy.find(
(col) => col.field === savedGrouping.field
);
if (column) {
Object.entries(groupings).forEach(([key, value]) => {
if (!column['tableData']) {
column['tableData'] = {};
}
column['tableData'][key] = value;
});
if (!column.tableData) {
column.tableData = {};
}
column.tableData.groupOrder = savedGrouping.groupOrder;
column.tableData.groupSort = savedGrouping.groupSort;
column.tableData.columnOrder = savedGrouping.columnOrder;
}
});
}
Expand Down

0 comments on commit 5bf5e92

Please sign in to comment.