stupa-pdf-api/frontend/node_modules/@mui/base/useTabsList/tabsListReducer.js

32 lines
874 B
JavaScript

import { listReducer, ListActionTypes, moveHighlight } from '../useList';
import { TabsListActionTypes } from './useTabsList.types';
export function tabsListReducer(state, action) {
if (action.type === TabsListActionTypes.valueChange) {
return {
...state,
highlightedValue: action.value
};
}
const newState = listReducer(state, action);
const {
context: {
selectionFollowsFocus
}
} = action;
if (action.type === ListActionTypes.itemsChange) {
if (newState.selectedValues.length > 0) {
return {
...newState,
highlightedValue: newState.selectedValues[0]
};
}
moveHighlight(null, 'reset', action.context);
}
if (selectionFollowsFocus && newState.highlightedValue != null) {
return {
...newState,
selectedValues: [newState.highlightedValue]
};
}
return newState;
}