Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ react menu component. port from https://github.com/kissyteam/menu
var Menu = require('rc-menu');
var SubMenu = Menu.SubMenu;
var MenuItem = Menu.Item;
React.render(<Menu>
ReactDOM.render(<Menu>
<MenuItem>1</MenuItem>
<SubMenu title="2">
<MenuItem>2-1</MenuItem>
Expand Down Expand Up @@ -304,4 +304,4 @@ http://localhost:8010/node_modules/rc-server/node_modules/node-jscover/lib/front

## License

rc-menu is released under the MIT license.
rc-menu is released under the MIT license.
5 changes: 2 additions & 3 deletions examples/antd.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
'use strict';

import React from 'react';
import ReactDOM from 'react-dom';
import Menu, {SubMenu, Item as MenuItem, ItemGroup as MenuItemGroup, Divider} from 'rc-menu';
import velocity from 'velocity-animate';
import 'rc-menu/assets/index.less';
Expand Down Expand Up @@ -169,7 +168,7 @@ function render(container) {
}
});

React.render(<div style={{margin:20}}>
ReactDOM.render(<div style={{margin:20}}>
<h2>antd menu</h2>

<div>
Expand Down
5 changes: 2 additions & 3 deletions examples/menuItemGroup.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
'use strict';

import React from 'react';
import ReactDOM from 'react-dom';
import Menu, {SubMenu, Item as MenuItem, ItemGroup as MenuItemGroup, Divider} from 'rc-menu';

import 'rc-menu/assets/index.less';

React.render(<div>
ReactDOM.render(<div>
<h2>menu item group</h2>
<Menu style={{margin: 20, width: 300}}>
<MenuItemGroup title="group 1" key="2">
Expand Down
9 changes: 4 additions & 5 deletions examples/multiple.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
'use strict';

import React from 'react';
import ReactDOM from 'react-dom';
import Menu, {SubMenu, Item as MenuItem, ItemGroup as MenuItemGroup, Divider} from 'rc-menu';

import 'rc-menu/assets/index.less';
Expand Down Expand Up @@ -32,7 +31,7 @@ render(container);

function save(c) {
console.log('getRef')
console.log(React.findDOMNode(c));
console.log(ReactDOM.findDOMNode(c));
}

function render(container) {
Expand Down Expand Up @@ -62,7 +61,7 @@ function render(container) {
<MenuItem key="4-3">outer3</MenuItem>
</Menu>
);
React.render(<div>
ReactDOM.render(<div>
<h2>multiple selectable menu</h2>

<p>
Expand All @@ -72,6 +71,6 @@ function render(container) {
</div>, container);

function destroy() {
React.unmountComponentAtNode(container);
ReactDOM.unmountComponentAtNode(container);
}
}
5 changes: 2 additions & 3 deletions examples/openKeys.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
'use strict';

import React from 'react';
import ReactDOM from 'react-dom';
import Menu, {SubMenu, Item as MenuItem, ItemGroup as MenuItemGroup, Divider} from 'rc-menu';

import 'rc-menu/assets/index.less';
Expand Down Expand Up @@ -59,4 +58,4 @@ var Test = React.createClass({
});


React.render(<Test />, document.getElementById('__react-content'));
ReactDOM.render(<Test />, document.getElementById('__react-content'));
5 changes: 2 additions & 3 deletions examples/scrollable.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
'use strict';

import React from 'react';
import ReactDOM from 'react-dom';
import Menu, {SubMenu, Item as MenuItem, ItemGroup as MenuItemGroup, Divider} from 'rc-menu';

import 'rc-menu/assets/index.less';
Expand All @@ -10,7 +9,7 @@ var children = [];
for (var i = 0; i < 20; i++) {
children.push(<MenuItem key={i + ""}>{i}</MenuItem>);
}
React.render(<div>
ReactDOM.render(<div>
<h2>keyboard scrollable menu</h2>
<Menu style={{
width:200,
Expand Down
5 changes: 2 additions & 3 deletions examples/selectedKeys.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
'use strict';

import React from 'react';
import ReactDOM from 'react-dom';
import Menu, {SubMenu, Item as MenuItem, ItemGroup as MenuItemGroup, Divider} from 'rc-menu';

import 'rc-menu/assets/index.less';
Expand Down Expand Up @@ -138,4 +137,4 @@ var Test = React.createClass({
});


React.render(<Test />, document.getElementById('__react-content'));
ReactDOM.render(<Test />, document.getElementById('__react-content'));
7 changes: 3 additions & 4 deletions examples/single.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
'use strict';

import React from 'react';
import ReactDOM from 'react-dom';
import Menu, {SubMenu, Item as MenuItem, ItemGroup as MenuItemGroup, Divider} from 'rc-menu';

import 'rc-menu/assets/index.less';
Expand Down Expand Up @@ -58,7 +57,7 @@ function render(container) {
<MenuItem key="4-3">outer3</MenuItem>
</Menu>
);
React.render(<div>
ReactDOM.render(<div>
<h2>single selectable menu</h2>

<p>
Expand All @@ -71,6 +70,6 @@ function render(container) {


function destroy() {
React.unmountComponentAtNode(container);
ReactDOM.unmountComponentAtNode(container);
}
}
6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,15 @@
"precommit-hook": "^1.0.7",
"rc-server": "3.x",
"rc-tools": "4.x",
"react": "~0.13.0",
"react": "~0.14.0",
"react-addons-test-utils": "~0.14.1",
"react-dom": "~0.14.0",
"velocity-animate": "~1.2.2"
},
"dependencies": {
"dom-scroll-into-view": "1.x",
"object-assign": "3.x",
"rc-animate": "1.x",
"rc-animate": "~2.0.0",
"rc-util": "2.x"
},
"precommit": [
Expand Down
33 changes: 17 additions & 16 deletions src/Menu.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,11 @@ const Menu = React.createClass({
level: React.PropTypes.number,
eventKey: React.PropTypes.string,
selectable: React.PropTypes.bool,
children: React.PropTypes.any,
},

mixins: [MenuMixin],

getDefaultProps() {
return {
openSubMenuOnMouseEnter: true,
Expand All @@ -38,8 +41,6 @@ const Menu = React.createClass({
};
},

mixins: [MenuMixin],

getInitialState() {
const props = this.props;
let selectedKeys = props.defaultSelectedKeys;
Expand Down Expand Up @@ -190,6 +191,20 @@ const Menu = React.createClass({
return transitionName;
},

isInlineMode() {
return this.props.mode === 'inline';
},

lastOpenSubMenu() {
let lastOpen = [];
if (this.state.openKeys.length) {
lastOpen = this.instanceArray.filter((c)=> {
return this.state.openKeys.indexOf(c.props.eventKey) !== -1;
});
}
return lastOpen[0];
},

renderMenuItem(c, i) {
const key = getKeyFromChildrenIndex(c, this.props.eventKey, i);
const state = this.state;
Expand All @@ -208,20 +223,6 @@ const Menu = React.createClass({
props.className += ` ${props.prefixCls}-root`;
return this.renderRoot(props);
},

isInlineMode() {
return this.props.mode === 'inline';
},

lastOpenSubMenu() {
let lastOpen = [];
if (this.state.openKeys.length) {
lastOpen = this.instanceArray.filter((c)=> {
return this.state.openKeys.indexOf(c.props.eventKey) !== -1;
});
}
return lastOpen[0];
},
});

export default Menu;
7 changes: 6 additions & 1 deletion src/MenuMixin.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React from 'react';
import ReactDOM from 'react-dom';
import {classSet, createChainedFunction, KeyCode} from 'rc-util';
import scrollIntoView from 'dom-scroll-into-view';
import assign from 'object-assign';
Expand Down Expand Up @@ -49,6 +50,7 @@ const MenuMixin = {
defaultSelectedKeys: React.PropTypes.arrayOf(React.PropTypes.string),
defaultOpenKeys: React.PropTypes.arrayOf(React.PropTypes.string),
openKeys: React.PropTypes.arrayOf(React.PropTypes.string),
children: React.PropTypes.any,
},

getDefaultProps() {
Expand Down Expand Up @@ -114,7 +116,7 @@ const MenuMixin = {
this.setState({
activeKey: activeItem.props.eventKey,
}, ()=> {
scrollIntoView(React.findDOMNode(activeItem), React.findDOMNode(this), {
scrollIntoView(ReactDOM.findDOMNode(activeItem), ReactDOM.findDOMNode(this), {
onlyScrollIfNeeded: true,
});
});
Expand Down Expand Up @@ -200,11 +202,14 @@ const MenuMixin = {
domProps.onKeyDown = this.onKeyDown;
}
return (
// ESLint is not smart enough to konw that the type of `children` was checked.
/*eslint-disable */
<ul style={props.style}
data-visible={props.visible}
{...domProps}>
{React.Children.map(props.children, this.renderMenuItem)}
</ul>
/*eslint-enable */
);
},

Expand Down
56 changes: 28 additions & 28 deletions src/SubMenu.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,6 @@ const SubMenu = React.createClass({

mixins: [require('./SubMenuStateMixin')],

getInitialState() {
this.isSubMenu = 1;
return {
defaultActiveFirst: false,
};
},

getDefaultProps() {
return {
onMouseEnter() {
Expand All @@ -38,6 +31,13 @@ const SubMenu = React.createClass({
};
},

getInitialState() {
this.isSubMenu = 1;
return {
defaultActiveFirst: false,
};
},

componentWillUnmount() {
const props = this.props;
if (props.onDestroy) {
Expand Down Expand Up @@ -181,6 +181,26 @@ const SubMenu = React.createClass({
return this.props.rootPrefixCls + '-submenu-open';
},

saveMenuInstance(c) {
this.menuInstance = c;
},

addKeyPath(info) {
return assign({}, info, {
keyPath: info.keyPath.concat(this.props.eventKey),
});
},

triggerOpenChange(open, type) {
const key = this.props.eventKey;
this.onOpenChange({
key: key,
item: this,
trigger: type,
open: open,
});
},

renderChildren(children) {
const props = this.props;
const baseProps = {
Expand Down Expand Up @@ -245,7 +265,7 @@ const SubMenu = React.createClass({
style.paddingLeft = props.inlineIndent * props.level;
}
return (
<li className={classSet(classes)} {...mouseEvents}>
<li className={classSet(classes)} {...mouseEvents}>
<div
style={style}
className={prefixCls + '-title'}
Expand All @@ -261,26 +281,6 @@ const SubMenu = React.createClass({
</li>
);
},

saveMenuInstance(c) {
this.menuInstance = c;
},

addKeyPath(info) {
return assign({}, info, {
keyPath: info.keyPath.concat(this.props.eventKey),
});
},

triggerOpenChange(open, type) {
const key = this.props.eventKey;
this.onOpenChange({
key: key,
item: this,
trigger: type,
open: open,
});
},
});

export default SubMenu;
4 changes: 2 additions & 2 deletions src/SubMenuStateMixin.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import rcUtil, {KeyCode} from 'rc-util';
import React from 'react';
import ReactDOM from 'react-dom';

export default {
componentDidMount() {
Expand Down Expand Up @@ -29,7 +29,7 @@ export default {
handleDocumentClick(e) {
// If the click originated from within this component
// don't do anything.
if (rcUtil.Dom.contains(React.findDOMNode(this), e.target)) {
if (rcUtil.Dom.contains(ReactDOM.findDOMNode(this), e.target)) {
return;
}
const props = this.props;
Expand Down
1 change: 1 addition & 0 deletions src/SubPopupMenu.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ const SubPopupMenu = React.createClass({
openKeys: React.PropTypes.arrayOf(React.PropTypes.string),
closeSubMenuOnMouseLeave: React.PropTypes.bool,
visible: React.PropTypes.bool,
children: React.PropTypes.any,
},

mixins: [MenuMixin],
Expand Down
2 changes: 1 addition & 1 deletion src/util.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const now = Date.now();
export default {
export default {
noop() {
},

Expand Down
Loading