@@ -2,6 +2,7 @@ import PropTypes from 'prop-types';
22import LazyLoader from '../LazyLoader' ;
33import React , { lazy , Suspense , useState , useCallback , useEffect } from 'react' ;
44import { AllCommunityModule , ModuleRegistry } from 'ag-grid-community' ;
5+ import { pick } from 'ramda' ;
56
67// Register all community features
78ModuleRegistry . registerModules ( [ AllCommunityModule ] ) ;
@@ -13,6 +14,25 @@ function getGrid(enable) {
1314 return enable ? RealAgGridEnterprise : RealAgGrid ;
1415}
1516
17+ export const defaultProps = {
18+ className : '' ,
19+ resetColumnState : false ,
20+ exportDataAsCsv : false ,
21+ selectAll : false ,
22+ deselectAll : false ,
23+ enableEnterpriseModules : false ,
24+ updateColumnState : false ,
25+ persisted_props : [ 'selectedRows' ] ,
26+ persistence_type : 'local' ,
27+ suppressDragLeaveHidesColumns : true ,
28+ dangerously_allow_code : false ,
29+ rowModelType : 'clientSide' ,
30+ dashGridOptions : { } ,
31+ filterModel : { } ,
32+ paginationGoTo : null ,
33+ selectedRows : [ ] ,
34+ } ;
35+
1636/**
1737 * Dash interface to AG Grid, a powerful tabular data component.
1838 */
@@ -49,31 +69,26 @@ function DashAgGrid(props) {
4969
5070 return (
5171 < Suspense fallback = { null } >
52- < RealComponent parentState = { state } { ...props } />
72+ < RealComponent parentState = { state } { ...defaultProps } { ... props } />
5373 </ Suspense >
5474 ) ;
5575}
5676
77+ const REACT_VERSION_DASH2_COMPAT = 18.3 ;
78+ if (
79+ parseFloat ( React . version . substring ( 0 , React . version . lastIndexOf ( '.' ) ) ) <
80+ REACT_VERSION_DASH2_COMPAT
81+ ) {
82+ DashAgGrid . defaultProps = defaultProps ;
83+ } else {
84+ DashAgGrid . dashPersistence = pick (
85+ [ 'persisted_props' , 'persistence_type' ] ,
86+ defaultProps
87+ ) ;
88+ }
89+
5790DashAgGrid . dashRenderType = true ;
5891
59- DashAgGrid . defaultProps = {
60- className : '' ,
61- resetColumnState : false ,
62- exportDataAsCsv : false ,
63- selectAll : false ,
64- deselectAll : false ,
65- enableEnterpriseModules : false ,
66- updateColumnState : false ,
67- persisted_props : [ 'selectedRows' ] ,
68- persistence_type : 'local' ,
69- suppressDragLeaveHidesColumns : true ,
70- dangerously_allow_code : false ,
71- rowModelType : 'clientSide' ,
72- dashGridOptions : { } ,
73- filterModel : { } ,
74- paginationGoTo : null ,
75- selectedRows : [ ] ,
76- } ;
7792DashAgGrid . propTypes = {
7893 /********************************
7994 * DASH PROPS
@@ -755,7 +770,6 @@ DashAgGrid.propTypes = {
755770} ;
756771
757772export const propTypes = DashAgGrid . propTypes ;
758- export const defaultProps = DashAgGrid . defaultProps ;
759773
760774export default DashAgGrid ;
761775
0 commit comments