Skip to content

Commit

Permalink
fix: keep in sync highlighted index when the option still exists but …
Browse files Browse the repository at this point in the history
…was moved
  • Loading branch information
Loïc Mangeonjean committed Mar 7, 2024
1 parent eb6e6a8 commit 541c3f6
Showing 1 changed file with 7 additions and 9 deletions.
16 changes: 7 additions & 9 deletions packages/mui-base/src/useAutocomplete/useAutocomplete.js
Original file line number Diff line number Diff line change
Expand Up @@ -478,7 +478,7 @@ export function useAutocomplete(props) {
},
);

const checkHighlightedOptionExists = () => {
const getPreviousHighlightedOptionIndex = () => {
const isSameValue = (value1, value2) => {
const label1 = value1 ? getOptionLabel(value1) : '';
const label2 = value2 ? getOptionLabel(value2) : '';
Expand All @@ -498,16 +498,12 @@ export function useAutocomplete(props) {
const previousHighlightedOption = previousProps.filteredOptions[highlightedIndexRef.current];

if (previousHighlightedOption) {
const previousHighlightedOptionExists = filteredOptions.some((option) => {
return findIndex(filteredOptions, (option) => {
return getOptionLabel(option) === getOptionLabel(previousHighlightedOption);
});

if (previousHighlightedOptionExists) {
return true;
}
}
}
return false;
return -1;
};

const syncHighlightedIndex = React.useCallback(() => {
Expand All @@ -516,8 +512,10 @@ export function useAutocomplete(props) {
}

// Check if the previously highlighted option still exists in the updated filtered options list and if the value and inputValue haven't changed
// If it exists and the value and the inputValue haven't changed, return, otherwise continue execution
if (checkHighlightedOptionExists()) {
// If it exists and the value and the inputValue haven't changed, just update its index, otherwise continue execution
const previousHighlightedOptionIndex = getPreviousHighlightedOptionIndex();
if (previousHighlightedOptionIndex !== -1) {
highlightedIndexRef.current = previousHighlightedOptionIndex;
return;
}

Expand Down

0 comments on commit 541c3f6

Please sign in to comment.