MCPcopy Create free account
hub / github.com/krasimir/react-in-patterns / updateOptions

Function updateOptions

code/higher-order-components/public/app.js:14506–14546  ·  view source on GitHub ↗
(node, multiple, propValue, setDefaultSelected)

Source from the content-addressed store, hash-verified

14504}
14505
14506function updateOptions(node, multiple, propValue, setDefaultSelected) {
14507 var options = node.options;
14508
14509 if (multiple) {
14510 var selectedValues = propValue;
14511 var selectedValue = {};
14512 for (var i = 0; i < selectedValues.length; i++) {
14513 // Prefix to avoid chaos with special keys.
14514 selectedValue['$' + selectedValues[i]] = true;
14515 }
14516 for (var _i = 0; _i < options.length; _i++) {
14517 var selected = selectedValue.hasOwnProperty('$' + options[_i].value);
14518 if (options[_i].selected !== selected) {
14519 options[_i].selected = selected;
14520 }
14521 if (selected && setDefaultSelected) {
14522 options[_i].defaultSelected = true;
14523 }
14524 }
14525 } else {
14526 // Do not set `select.value` as exact behavior isn't consistent across all
14527 // browsers for all cases.
14528 var _selectedValue = '' + propValue;
14529 var defaultSelected = null;
14530 for (var _i2 = 0; _i2 < options.length; _i2++) {
14531 if (options[_i2].value === _selectedValue) {
14532 options[_i2].selected = true;
14533 if (setDefaultSelected) {
14534 options[_i2].defaultSelected = true;
14535 }
14536 return;
14537 }
14538 if (defaultSelected === null && !options[_i2].disabled) {
14539 defaultSelected = options[_i2];
14540 }
14541 }
14542 if (defaultSelected !== null) {
14543 defaultSelected.selected = true;
14544 }
14545 }
14546}
14547
14548/**
14549 * Implements a <select> host component that allows optionally setting the

Callers 3

postMountWrapper$2Function · 0.70
postUpdateWrapperFunction · 0.70
restoreControlledState$2Function · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected