From 47059baf99e16998cd6e311015c15d40227a6f4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ju=CC=88rg=20Langhard?= Date: Fri, 13 Apr 2018 11:06:33 +0200 Subject: [PATCH 1/4] Added maxItems feature. --- README.md | 15 +++++++++++++++ src/mui/input/EmbeddedArrayInput.js | 4 ++++ 2 files changed, 19 insertions(+) diff --git a/README.md b/README.md index e6c1b25..d639bd9 100644 --- a/README.md +++ b/README.md @@ -147,3 +147,18 @@ labelStyle: { ``` You can also pass `insertDividers` value as `true` or `false` to get the divider or not. Default value for `insertDividers` is true. + +### Limit list items + +There is a prop named `maxItems`: + +```jsx + + + + + + + + +``` \ No newline at end of file diff --git a/src/mui/input/EmbeddedArrayInput.js b/src/mui/input/EmbeddedArrayInput.js index 2de63cc..d8fe7f7 100644 --- a/src/mui/input/EmbeddedArrayInput.js +++ b/src/mui/input/EmbeddedArrayInput.js @@ -75,6 +75,7 @@ export class EmbeddedArrayInput extends Component { labelContainerStyle: PropTypes.object, labelStyle: PropTypes.object, insertDividers: PropTypes.bool, + maxItems: PropTypes.number }; static defaultProps = { @@ -182,8 +183,10 @@ export class EmbeddedArrayInput extends Component { actionsContainerStyle, innerContainerStyle, insertDividers, + maxItems, } = this.props; const createItem = () => items.push(); + const isMaxItemsReached = () => {if (maxItems && maxItems === items.length) return true}; return (
@@ -212,6 +215,7 @@ export class EmbeddedArrayInput extends Component { {allowAdd && !readOnly && !disabled && + !isMaxItemsReached() && } From 88edbc912d707f70b453569c1d049fc07bab8d85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ju=CC=88rg=20Langhard?= Date: Fri, 13 Apr 2018 11:25:05 +0200 Subject: [PATCH 2/4] Show max items count (optional) --- src/mui/input/EmbeddedArrayInput.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/mui/input/EmbeddedArrayInput.js b/src/mui/input/EmbeddedArrayInput.js index d8fe7f7..c6d20a5 100644 --- a/src/mui/input/EmbeddedArrayInput.js +++ b/src/mui/input/EmbeddedArrayInput.js @@ -75,7 +75,8 @@ export class EmbeddedArrayInput extends Component { labelContainerStyle: PropTypes.object, labelStyle: PropTypes.object, insertDividers: PropTypes.bool, - maxItems: PropTypes.number + maxItems: PropTypes.number, + maxItemsCount: PropTypes.bool, }; static defaultProps = { @@ -87,6 +88,7 @@ export class EmbeddedArrayInput extends Component { labelAdd: 'aor.input.embedded_array.add', labelRemove: 'aor.input.embedded_array.remove', insertDividers: true, + maxItemsCount: true, actionsContainerStyle: { clear: 'both', margin: '1em', @@ -184,9 +186,11 @@ export class EmbeddedArrayInput extends Component { innerContainerStyle, insertDividers, maxItems, + maxItemsCount, } = this.props; const createItem = () => items.push(); const isMaxItemsReached = () => {if (maxItems && maxItems === items.length) return true}; + const maxItemsCount = () => {if (maxItems && maxItemsCount) return ' ('+items.length+'/'+maxItems+')'}; return (
@@ -219,7 +223,7 @@ export class EmbeddedArrayInput extends Component { } - label={translate(labelAdd, { _: 'Add' })} + label={translate(labelAdd, { _: 'Add' })+maxItemsCount()} onClick={createItem} />}
From 5f959fee8fda523edf4a9982a8a6d036ecf318db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ju=CC=88rg=20Langhard?= Date: Fri, 13 Apr 2018 11:28:24 +0200 Subject: [PATCH 3/4] Fixed duplicate declaration "maxItemsCount --- src/mui/input/EmbeddedArrayInput.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mui/input/EmbeddedArrayInput.js b/src/mui/input/EmbeddedArrayInput.js index c6d20a5..8e1bc5c 100644 --- a/src/mui/input/EmbeddedArrayInput.js +++ b/src/mui/input/EmbeddedArrayInput.js @@ -190,7 +190,7 @@ export class EmbeddedArrayInput extends Component { } = this.props; const createItem = () => items.push(); const isMaxItemsReached = () => {if (maxItems && maxItems === items.length) return true}; - const maxItemsCount = () => {if (maxItems && maxItemsCount) return ' ('+items.length+'/'+maxItems+')'}; + const showMaxItemsCount = () => {if (maxItems && maxItemsCount) return ' ('+items.length+'/'+maxItems+')'}; return (
@@ -223,7 +223,7 @@ export class EmbeddedArrayInput extends Component { } - label={translate(labelAdd, { _: 'Add' })+maxItemsCount()} + label={translate(labelAdd, { _: 'Add' })+showMaxItemsCount()} onClick={createItem} />}
From 1c2b8289fa95941a17e56d263805b839ac724fdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ju=CC=88rg=20Langhard?= Date: Tue, 8 May 2018 10:17:36 +0200 Subject: [PATCH 4/4] Fixed count issue and cleanup --- src/mui/input/EmbeddedArrayInput.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mui/input/EmbeddedArrayInput.js b/src/mui/input/EmbeddedArrayInput.js index 8e1bc5c..1d89620 100644 --- a/src/mui/input/EmbeddedArrayInput.js +++ b/src/mui/input/EmbeddedArrayInput.js @@ -189,8 +189,8 @@ export class EmbeddedArrayInput extends Component { maxItemsCount, } = this.props; const createItem = () => items.push(); - const isMaxItemsReached = () => {if (maxItems && maxItems === items.length) return true}; - const showMaxItemsCount = () => {if (maxItems && maxItemsCount) return ' ('+items.length+'/'+maxItems+')'}; + const isMaxItemsReached = () => {return (maxItems && maxItems === items.length) ? true : false}; + const showMaxItemsCount = () => {return (maxItems && maxItemsCount) ? ' ('+items.length+'/'+maxItems+')' : '';} ; return (