mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-08 02:24:11 +00:00
60 lines
1.5 KiB
TypeScript
60 lines
1.5 KiB
TypeScript
import { PaginationOptions } from "../../shared/pagination-options.model";
|
|
import { SortOptions } from "../../shared/sort-options.model";
|
|
import {
|
|
ItemFindMultipleAction,
|
|
ItemFindMultipleActionTypes
|
|
} from "./item-find-multiple.actions";
|
|
|
|
export interface ItemFindMultipleState {
|
|
scopeID: string;
|
|
itemUUIDs: Array<String>;
|
|
isLoading: boolean;
|
|
errorMessage: string;
|
|
paginationOptions: PaginationOptions;
|
|
sortOptions: SortOptions;
|
|
}
|
|
|
|
const initialState: ItemFindMultipleState = {
|
|
scopeID: undefined,
|
|
itemUUIDs: [],
|
|
isLoading: false,
|
|
errorMessage: undefined,
|
|
paginationOptions: undefined,
|
|
sortOptions: undefined
|
|
};
|
|
|
|
export const findMultipleReducer = (state = initialState, action: ItemFindMultipleAction): ItemFindMultipleState => {
|
|
switch (action.type) {
|
|
|
|
case ItemFindMultipleActionTypes.FIND_MULTI_REQUEST: {
|
|
return Object.assign({}, state, {
|
|
scopeID: action.payload.scopeID,
|
|
itemUUIDs: [],
|
|
isLoading: true,
|
|
errorMessage: undefined,
|
|
paginationOptions: action.payload.paginationOptions,
|
|
sortOptions: action.payload.sortOptions
|
|
});
|
|
}
|
|
|
|
case ItemFindMultipleActionTypes.FIND_MULTI_SUCCESS: {
|
|
return Object.assign({}, state, {
|
|
isLoading: false,
|
|
itemUUIDs: action.payload,
|
|
errorMessage: undefined
|
|
});
|
|
}
|
|
|
|
case ItemFindMultipleActionTypes.FIND_MULTI_ERROR: {
|
|
return Object.assign({}, state, {
|
|
isLoading: false,
|
|
errorMessage: action.payload
|
|
});
|
|
}
|
|
|
|
default: {
|
|
return state;
|
|
}
|
|
}
|
|
};
|