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

Function updateOptions

code/one-direction-data-flow/public/app.js:14385–14425  ·  view source on GitHub ↗
(node, multiple, propValue, setDefaultSelected)

Source from the content-addressed store, hash-verified

14383}
14384
14385function updateOptions(node, multiple, propValue, setDefaultSelected) {
14386 var options = node.options;
14387
14388 if (multiple) {
14389 var selectedValues = propValue;
14390 var selectedValue = {};
14391 for (var i = 0; i < selectedValues.length; i++) {
14392 // Prefix to avoid chaos with special keys.
14393 selectedValue['$' + selectedValues[i]] = true;
14394 }
14395 for (var _i = 0; _i < options.length; _i++) {
14396 var selected = selectedValue.hasOwnProperty('$' + options[_i].value);
14397 if (options[_i].selected !== selected) {
14398 options[_i].selected = selected;
14399 }
14400 if (selected && setDefaultSelected) {
14401 options[_i].defaultSelected = true;
14402 }
14403 }
14404 } else {
14405 // Do not set `select.value` as exact behavior isn't consistent across all
14406 // browsers for all cases.
14407 var _selectedValue = '' + propValue;
14408 var defaultSelected = null;
14409 for (var _i2 = 0; _i2 < options.length; _i2++) {
14410 if (options[_i2].value === _selectedValue) {
14411 options[_i2].selected = true;
14412 if (setDefaultSelected) {
14413 options[_i2].defaultSelected = true;
14414 }
14415 return;
14416 }
14417 if (defaultSelected === null && !options[_i2].disabled) {
14418 defaultSelected = options[_i2];
14419 }
14420 }
14421 if (defaultSelected !== null) {
14422 defaultSelected.selected = true;
14423 }
14424 }
14425}
14426
14427/**
14428 * 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