diff --git a/examples/origin/SomeComponent.js b/examples/origin/SomeComponent.js
new file mode 100644
index 0000000..9a0a6fb
--- /dev/null
+++ b/examples/origin/SomeComponent.js
@@ -0,0 +1,25 @@
+import React, { Component, PropTypes } from 'react';
+import { connect } from 'react-redux';
+
+
+class SomeComponent extends Component {
+ constructor(props) {
+ super(props);
+ this.onClick = this.onClick.bind(this);
+ }
+
+ onClick() {
+ console.log("__onClick__");
+ }
+
+ render() {
+ console.log("this.props: ", this.props);
+ return (
+
+ {this.props.children}
+
+ );
+ }
+}
+
+export default SomeComponent;
diff --git a/lib/origin.js b/lib/origin.js
index 385a93d..1fce900 100644
--- a/lib/origin.js
+++ b/lib/origin.js
@@ -68,7 +68,7 @@ var Origin = function (_Component) {
value: function render() {
var _this2 = this;
- var props = (0, _blacklist2.default)(this.props, 'name', 'content', 'place', 'tag', 'delay', 'delayOn', 'dispatch', 'onTimeout', 'onHover', 'onLeave');
+ var props = (0, _blacklist2.default)(this.props, 'name', 'content', 'place', 'tagName', 'delay', 'delayOn', 'dispatch', 'onTimeout', 'onHover', 'onLeave');
if (!props.onMouseEnter) {
props.onMouseEnter = function (e) {
@@ -88,22 +88,22 @@ var Origin = function (_Component) {
};
}
- var WrappedComponent = this.props.tag;
+ var WrappedComponent = this.props.component;
if (typeof WrappedComponent == 'function') {
return _react2.default.createElement(
WrappedComponent,
- _extends({}, props, { ref: 'wrapper' }),
+ { onMouseEnter: props.onMouseEnter, onMouseLeave: props.onMouseLeave, ref: 'wrapper' },
props.children
);
}
- return _react2.default.createElement(this.props.tag, _extends({}, props, { ref: 'wrapper'
+ return _react2.default.createElement(this.props.tagName, _extends({}, props, { ref: 'wrapper'
}));
}
}], [{
key: 'wrapBy',
- value: function wrapBy(tag) {
+ value: function wrapBy(tagName) {
var CustomOrigin = function (_Origin) {
_inherits(CustomOrigin, _Origin);
@@ -116,13 +116,13 @@ var Origin = function (_Component) {
_createClass(CustomOrigin, null, [{
key: 'displayName',
get: function get() {
- return Origin.displayName + '.' + tag;
+ return Origin.displayName + '.' + tagName;
}
}, {
key: 'defaultProps',
get: function get() {
return _extends({}, Origin.defaultProps, {
- tag: tag
+ tagName: tagName
});
}
}]);
@@ -144,7 +144,8 @@ var Origin = function (_Component) {
name: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.arrayOf(_propTypes2.default.string)]),
content: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object, _propTypes2.default.arrayOf(_propTypes2.default.object)]),
place: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.arrayOf(_propTypes2.default.string)]),
- tag: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),
+ tagName: _propTypes2.default.string,
+ component: _propTypes2.default.func,
delay: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.number, _propTypes2.default.string]),
delayOn: _propTypes2.default.oneOf(['show', 'hide', 'both']),
onTimeout: _propTypes2.default.func,
@@ -159,7 +160,7 @@ var Origin = function (_Component) {
get: function get() {
return {
delayOn: 'hide',
- tag: 'span'
+ tagName: 'span'
};
}
}]);
diff --git a/src/origin.js b/src/origin.js
index 824e357..4358ec0 100644
--- a/src/origin.js
+++ b/src/origin.js
@@ -24,10 +24,8 @@ class Origin extends Component {
PropTypes.string,
PropTypes.arrayOf(PropTypes.string)
]),
- tag: PropTypes.oneOfType([
- PropTypes.string,
- PropTypes.func
- ]),
+ tagName: PropTypes.string,
+ component: PropTypes.func,
delay: PropTypes.oneOfType([
PropTypes.bool,
PropTypes.number,
@@ -45,20 +43,20 @@ class Origin extends Component {
static get defaultProps() {
return {
delayOn: 'hide',
- tag: 'span',
+ tagName: 'span',
};
}
- static wrapBy(tag) {
+ static wrapBy(tagName) {
class CustomOrigin extends Origin {
static get displayName() {
- return `${Origin.displayName}.${tag}`;
+ return `${Origin.displayName}.${tagName}`;
}
static get defaultProps() {
return {
...Origin.defaultProps,
- tag,
+ tagName,
};
}
}
@@ -83,7 +81,7 @@ class Origin extends Component {
}
render() {
- const props = blacklist(this.props, 'name', 'content', 'place', 'tag', 'delay', 'delayOn', 'dispatch', 'onTimeout', 'onHover', 'onLeave');
+ const props = blacklist(this.props, 'name', 'content', 'place', 'tagName', 'delay', 'delayOn', 'dispatch', 'onTimeout', 'onHover', 'onLeave');
if (!props.onMouseEnter) {
props.onMouseEnter = e => {
@@ -107,15 +105,15 @@ class Origin extends Component {
};
}
- const WrappedComponent = this.props.tag;
+ const WrappedComponent = this.props.component;
if (typeof WrappedComponent == 'function') {
- return
+ return
{props.children}
}
- return React.createElement(this.props.tag, {
+ return React.createElement(this.props.tagName, {
...props, ref: 'wrapper'
});
}