diff --git a/HISTORY.md b/HISTORY.md index d33d324..8351653 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,3 +1,7 @@ +## 0.4.4 + +* `CHANGED` pass other data item to Option + ## 0.4.0 * `CHANGED` adapt React 16 diff --git a/package.json b/package.json index aa791e5..cf82cd9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "uxcore-select-form-field", - "version": "0.4.3", + "version": "0.4.4", "description": "uxcore-select-form-field component for uxcore.", "repository": "https://github.com/uxcore/uxcore-select-form-field.git", "author": "eternalsky", diff --git a/src/SelectFormField.jsx b/src/SelectFormField.jsx index c514f3e..8934db9 100644 --- a/src/SelectFormField.jsx +++ b/src/SelectFormField.jsx @@ -38,9 +38,10 @@ class SelectFormField extends FormField { constructor(props) { super(props); const me = this; + const { jsxdata } = props; assign(me.state, { - data: processData(props.jsxdata), - prevPropsData: props.jsxdata, + data: processData(jsxdata), + prevPropsData: jsxdata, }); } @@ -131,18 +132,20 @@ class SelectFormField extends FormField { _generateOptionsFromData() { const me = this; const values = me.state.data; - const children = me.props.children; + const { children } = me.props; if (!values.length) { - // console.warn("You need to pass data to initialize Select."); if (children) { return children; } } - const arr = values.map(item => - (), - ); + const arr = values.map((item) => { + const { value, text, ...others } = item; + return ( + + ); + }); return arr; } @@ -152,11 +155,12 @@ class SelectFormField extends FormField { */ getFullData() { const { data, value } = this.state; - if(Array.isArray(value)) { - return value.map(selectItem => find(data, (item) => item.value === selectItem.key)); + if (Array.isArray(value)) { + return value.map(selectItem => find(data, item => item.value === selectItem.key)); } - return find(data, (item) => item.value === value); + return find(data, item => item.value === value); } + /** * transfer 'a' to { key: 'a' } * transfer ['a'] to [{ key: 'a' }] @@ -174,7 +178,7 @@ class SelectFormField extends FormField { return { key: newValue, }; - } else if (newValue instanceof Array) { + } if (newValue instanceof Array) { return newValue.map((item) => { if (typeof item === 'string') { return { @@ -248,9 +252,11 @@ class SelectFormField extends FormField { } /* eslint-disable no-underscore-dangle */ /* used in SearchFormField */ - arr.push(); + arr.push( + , + ); /* eslint-enable no-underscore-dangle */ } else if (mode === Constants.MODE.VIEW) { let str = ''; @@ -281,7 +287,11 @@ class SelectFormField extends FormField { }); } } - arr.push({str}); + arr.push( + + {str} + , + ); } return arr; } @@ -318,11 +328,10 @@ SelectFormField.defaultProps = assign({}, FormField.defaultProps, { searchDelay: 100, beforeFetch: obj => obj, afterFetch: obj => obj, - fitResponse: response => - ({ - content: response.content || response, - success: response.success === undefined ? true : response.success, - }), + fitResponse: response => ({ + content: response.content || response, + success: response.success === undefined ? true : response.success, + }), jsxshowSearch: true, jsxallowClear: false, jsxtags: false, diff --git a/src/util.js b/src/util.js index 5f75ce4..67ad41b 100644 --- a/src/util.js +++ b/src/util.js @@ -6,12 +6,10 @@ const processData = (data) => { let values = []; if (typeof data === 'object' && !(data instanceof Array)) { const keys = Object.keys(data); - values = keys.map(key => - ({ - value: key, - text: data[key], - }), - ); + values = keys.map(key => ({ + value: key, + text: data[key], + })); } else { values = data; }