From 34616d8eb0d74441c1eb07edbdb6a17b72e1f8c3 Mon Sep 17 00:00:00 2001 From: David Aaron Suddjian Date: Tue, 24 Mar 2020 14:22:18 -0700 Subject: [PATCH 1/4] upgrade to react-bootstrap v0.33.1 --- superset-frontend/package-lock.json | 94 ++++++++++---- superset-frontend/package.json | 2 +- .../src/addSlice/AddSliceContainer.jsx | 95 +++++++------- .../filterscope/FilterFieldTree.jsx | 2 +- .../filterscope/FilterScopeTree.jsx | 2 +- .../components/ControlPanelSection.jsx | 13 +- .../explore/components/ExploreChartPanel.jsx | 5 +- .../controls/FixedOrMetricControl.jsx | 79 ++++++------ .../components/controls/HiddenControl.jsx | 3 + .../src/profile/components/App.jsx | 16 ++- .../src/profile/components/UserInfo.jsx | 52 ++++---- .../src/views/chartList/ChartList.tsx | 90 +++++++------- .../src/views/dashboardList/DashboardList.tsx | 116 +++++++++--------- .../src/views/datasetList/DatasetList.tsx | 102 +++++++-------- superset-frontend/src/welcome/Welcome.jsx | 68 +++++----- 15 files changed, 412 insertions(+), 327 deletions(-) diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json index dc63e0d3c2e8c..845fb4279224b 100644 --- a/superset-frontend/package-lock.json +++ b/superset-frontend/package-lock.json @@ -10815,7 +10815,8 @@ }, "kind-of": { "version": "6.0.2", - "resolved": "" + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, @@ -11929,7 +11930,8 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true } @@ -15982,7 +15984,8 @@ }, "kind-of": { "version": "6.0.2", - "resolved": "" + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, @@ -16852,7 +16855,8 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true } @@ -29809,12 +29813,22 @@ } }, "prop-types-extra": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.0.tgz", - "integrity": "sha512-QFyuDxvMipmIVKD2TwxLVPzMnO4e5oOf1vr3tJIomL8E7d0lr6phTHd5nkPhFIzTD1idBLLEPeylL9g+rrTzRg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", + "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", "requires": { "react-is": "^16.3.2", - "warning": "^3.0.0" + "warning": "^4.0.0" + }, + "dependencies": { + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + } } }, "property-information": { @@ -30075,19 +30089,21 @@ } }, "react-bootstrap": { - "version": "0.31.5", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.31.5.tgz", - "integrity": "sha512-xgDihgX4QvYHmHzL87faDBMDnGfYyqcrqV0TEbWY+JizePOG1vfb8M3xJN+6MJ3kUYqDtQSZ7v/Q6Y5YDrkMdA==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.33.1.tgz", + "integrity": "sha512-qWTRravSds87P8WC82tETy2yIso8qDqlIm0czsrduCaYAFtHuyLu0XDbUlfLXeRzqgwm5sRk2wRaTNoiVkk/YQ==", "requires": { - "babel-runtime": "^6.11.6", + "@babel/runtime-corejs2": "^7.0.0", "classnames": "^2.2.5", "dom-helpers": "^3.2.0", - "invariant": "^2.2.1", - "keycode": "^2.1.2", - "prop-types": "^15.5.10", + "invariant": "^2.2.4", + "keycode": "^2.2.0", + "prop-types": "^15.6.1", "prop-types-extra": "^1.0.1", - "react-overlays": "^0.7.4", - "uncontrollable": "^4.1.0", + "react-overlays": "^0.9.0", + "react-prop-types": "^0.4.0", + "react-transition-group": "^2.0.0", + "uncontrollable": "^7.0.2", "warning": "^3.0.0" } }, @@ -30466,14 +30482,23 @@ "integrity": "sha512-p84kBqGaMoa7VYT0vZ/aOYRfJB+gw34yjpda1Z5KeLflg70HipZOT+MXQenEhdkPAABuE2Astq4zEPdMqUQxcg==" }, "react-overlays": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.7.4.tgz", - "integrity": "sha512-7vsooMx3siLAuEfTs8FYeP/lAORWWFXTO8PON3KgX0Htq1Oa+po6ioSjGyO0/GO5CVSMNhpWt6V2opeexHgBuQ==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.9.1.tgz", + "integrity": "sha512-b0asy/zHtRd0i2+2/uNxe3YVprF3bRT1guyr791DORjCzE/HSBMog+ul83CdtKQ1kZ+pLnxWCu5W3BMysFhHdQ==", "requires": { "classnames": "^2.2.5", "dom-helpers": "^3.2.1", "prop-types": "^15.5.10", "prop-types-extra": "^1.0.1", + "react-transition-group": "^2.2.1", + "warning": "^3.0.0" + } + }, + "react-prop-types": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.4.0.tgz", + "integrity": "sha1-+ZsL+0AGkpya8gUefBQUpcdbk9A=", + "requires": { "warning": "^3.0.0" } }, @@ -32115,7 +32140,8 @@ }, "kind-of": { "version": "6.0.2", - "resolved": "" + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, @@ -33807,11 +33833,29 @@ "integrity": "sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ==" }, "uncontrollable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-4.1.0.tgz", - "integrity": "sha1-4DWCkSUuGGUiLZCTmxny9J+Bwak=", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.1.1.tgz", + "integrity": "sha512-EcPYhot3uWTS3w00R32R2+vS8Vr53tttrvMj/yA1uYRhf8hbTG2GyugGqWDY0qIskxn0uTTojVd6wPYW9ZEf8Q==", "requires": { - "invariant": "^2.1.0" + "@babel/runtime": "^7.6.3", + "@types/react": "^16.9.11", + "invariant": "^2.2.4", + "react-lifecycles-compat": "^3.0.4" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + } } }, "underscore": { diff --git a/superset-frontend/package.json b/superset-frontend/package.json index a5a161390ef41..d37d8c4d80e22 100644 --- a/superset-frontend/package.json +++ b/superset-frontend/package.json @@ -122,7 +122,7 @@ "re-resizable": "^4.3.1", "react": "^16.13.0", "react-ace": "^5.10.0", - "react-bootstrap": "^0.31.5", + "react-bootstrap": "^0.33.1", "react-bootstrap-dialog": "^0.10.0", "react-bootstrap-slider": "2.1.5", "react-checkbox-tree": "^1.5.1", diff --git a/superset-frontend/src/addSlice/AddSliceContainer.jsx b/superset-frontend/src/addSlice/AddSliceContainer.jsx index 106d33af9ad78..f304d6695b8cb 100644 --- a/superset-frontend/src/addSlice/AddSliceContainer.jsx +++ b/superset-frontend/src/addSlice/AddSliceContainer.jsx @@ -80,53 +80,58 @@ export default class AddSliceContainer extends React.PureComponent { render() { return (
- {t('Create a new chart')}}> -
-

{t('Choose a datasource')}

-
- +
+

+ {t( + 'If the datasource you are looking for is not ' + + 'available in the list, ' + + 'follow the instructions on the how to add it on the ', + )} + + {t('Superset tutorial')} + +

+
+
+
+

{t('Choose a visualization type')}

+
-

- {t( - 'If the datasource you are looking for is not ' + - 'available in the list, ' + - 'follow the instructions on the how to add it on the ', - )} - - {t('Superset tutorial')} - -

-
-
-
-

{t('Choose a visualization type')}

- -
-
-
- -
-
+
+
+ +
+
+ ); diff --git a/superset-frontend/src/dashboard/components/filterscope/FilterFieldTree.jsx b/superset-frontend/src/dashboard/components/filterscope/FilterFieldTree.jsx index 6ac3a1d35c0bc..b1726f7475552 100644 --- a/superset-frontend/src/dashboard/components/filterscope/FilterFieldTree.jsx +++ b/superset-frontend/src/dashboard/components/filterscope/FilterFieldTree.jsx @@ -25,7 +25,7 @@ import renderFilterFieldTreeNodes from './renderFilterFieldTreeNodes'; import { filterScopeSelectorTreeNodePropShape } from '../../util/propShapes'; const propTypes = { - activeKey: PropTypes.oneOfType([null, PropTypes.string]), + activeKey: PropTypes.oneOfType([PropTypes.string]), nodes: PropTypes.arrayOf(filterScopeSelectorTreeNodePropShape).isRequired, checked: PropTypes.arrayOf( PropTypes.oneOfType([PropTypes.number, PropTypes.string]), diff --git a/superset-frontend/src/dashboard/components/filterscope/FilterScopeTree.jsx b/superset-frontend/src/dashboard/components/filterscope/FilterScopeTree.jsx index e280335141e55..99aec7b9427e0 100644 --- a/superset-frontend/src/dashboard/components/filterscope/FilterScopeTree.jsx +++ b/superset-frontend/src/dashboard/components/filterscope/FilterScopeTree.jsx @@ -34,7 +34,7 @@ const propTypes = { ).isRequired, onCheck: PropTypes.func.isRequired, onExpand: PropTypes.func.isRequired, - selectedChartId: PropTypes.oneOfType([null, PropTypes.number]), + selectedChartId: PropTypes.oneOfType([PropTypes.number]), }; const defaultProps = { diff --git a/superset-frontend/src/explore/components/ControlPanelSection.jsx b/superset-frontend/src/explore/components/ControlPanelSection.jsx index 47c7fc10654b6..772fb6b293883 100644 --- a/superset-frontend/src/explore/components/ControlPanelSection.jsx +++ b/superset-frontend/src/explore/components/ControlPanelSection.jsx @@ -40,6 +40,7 @@ export default class ControlPanelSection extends React.Component { constructor(props) { super(props); this.state = { expanded: this.props.startExpanded }; + this.toggleExpand = this.toggleExpand.bind(this); } toggleExpand() { this.setState({ expanded: !this.state.expanded }); @@ -50,7 +51,7 @@ export default class ControlPanelSection extends React.Component { label && (
- {label}{' '} + {label}{' '} {description && ( )} @@ -77,11 +78,15 @@ export default class ControlPanelSection extends React.Component { return ( - {this.props.children} + + {this.renderHeader()} + + + {this.props.children} + ); } diff --git a/superset-frontend/src/explore/components/ExploreChartPanel.jsx b/superset-frontend/src/explore/components/ExploreChartPanel.jsx index f1ec0f2652fab..f7d29c654fa80 100644 --- a/superset-frontend/src/explore/components/ExploreChartPanel.jsx +++ b/superset-frontend/src/explore/components/ExploreChartPanel.jsx @@ -111,8 +111,9 @@ class ExploreChartPanel extends React.PureComponent { ); return (
- - {this.renderChart()} + + {header} + {this.renderChart()}
); diff --git a/superset-frontend/src/explore/components/controls/FixedOrMetricControl.jsx b/superset-frontend/src/explore/components/controls/FixedOrMetricControl.jsx index 5ffcb39eff743..3aca4416c0efc 100644 --- a/superset-frontend/src/explore/components/controls/FixedOrMetricControl.jsx +++ b/superset-frontend/src/explore/components/controls/FixedOrMetricControl.jsx @@ -120,44 +120,49 @@ export default class FixedOrMetricControl extends React.Component { className="panel-spreaded" collapsible expanded={this.state.expanded} + onToggle={this.toggle} > -
- { - this.setType(controlTypes.fixed); - }} - > - { - this.setType(controlTypes.fixed); - }} - value={this.state.fixedValue} - /> - - { - this.setType(controlTypes.metric); - }} - > - { - this.setType(controlTypes.metric); - }} - onChange={this.setMetric} - value={this.state.metricValue} - /> - -
+ + +
+ { + this.setType(controlTypes.fixed); + }} + > + { + this.setType(controlTypes.fixed); + }} + value={this.state.fixedValue} + /> + + { + this.setType(controlTypes.metric); + }} + > + { + this.setType(controlTypes.metric); + }} + onChange={this.setMetric} + value={this.state.metricValue} + /> + +
+
+
); diff --git a/superset-frontend/src/explore/components/controls/HiddenControl.jsx b/superset-frontend/src/explore/components/controls/HiddenControl.jsx index 23fe7410dffbf..a6287a056ab60 100644 --- a/superset-frontend/src/explore/components/controls/HiddenControl.jsx +++ b/superset-frontend/src/explore/components/controls/HiddenControl.jsx @@ -26,6 +26,9 @@ const propTypes = { PropTypes.string, PropTypes.number, PropTypes.object, + PropTypes.bool, + PropTypes.array, + PropTypes.func, ]), }; diff --git a/superset-frontend/src/profile/components/App.jsx b/superset-frontend/src/profile/components/App.jsx index 1d8ea8a6fff75..457a46e3d9901 100644 --- a/superset-frontend/src/profile/components/App.jsx +++ b/superset-frontend/src/profile/components/App.jsx @@ -49,7 +49,9 @@ export default function App(props) { } > - + + + - + + + - + + + - + + + diff --git a/superset-frontend/src/profile/components/UserInfo.jsx b/superset-frontend/src/profile/components/UserInfo.jsx index 2a2146e2295b0..1c6adca6d9e93 100644 --- a/superset-frontend/src/profile/components/UserInfo.jsx +++ b/superset-frontend/src/profile/components/UserInfo.jsx @@ -41,31 +41,33 @@ const UserInfo = ({ user }) => (
-

- - {user.firstName} {user.lastName} - -

-

- {user.username} -

-
-

- {t('joined')}{' '} - {moment(user.createdOn, 'YYYYMMDD').fromNow()} -

-

- {user.email} -

-

- {Object.keys(user.roles).join(', ')} -

-

- -   - {t('id:')}  - {user.userId} -

+ +

+ + {user.firstName} {user.lastName} + +

+

+ {user.username} +

+
+

+ {t('joined')}{' '} + {moment(user.createdOn, 'YYYYMMDD').fromNow()} +

+

+ {user.email} +

+

+ {Object.keys(user.roles).join(', ')} +

+

+ +   + {t('id:')}  + {user.userId} +

+
); diff --git a/superset-frontend/src/views/chartList/ChartList.tsx b/superset-frontend/src/views/chartList/ChartList.tsx index 351f232c6bfd4..942028bda7cf8 100644 --- a/superset-frontend/src/views/chartList/ChartList.tsx +++ b/superset-frontend/src/views/chartList/ChartList.tsx @@ -393,51 +393,53 @@ class ChartList extends React.PureComponent { return (
- {sliceCurrentlyEditing && ( - - )} - + {sliceCurrentlyEditing && ( + )} - onConfirm={this.handleBulkChartDelete} - > - {confirmDelete => { - const bulkActions = []; - if (this.canDelete) { - bulkActions.push({ - key: 'delete', - name: ( - <> - Delete - - ), - onSelect: confirmDelete, - }); - } - return ( - - ); - }} - + + {confirmDelete => { + const bulkActions = []; + if (this.canDelete) { + bulkActions.push({ + key: 'delete', + name: ( + <> + Delete + + ), + onSelect: confirmDelete, + }); + } + return ( + + ); + }} + +
); diff --git a/superset-frontend/src/views/dashboardList/DashboardList.tsx b/superset-frontend/src/views/dashboardList/DashboardList.tsx index 38b7d2b2babbd..c36ddd8b420f0 100644 --- a/superset-frontend/src/views/dashboardList/DashboardList.tsx +++ b/superset-frontend/src/views/dashboardList/DashboardList.tsx @@ -427,64 +427,66 @@ class DashboardList extends React.PureComponent { return (
- - {confirmDelete => { - const bulkActions = []; - if (this.canDelete) { - bulkActions.push({ - key: 'delete', - name: ( - <> - Delete - - ), - onSelect: confirmDelete, - }); - } - if (this.canExport) { - bulkActions.push({ - key: 'export', - name: ( - <> - Export - - ), - onSelect: this.handleBulkDashboardExport, - }); - } - return ( - <> - {dashboardToEdit && ( - this.setState({ dashboardToEdit: null })} - onDashboardSave={this.handleDashboardEdit} + + + {confirmDelete => { + const bulkActions = []; + if (this.canDelete) { + bulkActions.push({ + key: 'delete', + name: ( + <> + Delete + + ), + onSelect: confirmDelete, + }); + } + if (this.canExport) { + bulkActions.push({ + key: 'export', + name: ( + <> + Export + + ), + onSelect: this.handleBulkDashboardExport, + }); + } + return ( + <> + {dashboardToEdit && ( + this.setState({ dashboardToEdit: null })} + onDashboardSave={this.handleDashboardEdit} + /> + )} + - )} - - - ); - }} - + + ); + }} + +
); diff --git a/superset-frontend/src/views/datasetList/DatasetList.tsx b/superset-frontend/src/views/datasetList/DatasetList.tsx index 62821e669749b..9bbc4f053b726 100644 --- a/superset-frontend/src/views/datasetList/DatasetList.tsx +++ b/superset-frontend/src/views/datasetList/DatasetList.tsx @@ -389,56 +389,58 @@ class DatasetList extends React.PureComponent { return (
- - {confirmDelete => { - const bulkActions = []; - if (this.canDelete) { - bulkActions.push({ - key: 'delete', - name: ( - <> - Delete - - ), - onSelect: confirmDelete, - }); - } - return ( - <> - {this.canCreate && ( - - - - - - )} - - - ); - }} - + + + {confirmDelete => { + const bulkActions = []; + if (this.canDelete) { + bulkActions.push({ + key: 'delete', + name: ( + <> + Delete + + ), + onSelect: confirmDelete, + }); + } + return ( + <> + {this.canCreate && ( + + + + + + )} + + + ); + }} + +
); diff --git a/superset-frontend/src/welcome/Welcome.jsx b/superset-frontend/src/welcome/Welcome.jsx index 3b7a2f101db3a..97d17f91deb13 100644 --- a/superset-frontend/src/welcome/Welcome.jsx +++ b/superset-frontend/src/welcome/Welcome.jsx @@ -63,45 +63,51 @@ export default function Welcome({ user }) { > - - -

{t('Dashboards')}

- - - setSearchQuery(e.currentTarget.value)} - /> - -
-
- + + + +

{t('Dashboards')}

+ + + setSearchQuery(e.currentTarget.value)} + /> + +
+
+ +
- - -

{t('Recently Viewed')}

- -
-
- + + + +

{t('Recently Viewed')}

+ +
+
+ +
- - -

{t('Favorites')}

- -
-
- + + + +

{t('Favorites')}

+ +
+
+ +
From a1eece9013dee294bfdb57b4a18c01b3e271b9b9 Mon Sep 17 00:00:00 2001 From: David Aaron Suddjian Date: Tue, 24 Mar 2020 14:35:01 -0700 Subject: [PATCH 2/4] fix test --- .../javascripts/explore/components/ControlPanelSection_spec.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset-frontend/spec/javascripts/explore/components/ControlPanelSection_spec.jsx b/superset-frontend/spec/javascripts/explore/components/ControlPanelSection_spec.jsx index 7e4f7478e9f27..ab554caae5fa3 100644 --- a/superset-frontend/spec/javascripts/explore/components/ControlPanelSection_spec.jsx +++ b/superset-frontend/spec/javascripts/explore/components/ControlPanelSection_spec.jsx @@ -57,7 +57,7 @@ describe('ControlPanelSection', () => { it('renders a label if present', () => { expect( wrapper - .find(Panel) + .find(Panel.Title) .dive() .text(), ).toContain('my label'); From 3229797550d453134f96b518161db1314d6f17fe Mon Sep 17 00:00:00 2001 From: David Aaron Suddjian <1858430+suddjian@users.noreply.github.com> Date: Thu, 26 Mar 2020 09:44:22 -0700 Subject: [PATCH 3/4] simplify proptypes Co-Authored-By: Evan Rusackas --- .../src/dashboard/components/filterscope/FilterFieldTree.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset-frontend/src/dashboard/components/filterscope/FilterFieldTree.jsx b/superset-frontend/src/dashboard/components/filterscope/FilterFieldTree.jsx index b1726f7475552..f3d316fc4ee8b 100644 --- a/superset-frontend/src/dashboard/components/filterscope/FilterFieldTree.jsx +++ b/superset-frontend/src/dashboard/components/filterscope/FilterFieldTree.jsx @@ -25,7 +25,7 @@ import renderFilterFieldTreeNodes from './renderFilterFieldTreeNodes'; import { filterScopeSelectorTreeNodePropShape } from '../../util/propShapes'; const propTypes = { - activeKey: PropTypes.oneOfType([PropTypes.string]), + activeKey: PropTypes.string, nodes: PropTypes.arrayOf(filterScopeSelectorTreeNodePropShape).isRequired, checked: PropTypes.arrayOf( PropTypes.oneOfType([PropTypes.number, PropTypes.string]), From a43ddbbfc38fd87c024d22425b64a7e1ebf199fc Mon Sep 17 00:00:00 2001 From: David Aaron Suddjian <1858430+suddjian@users.noreply.github.com> Date: Thu, 26 Mar 2020 09:44:35 -0700 Subject: [PATCH 4/4] simplify more proptypes Co-Authored-By: Evan Rusackas --- .../src/dashboard/components/filterscope/FilterScopeTree.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset-frontend/src/dashboard/components/filterscope/FilterScopeTree.jsx b/superset-frontend/src/dashboard/components/filterscope/FilterScopeTree.jsx index 99aec7b9427e0..2d663e0d35fe4 100644 --- a/superset-frontend/src/dashboard/components/filterscope/FilterScopeTree.jsx +++ b/superset-frontend/src/dashboard/components/filterscope/FilterScopeTree.jsx @@ -34,7 +34,7 @@ const propTypes = { ).isRequired, onCheck: PropTypes.func.isRequired, onExpand: PropTypes.func.isRequired, - selectedChartId: PropTypes.oneOfType([PropTypes.number]), + selectedChartId: PropTypes.number, }; const defaultProps = {