Files
imexrps/src/redux/application/application.reducer.js
2020-10-27 10:21:55 -07:00

75 lines
2.3 KiB
JavaScript

import ipcTypes from "../../ipc.types";
import ApplicationActionTypes from "./application.types";
const INITIAL_STATE = {
watcherStatus: "Not Started",
watchedPaths: [],
watcherError: null,
selectedJobId: null,
selectedJobTargetPc: 0,
settings: {},
updateAvailable: false,
updateProgress: null,
};
const { ipcRenderer } = window;
const applicationReducer = (state = INITIAL_STATE, action) => {
switch (action.type) {
case ApplicationActionTypes.SET_WATCHED_PATHS:
return {
...state,
watchedPaths: action.payload,
};
case ApplicationActionTypes.ADD_WATCHED_PATH:
ipcRenderer.send(ipcTypes.default.app.toMain.track, {
event: "ADD_WATCHED_PATH",
});
return {
...state,
watchedPaths: [...state.watchedPaths, action.payload],
};
case ApplicationActionTypes.REMOVE_WATCHED_PATH:
ipcRenderer.send(ipcTypes.default.app.toMain.track, {
event: "REMOVE_WATCHED_PATH",
});
return {
...state,
watchedPaths: state.watchedPaths.filter((p) => p !== action.payload),
};
case ApplicationActionTypes.SET_WATCHER_STATUS:
return {
...state,
watcherStatus: action.payload,
};
case ApplicationActionTypes.SET_WATCHER_ERROR:
ipcRenderer.send(ipcTypes.default.app.toMain.track, {
event: "WATCHER_ERROR",
error: action.payload,
});
return {
...state,
watcherError: action.payload,
};
case ApplicationActionTypes.SET_SELECTED_JOB_TARGET_PC_SUCCESS:
return {
...state,
selectedJobTargetPc: action.payload,
};
case ApplicationActionTypes.SET_SELECTED_JOB_ID:
ipcRenderer.send(ipcTypes.default.app.toMain.track, {
event: "SET_SELECTED_JOB",
});
return { ...state, selectedJobId: action.payload };
case ApplicationActionTypes.SET_SETTINGS:
return { ...state, settings: { ...state.settings, ...action.payload } };
case ApplicationActionTypes.SET_UPDATE_AVAILABLE:
return { ...state, updateAvailable: action.payload };
case ApplicationActionTypes.SET_UPDATE_PROGRESS:
return { ...state, updateProgress: action.payload };
default:
return state;
}
};
export default applicationReducer;