diff --git a/src/components/Toggle/ToggleOption.js b/src/components/Toggle/ToggleOption.js index cd13f28..4f1fedc 100644 --- a/src/components/Toggle/ToggleOption.js +++ b/src/components/Toggle/ToggleOption.js @@ -13,9 +13,9 @@ let intlShape; // this make react-intl optional to our component and our module try { - const reactIntl = require('react-intl'); // eslint-disable-line - injectIntl = reactIntl.injectIntl; // eslint-disable-line - intlShape = reactIntl.intlShape; // eslint-disable-line + const { injectIntl: injectIntlDefault, intlShape: intlShapeDefault } = require('react-intl'); // eslint-disable-line + injectIntl = injectIntlDefault; // eslint-disable-line + intlShape = intlShapeDefault; // eslint-disable-line } catch (er) { injectIntl = null; intlShape = null; @@ -30,8 +30,9 @@ const ToggleOption = ({ value, message, intl, + ...rest }) => ( - + {message && intl ? intl.formatMessage(message) : value} ); diff --git a/src/components/Toggle/index.js b/src/components/Toggle/index.js index e010489..4d04279 100644 --- a/src/components/Toggle/index.js +++ b/src/components/Toggle/index.js @@ -11,18 +11,30 @@ import Input from '@bootstrap-styled/v4/lib/Input'; import ToggleOption from './ToggleOption'; function Toggle(props) { - const { tag: Tag, optionTag: OptionTag, defaultLabel } = props; - let content = (); - + const { + tag: Tag, + optionTag: OptionTag, + defaultLabel, + className, + onToggle, + value, + values, + messages, + ...rest + } = props; // If we have items, render them - if (props.values) { - content = props.values.map((value) => ( - - )); - } - + const content = !values.length ? : values.map((v) => ( + + )); return ( - + {content} ); @@ -33,6 +45,9 @@ Toggle.defaultProps = { optionTag: ToggleOption, defaultLabel: '--', messages: {}, + value: '', + values: [], + onToggle: () => {}, }; /* eslint-disable react/require-default-props */ diff --git a/src/components/Toggle/index.md b/src/components/Toggle/index.md index feb402f..7902e6e 100644 --- a/src/components/Toggle/index.md +++ b/src/components/Toggle/index.md @@ -22,7 +22,7 @@ That will lock down the dependencies for the packages. That way npm install will look into npm-shrinkwrap.json before trying to install dependencies. -You can read more about it here [https://docs.npmjs.com/cli/shrinkwrap][1] +You can read more about it here https://docs.npmjs.com/cli/shrinkwrap [1]: https://docs.npmjs.com/cli/shrinkwrap diff --git a/src/components/Toggle/tests/index.test.js b/src/components/Toggle/tests/index.test.js index d90545c..d367941 100644 --- a/src/components/Toggle/tests/index.test.js +++ b/src/components/Toggle/tests/index.test.js @@ -33,4 +33,8 @@ describe('', () => { expect(renderedComponent.contains()).toBe(true); expect(renderedComponent.find('Option').length).toBe(1); }); + it('should have ToggleOptions if props.values is defined', () => { + const renderedComponent = shallow(); + expect(renderedComponent.find('InjectIntl(ToggleOption)').length).toBe(2); + }); });