mirror of https://github.com/lidarr/Lidarr
30 lines
942 B
JavaScript
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;
|