From 4ccd7ac6f9bc2f6faaf02affd1ed2ec7954320a1 Mon Sep 17 00:00:00 2001 From: docoder Date: Fri, 30 Dec 2016 14:41:46 +0800 Subject: [PATCH 1/2] Add multiple context menus feature when multiple table in one page --- src/Canvas.js | 5 ++++- src/Grid.js | 5 ++++- src/ReactDataGrid.js | 6 ++++-- src/RowsContainer.js | 11 +++++++++-- src/Viewport.js | 5 ++++- src/addons/menu/ContextMenu.js | 6 ++++-- 6 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/Canvas.js b/src/Canvas.js index 3d3e8656fe..a2df63b7f8 100644 --- a/src/Canvas.js +++ b/src/Canvas.js @@ -59,7 +59,8 @@ const Canvas = React.createClass({ }) ]), rowGroupRenderer: React.PropTypes.func, - isScrolling: React.PropTypes.bool + isScrolling: React.PropTypes.bool, + identifier: PropTypes.string // docoder--add }, getDefaultProps() { @@ -349,7 +350,9 @@ const Canvas = React.createClass({ style={style} onScroll={this.onScroll} className={joinClasses('react-grid-Canvas', this.props.className, { opaque: this.props.cellMetaData.selected && this.props.cellMetaData.selected.active }) }> + {/* docoder--add: identifier */} {this.props.rowsCount >= 1 || (this.props.rowsCount === 0 && !this.props.emptyRowsView) ?
+ {/* docoder--add: identifier */} {contextMenu}
); @@ -53,6 +59,7 @@ RowsContainer.propTypes = { contextMenu: PropTypes.element, rowIdx: PropTypes.number, idx: PropTypes.number, + identifier: PropTypes.string, // docoder--add window: PropTypes.object }; diff --git a/src/Viewport.js b/src/Viewport.js index 6b215a2b57..e5d56372b3 100644 --- a/src/Viewport.js +++ b/src/Viewport.js @@ -39,7 +39,8 @@ const Viewport = React.createClass({ rowScrollTimeout: PropTypes.number, contextMenu: PropTypes.element, getSubRowDetails: PropTypes.func, - rowGroupRenderer: PropTypes.func + rowGroupRenderer: PropTypes.func, + identifier: PropTypes.string // docoder--add }, onScroll(scroll: {scrollTop: number; scrollLeft: number}) { @@ -77,8 +78,10 @@ const Viewport = React.createClass({
+ {/* docoder--add: identifier */} {this.props.identifier}) return ( - + {this.props.children} ); @@ -12,7 +13,8 @@ class ReactDataGridContextMenu extends React.Component { } ReactDataGridContextMenu.propTypes = { - children: PropTypes.node + children: PropTypes.node, + identifier: PropTypes.string // docoder--add }; export default ReactDataGridContextMenu; From e7cb7fa02fba4cf073a31b44915290cefd5a4d2b Mon Sep 17 00:00:00 2001 From: docoder Date: Fri, 30 Dec 2016 14:48:28 +0800 Subject: [PATCH 2/2] Fix Context Menu Example for multiple context menus feature --- examples/scripts/example18-context-menu.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/scripts/example18-context-menu.js b/examples/scripts/example18-context-menu.js index 2c9bd8d177..a1c7381cb5 100644 --- a/examples/scripts/example18-context-menu.js +++ b/examples/scripts/example18-context-menu.js @@ -90,7 +90,7 @@ var MyContextMenu = React.createClass({ }, render: function() { return ( - + Delete Row Above