Lidarr/frontend/src/Store/Reducers/Creators/createSetClientSideCollecti...

30 lines
942 B
JavaScript

import { sortDirections } from 'Helpers/Props';
import getSectionState from 'Utilities/State/getSectionState';
import updateSectionState from 'Utilities/State/updateSectionState';
function createSetClientSideCollectionSortReducer(section) {
return (state, { payload }) => {
const newState = getSectionState(state, section);
const sortKey = payload.sortKey || newState.sortKey;
let sortDirection = payload.sortDirection;
if (!sortDirection) {
if (payload.sortKey === newState.sortKey) {
sortDirection = newState.sortDirection === sortDirections.ASCENDING ?
sortDirections.DESCENDING :
sortDirections.ASCENDING;
} else {
sortDirection = newState.sortDirection;
}
}
newState.sortKey = sortKey;
newState.sortDirection = sortDirection;
return updateSectionState(state, section, newState);
};
}
export default createSetClientSideCollectionSortReducer;