74 lines
1.8 KiB
TypeScript
74 lines
1.8 KiB
TypeScript
import {
|
|
AIRDCPP_SEARCH_IN_PROGRESS,
|
|
AIRDCPP_SEARCH_RESULTS_RECEIVED,
|
|
AIRDCPP_HUB_SEARCHES_SENT,
|
|
AIRDCPP_RESULT_DOWNLOAD_INITIATED,
|
|
AIRDCPP_DOWNLOAD_PROGRESS_TICK,
|
|
AIRDCPP_BUNDLES_FETCHED,
|
|
} from "../constants/action-types";
|
|
import { LOCATION_CHANGE } from "connected-react-router";
|
|
|
|
const initialState = {
|
|
searchResults: [],
|
|
isAirDCPPSearchInProgress: false,
|
|
searchInfo: null,
|
|
searchInstance: null,
|
|
downloadResult: null,
|
|
bundleDBImportResult: null,
|
|
bundles: [],
|
|
};
|
|
|
|
function airdcppReducer(state = initialState, action) {
|
|
switch (action.type) {
|
|
case AIRDCPP_SEARCH_RESULTS_RECEIVED:
|
|
return {
|
|
...state,
|
|
searchResults: [...state.searchResults, action.groupedResult],
|
|
isAirDCPPSearchInProgress: true,
|
|
};
|
|
case AIRDCPP_SEARCH_IN_PROGRESS:
|
|
return {
|
|
...state,
|
|
isAirDCPPSearchInProgress: true,
|
|
};
|
|
case AIRDCPP_HUB_SEARCHES_SENT:
|
|
return {
|
|
...state,
|
|
isAirDCPPSearchInProgress: false,
|
|
searchInfo: action.searchInfo,
|
|
searchInstance: action.instance,
|
|
};
|
|
case AIRDCPP_RESULT_DOWNLOAD_INITIATED:
|
|
return {
|
|
...state,
|
|
downloadResult: action.downloadResult,
|
|
bundleDBImportResult: action.bundleDBImportResult,
|
|
};
|
|
case AIRDCPP_DOWNLOAD_PROGRESS_TICK:
|
|
return {
|
|
...state,
|
|
downloadProgressData: action.downloadProgressData,
|
|
};
|
|
case AIRDCPP_BUNDLES_FETCHED:
|
|
return {
|
|
...state,
|
|
bundles: action.bundles,
|
|
};
|
|
case LOCATION_CHANGE:
|
|
return {
|
|
searchResults: [],
|
|
isAirDCPPSearchInProgress: false,
|
|
searchInfo: null,
|
|
searchInstance: null,
|
|
downloadResult: null,
|
|
bundleDBImportResult: null,
|
|
// bundles: [],
|
|
};
|
|
|
|
default:
|
|
return state;
|
|
}
|
|
}
|
|
|
|
export default airdcppReducer;
|