From 9cf8b47fa0f266f89d3038f5b456159f179660e0 Mon Sep 17 00:00:00 2001 From: ES Date: Tue, 18 Jun 2019 18:02:06 +0530 Subject: [PATCH 1/2] Memoize visible columns and page props --- src/createTable.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/createTable.js b/src/createTable.js index cfd92a6..6322d55 100755 --- a/src/createTable.js +++ b/src/createTable.js @@ -1,5 +1,5 @@ import _ from 'lodash'; -import React, { useState, useEffect } from 'react'; +import React, { useState, useEffect, useMemo } from 'react'; import { connect } from 'react-redux'; import Layout from './containers/Layout'; @@ -38,17 +38,21 @@ const ReduxDatatable = ({ config = {}, reducerName, tableData = {}, action, thun columns: [ visibleColumnIds, setVisibleColumnIds ], editing: [ isEditing, setIsEditing ], printing: [ isPrinting, setIsPrinting ], - paginationProps: calculatePaginationProps(tableData.query, config.components.Limiter.default || 10), minWidth, state, scroller: [ scrollData, setScrollData ], width: [ tableWidth, setTableWidth ], - visibleColumns: visibleColumnIds.reduce((result, currentIndex) => { - const { [currentIndex]: column } = columns; - return [ ...result, column ]; - }, []) + paginationProps: useMemo(() => ( + calculatePaginationProps(tableData.query, config.components.Limiter.default || 10) + ), [ tableData.query ]), + visibleColumns: useMemo(() => ( + visibleColumnIds.reduce((result, currentIndex) => { + const { [currentIndex]: column } = columns; + return [ ...result, column ]; + }, []) + ), [ visibleColumnIds ]) }; - + // Fetch data and populate table on first load. useEffect(() => { loadData(); From 02f14ecb530515fca89b5ef06228214886539e76 Mon Sep 17 00:00:00 2001 From: ES Date: Tue, 18 Jun 2019 18:02:48 +0530 Subject: [PATCH 2/2] 0.6.4 * Update react-redux --- package-lock.json | 35 +++++++++++++++++++++++++++++------ package.json | 6 +++--- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index c34a7d1..a570040 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@flipbyte/redux-datatable", - "version": "0.6.3", + "version": "0.6.4", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -9950,17 +9950,40 @@ "integrity": "sha512-RlkBAC3wQcpq9v9XKIDJDCQbichYUDc3ffR65Dx5h3PIheCtABJqXs+zHTu+qWw9nXX8jmIdebiPkvPyWpKImw==" }, "react-redux": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-6.0.1.tgz", - "integrity": "sha512-T52I52Kxhbqy/6TEfBv85rQSDz6+Y28V/pf52vDWs1YRXG19mcFOGfHnY2HsNFHyhP+ST34Aih98fvt6tqwVcQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.1.0.tgz", + "integrity": "sha512-hyu/PoFK3vZgdLTg9ozbt7WF3GgX5+Yn3pZm5/96/o4UueXA+zj08aiSC9Mfj2WtD1bvpIb3C5yvskzZySzzaw==", "dev": true, "requires": { - "@babel/runtime": "^7.3.1", + "@babel/runtime": "^7.4.5", "hoist-non-react-statics": "^3.3.0", "invariant": "^2.2.4", "loose-envify": "^1.4.0", "prop-types": "^15.7.2", - "react-is": "^16.8.2" + "react-is": "^16.8.6" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.5.tgz", + "integrity": "sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.2" + } + }, + "react-is": { + "version": "16.8.6", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", + "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz", + "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA==", + "dev": true + } } }, "react-redux-notify": { diff --git a/package.json b/package.json index 8aefef9..c700f6c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@flipbyte/redux-datatable", - "version": "0.6.3", + "version": "0.6.4", "description": "React-Redux data table", "main": "lib/index.js", "module": "es/index.js", @@ -25,7 +25,7 @@ "react-dom": "^16.8.6", "rxjs": "^6.4.0", "prop-types": "^15.6.2", - "react-redux": "^6.0.1", + "react-redux": "^7.1.0", "redux": "^4.0.1", "styled-components": "^4.2.0", "redux-observable": "^1.1.0", @@ -47,7 +47,7 @@ "path-to-regexp": "^3.0.0", "react": "^16.8.6", "react-dom": "^16.8.6", - "react-redux": "^6.0.1", + "react-redux": "^7.1.0", "redux": "^4.0.1", "redux-logger": "^3.0.6", "redux-observable": "^1.1.0",