Redux store for recent items. BOD-178

This commit is contained in:
Patrick Fic
2020-06-26 08:10:00 -07:00
parent ea77478b02
commit 82ee83c43b
6 changed files with 45 additions and 8 deletions

View File

@@ -28,3 +28,8 @@ export const scheduleLoadFailure = (error) => ({
type: ApplicationActionTypes.CALCULATE_SCHEDULE_LOAD_FAILURE,
payload: error,
});
export const addRecentItem = (item) => ({
type: ApplicationActionTypes.ADD_RECENT_ITEM,
payload: item,
});

View File

@@ -3,6 +3,7 @@ import ApplicationActionTypes from "./application.types";
const INITIAL_STATE = {
loading: false,
breadcrumbs: [],
recentItems: [],
scheduleLoad: {
load: {},
calculating: false,
@@ -12,6 +13,11 @@ const INITIAL_STATE = {
const applicationReducer = (state = INITIAL_STATE, action) => {
switch (action.type) {
case ApplicationActionTypes.ADD_RECENT_ITEM:
return {
...state,
recentItems: [action.payload, ...state.scheduleLoad.slice(0, 9)],
};
case ApplicationActionTypes.SET_BREAD_CRUMBS:
return {
...state,

View File

@@ -12,6 +12,11 @@ export const selectBreadcrumbs = createSelector(
(application) => application.breadcrumbs
);
export const selectRecentItems = createSelector(
[selectApplication],
(application) => application.recentItems
);
export const selectScheduleLoad = createSelector(
[selectApplication],
(application) => application.scheduleLoad.load

View File

@@ -5,5 +5,6 @@ const ApplicationActionTypes = {
CALCULATE_SCHEDULE_LOAD: "CALCULATE_SCHEDULE_LOAD",
CALCULATE_SCHEDULE_LOAD_SUCCESS: "CALCULATE_SCHEDULE_LOAD_SUCCESS",
CALCULATE_SCHEDULE_LOAD_FAILURE: "CALCULATE_SCHEDULE_LOAD_FAILURE",
ADD_RECENT_ITEM: "ADD_RECENT_ITEM",
};
export default ApplicationActionTypes;