react-input-message
Advanced tools
Comparing version 0.12.2 to 0.13.0
@@ -19,2 +19,6 @@ 'use strict'; | ||
function isReactComponent(component) { | ||
return !!(component && component.prototype && component.prototype.isReactComponent); | ||
} | ||
function defaultResolveNames(props, container) { | ||
@@ -41,15 +45,20 @@ var group = props.group; | ||
function mapMessages(messages, resolveNames, props, container) { | ||
var names = resolveNames ? resolveNames(props, container) : []; | ||
var mapMessages = props.mapMessages; | ||
exports.default = function (Component) { | ||
var _ref = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; | ||
var _ref$methods = _ref.methods; | ||
var methods = _ref$methods === undefined ? [] : _ref$methods; | ||
var _ref$mapMessages = _ref.mapMessages; | ||
var mapMessages = _ref$mapMessages === undefined ? defaultMapMessages : _ref$mapMessages; | ||
var _ref$resolveNames = _ref.resolveNames; | ||
var resolveNames = _ref$resolveNames === undefined ? defaultResolveNames : _ref$resolveNames; | ||
return (mapMessages || defaultMapMessages)(messages, names, props, container); | ||
} | ||
exports.default = function (Component) { | ||
var _class, _temp; | ||
function resolveNamesAndMapMessages(messages, props, container) { | ||
var names = resolveNames ? resolveNames(props, container) : []; | ||
var resolveNames = arguments.length <= 1 || arguments[1] === undefined ? defaultResolveNames : arguments[1]; | ||
return _temp = _class = function (_React$Component) { | ||
return (props.mapMessages || mapMessages)(messages, names, props, container); | ||
} | ||
var MessageListener = function (_React$Component) { | ||
_inherits(MessageListener, _React$Component); | ||
@@ -70,3 +79,3 @@ | ||
this.unsubscribe = container.subscribe(function (allMessages) { | ||
var messages = mapMessages(allMessages, resolveNames, _this2.props, _this2.context.messageContainer); | ||
var messages = resolveNamesAndMapMessages(allMessages, _this2.props, _this2.context.messageContainer); | ||
@@ -86,6 +95,6 @@ _this2.setState({ messages: messages, allMessages: allMessages }); | ||
// and not had a chance to flush it's changes yet | ||
_this3.setState(function (_ref) { | ||
var allMessages = _ref.allMessages; | ||
_this3.setState(function (_ref2) { | ||
var allMessages = _ref2.allMessages; | ||
return { | ||
messages: mapMessages(allMessages, resolveNames, nextProps, container) | ||
messages: resolveNamesAndMapMessages(allMessages, nextProps, container) | ||
}; | ||
@@ -102,16 +111,36 @@ }); | ||
MessageListener.prototype.render = function render() { | ||
var messages = this.state.messages; | ||
var _ref3 = this.state || {}; | ||
var messages = _ref3.messages; | ||
return _react2.default.createElement(Component, _extends({}, this.props, { messages: messages })); | ||
return _react2.default.createElement(Component, _extends({ | ||
messages: messages, | ||
ref: isReactComponent(Component) ? 'inner' : undefined | ||
}, this.props)); | ||
}; | ||
return MessageListener; | ||
}(_react2.default.Component), _class.DecoratedComponent = Component, _class.propTypes = { | ||
}(_react2.default.Component); | ||
MessageListener.DecoratedComponent = Component; | ||
MessageListener.propTypes = { | ||
mapMessages: _react2.default.PropTypes.func | ||
}, _class.contextTypes = { | ||
}; | ||
MessageListener.contextTypes = { | ||
messageContainer: _react2.default.PropTypes.object | ||
}, _temp; | ||
}; | ||
methods.forEach(function (method) { | ||
MessageListener.prototype[method] = function () { | ||
var _refs$inner; | ||
return (_refs$inner = this.refs.inner)[method].apply(_refs$inner, arguments); | ||
}; | ||
}); | ||
return MessageListener; | ||
}; | ||
module.exports = exports['default']; |
@@ -9,2 +9,6 @@ 'use strict'; | ||
var _connectToMessageContainer = require('./connectToMessageContainer'); | ||
var _connectToMessageContainer2 = _interopRequireDefault(_connectToMessageContainer); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -93,2 +97,4 @@ | ||
MessageContainer.propTypes = { | ||
passthrough: _react2.default.PropTypes.bool, | ||
mapNames: _react2.default.PropTypes.func, | ||
messages: _react2.default.PropTypes.object, | ||
@@ -98,4 +104,10 @@ onValidationNeeded: _react2.default.PropTypes.func | ||
MessageContainer.defaultProps = { | ||
messages: Object.create(null) | ||
messages: Object.create(null), | ||
mapNames: function mapNames(names) { | ||
return names; | ||
} | ||
}; | ||
MessageContainer.contextTypes = { | ||
messageContainer: _react2.default.PropTypes.object | ||
}; | ||
MessageContainer.childContextTypes = { | ||
@@ -147,2 +159,12 @@ messageContainer: _react2.default.PropTypes.object | ||
var _props = _this2.props; | ||
var mapNames = _props.mapNames; | ||
var passthrough = _props.passthrough; | ||
var messageContainer = _this2.context.messageContainer; | ||
if (messageContainer && passthrough) { | ||
messageContainer.onValidate(mapNames(fields), type, args); | ||
} | ||
_this2.props.onValidationNeeded && _this2.props.onValidationNeeded({ type: type, fields: fields, args: args }); | ||
@@ -164,3 +186,9 @@ }; | ||
exports.default = MessageContainer; | ||
exports.default = (0, _connectToMessageContainer2.default)(MessageContainer, { | ||
resolveNames: function resolveNames() {}, | ||
mapMessages: function mapMessages(messages) { | ||
return messages; | ||
}, | ||
methods: ['namesForGroup', 'addToGroup'] | ||
}); | ||
module.exports = exports['default']; |
{ | ||
"name": "react-input-message", | ||
"description": "unopinionated form input annotation", | ||
"version": "0.12.2", | ||
"version": "0.13.0", | ||
"repository": { | ||
@@ -6,0 +6,0 @@ "url": "git://github.com/jquense/react-input-message.git" |
26328
561