@rpg-engine/long-bow 0.5.54 → 0.5.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14801,39 +14801,32 @@ var Dropdown = function Dropdown(_ref) {
14801
14801
  width = _ref.width,
14802
14802
  onChange = _ref.onChange;
14803
14803
  var dropdownId = uuid.v4();
14804
- var _useState = React.useState(''),
14804
+ var firstOption = React.useMemo(function () {
14805
+ return options[0];
14806
+ }, [options]);
14807
+ var _useState = React.useState(firstOption ? firstOption.value : ''),
14805
14808
  selectedValue = _useState[0],
14806
14809
  setSelectedValue = _useState[1];
14807
- var _useState2 = React.useState(''),
14810
+ var _useState2 = React.useState(firstOption ? firstOption.option : ''),
14808
14811
  selectedOption = _useState2[0],
14809
14812
  setSelectedOption = _useState2[1];
14810
14813
  var _useState3 = React.useState(false),
14811
14814
  opened = _useState3[0],
14812
14815
  setOpened = _useState3[1];
14813
14816
  React.useEffect(function () {
14814
- var firstOption = options[0];
14815
- if (firstOption) {
14816
- var change = !selectedValue;
14817
- if (!change) {
14818
- change = options.filter(function (o) {
14819
- return o.value === selectedValue;
14820
- }).length < 1;
14821
- }
14822
- /**
14823
- * make a selection if there is no selected value already present
14824
- * or if there is a selected value but its not in new options
14825
- */
14826
- if (change) {
14827
- setSelectedValue(firstOption.value);
14828
- setSelectedOption(firstOption.option);
14829
- }
14817
+ var optionValues = new Set(options.map(function (option) {
14818
+ return option.value;
14819
+ }));
14820
+ if (!selectedValue || !optionValues.has(selectedValue)) {
14821
+ setSelectedValue(firstOption.value);
14822
+ setSelectedOption(firstOption.option);
14830
14823
  }
14831
- }, [options]);
14824
+ }, [firstOption, options, selectedValue]);
14832
14825
  React.useEffect(function () {
14833
14826
  if (selectedValue) {
14834
14827
  onChange(selectedValue);
14835
14828
  }
14836
- }, [selectedValue]);
14829
+ }, [selectedValue, onChange]);
14837
14830
  return React__default.createElement(Container$d, {
14838
14831
  onMouseLeave: function onMouseLeave() {
14839
14832
  return setOpened(false);