Socket
Socket
Sign inDemoInstall

react-input-message

Package Overview
Dependencies
Maintainers
1
Versions
40
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-input-message - npm Package Compare versions

Comparing version 0.10.2 to 0.11.0

35

connectToMessageContainer.js

@@ -19,5 +19,29 @@ 'use strict';

function resolveNames(container, props) {
var group = props.group;
var forNames = props['for'];
if (!forNames && container) forNames = container.namesForGroup(group);
return forNames ? [].concat(forNames) : [];
}
function defaultMapMessages(messages, props, container) {
var names = resolveNames(container, props);
if (!names.length) return messages;
var messagesForNames = {};
names.forEach(function (name) {
if (messages[name]) messagesForNames[name] = messages[name];
});
return messagesForNames;
}
exports.default = function (Component) {
var _class, _temp;
var mapMessages = arguments.length <= 1 || arguments[1] === undefined ? defaultMapMessages : arguments[1];
return _temp = _class = function (_React$Component) {

@@ -39,2 +63,4 @@ _inherits(MessageListener, _React$Component);

this.unsubscribe = container.subscribe(function (messages) {
if (mapMessages) messages = mapMessages(messages, _this2.props, container);
_this2.setState({ messages: messages });

@@ -45,2 +71,11 @@ });

MessageListener.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps, nextContext) {
if (mapMessages && mapMessages.length >= 2) {
var container = nextContext.messageContainer;
this.setState({
messages: mapMessages(this.state.messages, nextProps, container)
});
}
};
MessageListener.prototype.componentWillUnmount = function componentWillUnmount() {

@@ -47,0 +82,0 @@ this.unsubscribe && this.unsubscribe();

58

Message.js

@@ -30,12 +30,2 @@ 'use strict';

function messagesForNames(names, messages) {
var messagesForNames = {};
names.forEach(function (name) {
if (messages[name]) messagesForNames[name] = messages[name];
});
return messagesForNames;
}
var stringOrArrayOfStrings = _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.arrayOf(_react.PropTypes.string)]);

@@ -52,59 +42,22 @@

Message.prototype.componentWillMount = function componentWillMount() {
this.setState(this.getMessageState(this.props, this.context));
};
Message.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps, nextContext) {
this.setState(this.getMessageState(nextProps, nextContext));
};
Message.prototype.getMessageState = function getMessageState(props, context) {
var messagesForNames = props.messagesForNames;
var messages = props.messages;
var args = _objectWithoutProperties(props, ['messagesForNames', 'messages']);
var names = this.resolveNames(props, context);
messages = names == null ? messages : messagesForNames(names, messages, args);
return { messages: messages };
};
Message.prototype.render = function render() {
var _props = this.props;
var fieldFor = _props.for;
var
/* eslint-disable no-unused-vars */
/* eslint-enable no-unused-vars */
messages = _props.messages;
var fieldFor = _props.for;
var Component = _props.component;
var children = _props.children;
var props = _objectWithoutProperties(_props, ['messages', 'for', 'component', 'children']);
var props = _objectWithoutProperties(_props, ['for', 'messages', 'component', 'children']);
var activeMessages = this.state.messages;
if (!Object.keys(messages || {}).length) return null;
if (!Object.keys(activeMessages || {}).length) return null;
return _react2.default.createElement(
Component,
props,
children(values(activeMessages).reduce(flatten, []))
children(values(messages).reduce(flatten, []))
);
};
Message.prototype.resolveNames = function resolveNames(props, context) {
var messageContainer = context.messageContainer;
var forNames = props['for'];
var group = props.group;
if (!forNames) {
if (!group || !messageContainer) return null;
forNames = messageContainer.namesForGroup(group);
}
return forNames ? [].concat(forNames) : [];
};
return Message;

@@ -121,3 +74,2 @@ }(_react2.default.Component);

Message.defaultProps = {
messagesForNames: messagesForNames,
component: 'span',

@@ -124,0 +76,0 @@ children: function children(messages) {

@@ -33,2 +33,4 @@ 'use strict';

var ALL_FIELDS = '@all';
var MessageContainer = function (_React$Component) {

@@ -105,4 +107,8 @@ _inherits(MessageContainer, _React$Component);

this.namesForGroup = function (groups) {
groups = groups || Object.keys(_this2._groups);
groups = [].concat(groups);
groups = groups ? [].concat(groups) : [];
if (groups.indexOf(ALL_FIELDS) !== -1) {
groups = Object.keys(_this2._groups);
}
return uniq(groups.reduce(function (fields, group) {

@@ -114,3 +120,6 @@ return fields.concat(_this2._groups[group]);

this.addToGroup = function (grpName, names) {
if (grpName === ALL_FIELDS) return;
grpName = grpName || '@@unassigned-group';
names = names && [].concat(names);

@@ -117,0 +126,0 @@

@@ -19,4 +19,2 @@ 'use strict';

function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

@@ -30,8 +28,2 @@

function isActive(names, messages) {
return names.some(function (name) {
return !!messages[name];
});
}
var MessageTrigger = function (_React$Component) {

@@ -56,24 +48,7 @@ _inherits(MessageTrigger, _React$Component);

MessageTrigger.prototype.componentWillMount = function componentWillMount() {
var _props = this.props;
var isActive = _props.isActive;
var messages = _props.messages;
var props = _objectWithoutProperties(_props, ['isActive', 'messages']);
this.addToGroup();
this.setState({
isActive: isActive.apply(undefined, [this.resolveNames(), messages].concat(props))
});
};
MessageTrigger.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps, nextContext) {
var isActive = nextProps.isActive;
var messages = nextProps.messages;
var props = _objectWithoutProperties(nextProps, ['isActive', 'messages']);
this.addToGroup(nextProps, nextContext);
this.setState({
isActive: isActive(this.resolveNames(nextProps, nextContext), messages, props)
});
};

@@ -119,3 +94,2 @@

// falsy groups will return all form fields

@@ -133,6 +107,12 @@ if (!forNames && messageContainer) forNames = messageContainer.namesForGroup(group);

inject: _react2.default.PropTypes.func,
isActive: _react2.default.PropTypes.func.isRequired,
for: stringOrArrayOfStrings,
group: stringOrArrayOfStrings
group: function group(props, name, compName) {
if (!props[name] && (!props.for || !props.for.length)) {
return new Error('A `group` prop is required when no `for` prop is provided' + ('for component ' + compName));
}
return stringOrArrayOfStrings(props, name, compName);
}
};

@@ -143,3 +123,2 @@ MessageTrigger.contextTypes = {

MessageTrigger.defaultProps = {
isActive: isActive,
events: 'onChange'

@@ -167,12 +146,10 @@ };

this.inject = function (child) {
var _props2 = _this2.props;
var messages = _props2.messages;
var inject = _props2.inject;
var isActive = _props2.isActive;
var _props = _this2.props;
var messages = _props.messages;
var inject = _props.inject;
if (!inject) return false;
var names = _this2.resolveNames();
return inject(child, isActive(names, messages));
return inject(child, messages);
};

@@ -179,0 +156,0 @@ };

{
"name": "react-input-message",
"description": "unopinionated form input annotation",
"version": "0.10.2",
"version": "0.11.0",
"repository": {

@@ -6,0 +6,0 @@ "url": "git://github.com/jquense/react-input-message.git"

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc