FrontPastel/node_modules/@mui/base/node/useTabsList/tabsListReducer.js

37 lines
1.2 KiB
JavaScript
Raw Normal View History

2024-04-17 13:55:11 +00:00
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.tabsListReducer = tabsListReducer;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _useList = require("../useList");
var _useTabsList = require("./useTabsList.types");
function tabsListReducer(state, action) {
if (action.type === _useTabsList.TabsListActionTypes.valueChange) {
return (0, _extends2.default)({}, state, {
highlightedValue: action.value
});
}
const newState = (0, _useList.listReducer)(state, action);
const {
context: {
selectionFollowsFocus
}
} = action;
if (action.type === _useList.ListActionTypes.itemsChange) {
if (newState.selectedValues.length > 0) {
return (0, _extends2.default)({}, newState, {
highlightedValue: newState.selectedValues[0]
});
}
(0, _useList.moveHighlight)(null, 'reset', action.context);
}
if (selectionFollowsFocus && newState.highlightedValue != null) {
return (0, _extends2.default)({}, newState, {
selectedValues: [newState.highlightedValue]
});
}
return newState;
}