Skip to content

Commit

Permalink
chore(release): 1.1.0 [skip ci]
Browse files Browse the repository at this point in the history
# [1.1.0](v1.0.10...v1.1.0) (2018-11-23)

### Features

* **babel:** upgrade to babel 7 and update [@bootstrap-styled](https://github.com/bootstrap-styled)/v4 ([6315aa4](6315aa4))
  • Loading branch information
semantic-release-bot committed Nov 23, 2018
1 parent 329d526 commit e46b315
Show file tree
Hide file tree
Showing 8 changed files with 331 additions and 1 deletion.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# [1.1.0](https://github.com/bootstrap-styled/toggle/compare/v1.0.10...v1.1.0) (2018-11-23)


### Features

* **babel:** upgrade to babel 7 and update [@bootstrap-styled](https://github.com/bootstrap-styled)/v4 ([6315aa4](https://github.com/bootstrap-styled/toggle/commit/6315aa4))

## [1.0.10](https://github.com/bootstrap-styled/toggle/compare/v1.0.9...v1.0.10) (2018-11-17)


Expand Down
87 changes: 87 additions & 0 deletions lib/components/Toggle/ToggleOption.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(require("react"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var _Option = _interopRequireDefault(require("@bootstrap-styled/v4/lib/Option"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

var injectIntl;
var intlShape; // this make react-intl optional to our component and our module

try {
var _require = require('react-intl'),
injectIntlDefault = _require.injectIntl,
intlShapeDefault = _require.intlShape; // eslint-disable-line


injectIntl = injectIntlDefault; // eslint-disable-line

intlShape = intlShapeDefault; // eslint-disable-line
} catch (er) {
injectIntl = null;
intlShape = null;
}
/**
* This component is automatically used when using `<Toggle />`
* If you need a different option tag, instead just pass the prop `optionTag` to the `<Toggle />` component.
*/


var ToggleOption = function ToggleOption(_ref) {
var Tag = _ref.tag,
value = _ref.value,
message = _ref.message,
intl = _ref.intl,
rest = _objectWithoutProperties(_ref, ["tag", "value", "message", "intl"]);

return _react.default.createElement(Tag, _extends({
value: value
}, rest), message && intl ? intl.formatMessage(message) : value);
};

ToggleOption.defaultProps = {
tag: _Option.default
};
/* eslint-disable react/require-default-props */

ToggleOption.propTypes = {
/**
* Replace the default component tag by the one specified. Can be:
*/
tag: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.element, _propTypes.default.func, _propTypes.default.object]),

/**
* The value
*/
value: _propTypes.default.string.isRequired,

/**
* react-intl messages (optional)
*/
message: _propTypes.default.object
};
var exported = ToggleOption; // eslint-disable-line import/no-mutable-exports

if (intlShape) {
/** @ignore */
ToggleOption.propTypes.intl = intlShape.isRequired;
exported = injectIntl(ToggleOption);
}

var _default = exported;
exports.default = _default;
module.exports = exports["default"];
106 changes: 106 additions & 0 deletions lib/components/Toggle/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(require("react"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var _Option = _interopRequireDefault(require("@bootstrap-styled/v4/lib/Option"));

var _Input = _interopRequireDefault(require("@bootstrap-styled/v4/lib/Input"));

var _ToggleOption = _interopRequireDefault(require("./ToggleOption"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function Toggle(props) {
var Tag = props.tag,
OptionTag = props.optionTag,
defaultLabel = props.defaultLabel,
className = props.className,
onToggle = props.onToggle,
value = props.value,
values = props.values,
messages = props.messages,
rest = _objectWithoutProperties(props, ["tag", "optionTag", "defaultLabel", "className", "onToggle", "value", "values", "messages"]); // If we have items, render them


var content = !values.length ? _react.default.createElement(_Option.default, null, defaultLabel) : values.map(function (v) {
return _react.default.createElement(OptionTag, {
key: v,
value: v,
message: messages[v]
});
});
return _react.default.createElement(Tag, _extends({
type: "select",
name: "select",
value: value,
onChange: onToggle,
className: className
}, rest), content);
}

Toggle.defaultProps = {
tag: _Input.default,
optionTag: _ToggleOption.default,
defaultLabel: '--',
messages: {},
value: '',
values: [],
onToggle: function onToggle() {}
};
/* eslint-disable react/require-default-props */

Toggle.propTypes = {
/**
* Replace the default component tag by the one specified. Can be:
*/
tag: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.element, _propTypes.default.object, _propTypes.default.func]),

/**
* Replace the option component tag by the one specified. Can be:
*/
optionTag: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.element, _propTypes.default.object, _propTypes.default.func]),

/**
* Trigger when toggle
*/
onToggle: _propTypes.default.func,

/**
* Label used by default when no selection
*/
defaultLabel: _propTypes.default.string,

/**
* List of all possible values
*/
values: _propTypes.default.array,

/**
* Current value
*/
value: _propTypes.default.string,

/** @ignore */
className: _propTypes.default.string,

/** react-intl messages (optional) */
messages: _propTypes.default.object
};
/* eslint-enable react/require-default-props */

var _default = Toggle;
exports.default = _default;
module.exports = exports["default"];
42 changes: 42 additions & 0 deletions lib/components/Toggle/tests/ToggleOption.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
"use strict";

var _react = _interopRequireDefault(require("react"));

var _enzyme = require("enzyme");

var _reactIntl = require("react-intl");

var _ToggleOption = _interopRequireDefault(require("../ToggleOption"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/* eslint-disable function-paren-newline */
describe('<ToggleOption />', function () {
it('should render default language messages', function () {
var defaultEnMessage = 'someContent';
var message = (0, _reactIntl.defineMessages)({
enMessage: {
id: 'boilerplate.containers.LocaleToggle.en',
defaultMessage: defaultEnMessage
}
});
var renderedComponent = (0, _enzyme.shallow)(_react.default.createElement(_reactIntl.IntlProvider, {
locale: "en"
}, _react.default.createElement(_ToggleOption.default, {
value: "en",
message: message.enMessage
})));
expect(renderedComponent.contains(_react.default.createElement(_ToggleOption.default, {
value: "en",
message: message.enMessage
}))).toBe(true);
});
it('should display `value`(two letter language code) when `message` is absent', function () {
var renderedComponent = (0, _enzyme.mount)(_react.default.createElement(_reactIntl.IntlProvider, {
locale: "de"
}, _react.default.createElement(_ToggleOption.default, {
value: "de"
})));
expect(renderedComponent.text()).toBe('de');
});
});
54 changes: 54 additions & 0 deletions lib/components/Toggle/tests/index.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
"use strict";

var _react = _interopRequireDefault(require("react"));

var _enzyme = require("enzyme");

var _reactIntl = require("react-intl");

var _Option = _interopRequireDefault(require("@bootstrap-styled/v4/lib/Option"));

var _index = _interopRequireDefault(require("../index"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/* eslint-disable function-paren-newline */
describe('<Toggle />', function () {
it('should contain default text', function () {
var defaultEnMessage = 'someContent';
var defaultDeMessage = 'someOtherContent';
var messages = (0, _reactIntl.defineMessages)({
en: {
id: 'boilerplate.containers.LocaleToggle.en',
defaultMessage: defaultEnMessage
},
de: {
id: 'boilerplate.containers.LocaleToggle.en',
defaultMessage: defaultDeMessage
}
});
var renderedComponent = (0, _enzyme.shallow)(_react.default.createElement(_reactIntl.IntlProvider, {
locale: "en"
}, _react.default.createElement(_index.default, {
values: ['en', 'de'],
messages: messages
})));
expect(renderedComponent.contains(_react.default.createElement(_index.default, {
values: ['en', 'de'],
messages: messages
}))).toBe(true);
expect(renderedComponent.find('option').length).toBe(0);
});
it('should not have ToggleOptions if props.values is not defined', function () {
var renderedComponent = (0, _enzyme.shallow)(_react.default.createElement(_index.default, null));
expect(renderedComponent.contains(_react.default.createElement(_Option.default, null, "--"))).toBe(true);
expect(renderedComponent.find('Option').length).toBe(1);
});
it('should have ToggleOptions if props.values is defined', function () {
var renderedComponent = (0, _enzyme.shallow)(_react.default.createElement(_index.default, {
value: "a",
values: ['a', 'b']
}));
expect(renderedComponent.find('InjectIntl(ToggleOption)').length).toBe(2);
});
});
23 changes: 23 additions & 0 deletions lib/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function get() {
return _Toggle.default;
}
});
Object.defineProperty(exports, "ToggleOption", {
enumerable: true,
get: function get() {
return _ToggleOption.default;
}
});

var _Toggle = _interopRequireDefault(require("./components/Toggle"));

var _ToggleOption = _interopRequireDefault(require("./components/Toggle/ToggleOption"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11 changes: 11 additions & 0 deletions lib/tests/index.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
"use strict";

var exported = require('../index');

describe('should export', function () {
Object.keys(exported).forEach(function (key) {
it("".concat(key, " should be defined"), function () {
expect(exported[key]).toBeDefined();
});
});
});
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bootstrap-styled/toggle",
"version": "1.0.10",
"version": "1.1.0",
"description": "Toggle option made with bootstrap and optionaly use react-intl or any other ui component",
"main": "lib/index.js",
"jsnext:main": "dist/@bootstrap-styled/toggle.es.js",
Expand Down

0 comments on commit e46b315

Please sign in to comment.