You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
939 B
JavaScript
26 lines
939 B
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
import { listReducer, ListActionTypes, moveHighlight } from '../useList';
|
|
import { TabsListActionTypes } from './useTabsList.types';
|
|
export function tabsListReducer(state, action) {
|
|
if (action.type === TabsListActionTypes.valueChange) {
|
|
return _extends({}, state, {
|
|
highlightedValue: action.value
|
|
});
|
|
}
|
|
var newState = listReducer(state, action);
|
|
var selectionFollowsFocus = action.context.selectionFollowsFocus;
|
|
if (action.type === ListActionTypes.itemsChange) {
|
|
if (newState.selectedValues.length > 0) {
|
|
return _extends({}, newState, {
|
|
highlightedValue: newState.selectedValues[0]
|
|
});
|
|
}
|
|
moveHighlight(null, 'reset', action.context);
|
|
}
|
|
if (selectionFollowsFocus && newState.highlightedValue != null) {
|
|
return _extends({}, newState, {
|
|
selectedValues: [newState.highlightedValue]
|
|
});
|
|
}
|
|
return newState;
|
|
} |