Skip to content
This repository was archived by the owner on Jul 23, 2021. It is now read-only.

Commit 006a88a

Browse files
[SelectWidget] Display pre-selected value when async options load. (#43)
* Bump @carecloud/material-cuil@0.17.0 * Bump version to 0.21.0
1 parent 3749cd4 commit 006a88a

File tree

3 files changed

+36
-28
lines changed

3 files changed

+36
-28
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@carecloud/react-jsonschema-form",
3-
"version": "0.20.2",
3+
"version": "0.21.0",
44
"description": "A simple React component capable of building HTML forms out of a JSON schema.",
55
"scripts": {
66
"build:readme": "toctoc README.md -w",
@@ -44,7 +44,7 @@
4444
"react-dom": "^16.2.0"
4545
},
4646
"dependencies": {
47-
"@carecloud/material-cuil": "0.16.1",
47+
"@carecloud/material-cuil": "0.17.0",
4848
"ajv": "^5.2.3",
4949
"babel-plugin-transform-react-jsx": "^6.24.1",
5050
"babel-plugin-transform-runtime": "^6.23.0",

src/components/widgets/SelectWidget.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,18 @@ class SelectWidget extends React.Component {
8080
});
8181
};
8282

83+
getValue = value => {
84+
// When the widget is configure to call an endpoint on page load, look through the options
85+
// in order to display a pre-selected value correctly
86+
if (this.async && value && value.value) {
87+
value = (this.state.options || []).find(option => option.value === value.value);
88+
}
89+
90+
// Return an empty string if the value is undefined, otherwise, the Select component would
91+
// become uncontrolled
92+
return value === undefined ? '' : value;
93+
};
94+
8395
render = () => {
8496
const {
8597
id,
@@ -106,7 +118,7 @@ class SelectWidget extends React.Component {
106118
placeholder: placeholder || label,
107119
name: id,
108120
disabled: disabled || readonly,
109-
value: typeof value === 'undefined' ? '' : value,
121+
value: this.getValue(value),
110122
};
111123

112124
if (this.async) {

yarn.lock

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -71,16 +71,16 @@
7171
lodash "^4.2.0"
7272
to-fast-properties "^2.0.0"
7373

74-
"@carecloud/material-cuil@0.16.1":
75-
version "0.16.1"
76-
resolved "https://npm.carecloud.com/@carecloud%2fmaterial-cuil/-/material-cuil-0.16.1.tgz#0199065414843108c02fa9f40f348c882a1fd1d7"
74+
"@carecloud/material-cuil@0.17.0":
75+
version "0.17.0"
76+
resolved "https://npm.carecloud.com/@carecloud%2fmaterial-cuil/-/material-cuil-0.17.0.tgz#8d5cc338f5be9677bf713e9846b24d18e4adbc24"
7777
dependencies:
7878
"@material-ui/icons" "1.0.0-beta.42"
7979
ag-grid "^15.0.0"
8080
ag-grid-enterprise "^15.0.0"
8181
ag-grid-react "^15.0.0"
8282
classnames "^2.2.5"
83-
material-ui "1.0.0-beta.41"
83+
material-ui "1.0.0-beta.42"
8484
moment "^2.20.1"
8585
prop-types "15.6.0"
8686
react-color "^2.13.8"
@@ -101,9 +101,9 @@
101101
dependencies:
102102
csstype "^1.6.0"
103103

104-
"@types/react-transition-group@^2.0.6":
105-
version "2.0.7"
106-
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-2.0.7.tgz#2847292d54c5685d982ae5a3ecb6960946689d87"
104+
"@types/react-transition-group@^2.0.8":
105+
version "2.0.8"
106+
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-2.0.8.tgz#1ea86f6d8288e4bba8d743317ba9cc61cdacc1ad"
107107
dependencies:
108108
"@types/react" "*"
109109

@@ -4151,12 +4151,12 @@ material-colors@^1.2.1:
41514151
version "1.2.5"
41524152
resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.5.tgz#5292593e6754cb1bcc2b98030e4e0d6a3afc9ea1"
41534153

4154-
material-ui@1.0.0-beta.41:
4155-
version "1.0.0-beta.41"
4156-
resolved "https://registry.yarnpkg.com/material-ui/-/material-ui-1.0.0-beta.41.tgz#0869bed008caa10003ab20ea726476b560c23160"
4154+
material-ui@1.0.0-beta.42:
4155+
version "1.0.0-beta.42"
4156+
resolved "https://registry.yarnpkg.com/material-ui/-/material-ui-1.0.0-beta.42.tgz#a0dea15fd433d521b41912802041eee8b3f30589"
41574157
dependencies:
41584158
"@types/jss" "^9.3.0"
4159-
"@types/react-transition-group" "^2.0.6"
4159+
"@types/react-transition-group" "^2.0.8"
41604160
babel-runtime "^6.26.0"
41614161
brcast "^3.0.1"
41624162
classnames "^2.2.5"
@@ -4176,8 +4176,8 @@ material-ui@1.0.0-beta.41:
41764176
prop-types "^15.6.0"
41774177
react-event-listener "^0.5.1"
41784178
react-jss "^8.1.0"
4179-
react-lifecycles-compat "^1.0.2"
4180-
react-popper "^0.8.0"
4179+
react-lifecycles-compat "^2.0.0"
4180+
react-popper "^0.10.0"
41814181
react-scrollbar-size "^2.0.2"
41824182
react-transition-group "^2.2.1"
41834183
recompose "^0.26.0"
@@ -4831,10 +4831,6 @@ pluralize@^7.0.0:
48314831
version "7.0.0"
48324832
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
48334833

4834-
popper.js@^1.12.9:
4835-
version "1.13.0"
4836-
resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.13.0.tgz#e1e7ff65cc43f7cf9cf16f1510a75e81f84f4565"
4837-
48384834
popper.js@^1.14.1:
48394835
version "1.14.3"
48404836
resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.3.tgz#1438f98d046acf7b4d78cd502bf418ac64d4f095"
@@ -5346,20 +5342,20 @@ react-jss@^8.1.0:
53465342
prop-types "^15.6.0"
53475343
theming "^1.3.0"
53485344

5349-
react-lifecycles-compat@^1.0.2:
5350-
version "1.0.2"
5351-
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-1.0.2.tgz#551d8b1d156346e5fcf30ffac9b32ce3f78b8850"
5345+
react-lifecycles-compat@^2.0.0:
5346+
version "2.0.2"
5347+
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-2.0.2.tgz#00a23160eec17a43b94dd74f95d44a1a2c3c5ec1"
53525348

53535349
react-onclickoutside@^6.7.1:
53545350
version "6.7.1"
53555351
resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.7.1.tgz#6a5b5b8b4eae6b776259712c89c8a2b36b17be93"
53565352

5357-
react-popper@^0.8.0:
5358-
version "0.8.2"
5359-
resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-0.8.2.tgz#092095ff13933211d3856d9f325511ec3a42f12c"
5353+
react-popper@^0.10.0:
5354+
version "0.10.1"
5355+
resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-0.10.1.tgz#6a1f2595faffda77105bed4e89ecf22607a4c452"
53605356
dependencies:
5361-
popper.js "^1.12.9"
5362-
prop-types "^15.6.0"
5357+
popper.js "^1.14.1"
5358+
prop-types "^15.6.1"
53635359

53645360
react-popper@^0.9.1:
53655361
version "0.9.5"

0 commit comments

Comments
 (0)