Home / Function/ updateOptions() — react Function Reference

updateOptions() — react Function Reference

Architecture documentation for the updateOptions() function in ReactDOMSelect.js from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  5a4d9c64_cfda_e369_9d26_73216acb4de1["updateOptions()"]
  45a4825c_28bb_dfd1_ecd2_0adf3836cafc["ReactDOMSelect.js"]
  5a4d9c64_cfda_e369_9d26_73216acb4de1 -->|defined in| 45a4825c_28bb_dfd1_ecd2_0adf3836cafc
  b1ff4c46_04e6_a98d_f699_7501486d125f["initSelect()"]
  b1ff4c46_04e6_a98d_f699_7501486d125f -->|calls| 5a4d9c64_cfda_e369_9d26_73216acb4de1
  3d545c01_fa5f_dc3a_a833_471614f78441["updateSelect()"]
  3d545c01_fa5f_dc3a_a833_471614f78441 -->|calls| 5a4d9c64_cfda_e369_9d26_73216acb4de1
  0a457bc2_7367_4026_f6c7_1787c9327604["restoreControlledSelectState()"]
  0a457bc2_7367_4026_f6c7_1787c9327604 -->|calls| 5a4d9c64_cfda_e369_9d26_73216acb4de1
  14e1dad9_019e_0b6b_45f9_989dc6db3084["toString()"]
  5a4d9c64_cfda_e369_9d26_73216acb4de1 -->|calls| 14e1dad9_019e_0b6b_45f9_989dc6db3084
  7404ee30_0cd4_7886_2806_324f301962c4["getToStringValue()"]
  5a4d9c64_cfda_e369_9d26_73216acb4de1 -->|calls| 7404ee30_0cd4_7886_2806_324f301962c4
  style 5a4d9c64_cfda_e369_9d26_73216acb4de1 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/react-dom-bindings/src/client/ReactDOMSelect.js lines 63–108

function updateOptions(
  node: HTMLSelectElement,
  multiple: boolean,
  propValue: any,
  setDefaultSelected: boolean,
) {
  const options: HTMLOptionsCollection = node.options;

  if (multiple) {
    const selectedValues = (propValue: Array<string>);
    const selectedValue: {[string]: boolean} = {};
    for (let i = 0; i < selectedValues.length; i++) {
      // Prefix to avoid chaos with special keys.
      selectedValue['$' + selectedValues[i]] = true;
    }
    for (let i = 0; i < options.length; i++) {
      const selected = selectedValue.hasOwnProperty('$' + options[i].value);
      if (options[i].selected !== selected) {
        options[i].selected = selected;
      }
      if (selected && setDefaultSelected) {
        options[i].defaultSelected = true;
      }
    }
  } else {
    // Do not set `select.value` as exact behavior isn't consistent across all
    // browsers for all cases.
    const selectedValue = toString(getToStringValue(propValue));
    let defaultSelected = null;
    for (let i = 0; i < options.length; i++) {
      if (options[i].value === selectedValue) {
        options[i].selected = true;
        if (setDefaultSelected) {
          options[i].defaultSelected = true;
        }
        return;
      }
      if (defaultSelected === null && !options[i].disabled) {
        defaultSelected = options[i];
      }
    }
    if (defaultSelected !== null) {
      defaultSelected.selected = true;
    }
  }
}

Domain

Subdomains

Frequently Asked Questions

What does updateOptions() do?
updateOptions() is a function in the react codebase, defined in packages/react-dom-bindings/src/client/ReactDOMSelect.js.
Where is updateOptions() defined?
updateOptions() is defined in packages/react-dom-bindings/src/client/ReactDOMSelect.js at line 63.
What does updateOptions() call?
updateOptions() calls 2 function(s): getToStringValue, toString.
What calls updateOptions()?
updateOptions() is called by 3 function(s): initSelect, restoreControlledSelectState, updateSelect.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free