@spartacus/core
Version:
Spartacus - the core framework
35 lines • 5.25 kB
JavaScript
import { SiteContextActions } from '../actions/index';
export const initialState = {
entities: null,
details: {},
activeSite: '',
};
export function reducer(state = initialState, action) {
switch (action.type) {
case SiteContextActions.LOAD_BASE_SITE_SUCCESS: {
return Object.assign(Object.assign({}, state), { details: action.payload });
}
case SiteContextActions.SET_ACTIVE_BASE_SITE: {
// if active base site is updated,
// the active base site details data should also be updated
let details = {};
if (state.entities) {
details = state.entities[action.payload];
}
return Object.assign(Object.assign({}, state), { details, activeSite: action.payload });
}
case SiteContextActions.LOAD_BASE_SITES_SUCCESS: {
const sites = action.payload;
const entities = sites.reduce((siteEntities, site) => {
return Object.assign(Object.assign({}, siteEntities), { [site.uid]: site });
}, Object.assign({}, state.entities));
// after base sites entities are populated,
// the active base site details data is also populated
const details = entities[state.activeSite];
return Object.assign(Object.assign({}, state), { details,
entities });
}
}
return state;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zaXRlLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9zaXRlLWNvbnRleHQvc3RvcmUvcmVkdWNlcnMvYmFzZS1zaXRlLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHdEQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFrQjtJQUN6QyxRQUFRLEVBQUUsSUFBSTtJQUNkLE9BQU8sRUFBRSxFQUFFO0lBQ1gsVUFBVSxFQUFFLEVBQUU7Q0FDZixDQUFDO0FBRUYsTUFBTSxVQUFVLE9BQU8sQ0FDckIsS0FBSyxHQUFHLFlBQVksRUFDcEIsTUFBeUM7SUFFekMsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ25CLEtBQUssa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUM5Qyx1Q0FDSyxLQUFLLEtBQ1IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQ3ZCO1NBQ0g7UUFFRCxLQUFLLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDNUMsa0NBQWtDO1lBQ2xDLDJEQUEyRDtZQUMzRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDakIsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO2dCQUNsQixPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDMUM7WUFDRCx1Q0FDSyxLQUFLLEtBQ1IsT0FBTyxFQUNQLFVBQVUsRUFBRSxNQUFNLENBQUMsT0FBTyxJQUMxQjtTQUNIO1FBRUQsS0FBSyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQy9DLE1BQU0sS0FBSyxHQUFlLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDekMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDM0IsQ0FBQyxZQUF5QyxFQUFFLElBQWMsRUFBRSxFQUFFO2dCQUM1RCx1Q0FDSyxZQUFZLEtBQ2YsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUNoQjtZQUNKLENBQUMsb0JBRUksS0FBSyxDQUFDLFFBQVEsRUFFcEIsQ0FBQztZQUNGLDJDQUEyQztZQUMzQyxzREFBc0Q7WUFDdEQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUUzQyx1Q0FDSyxLQUFLLEtBQ1IsT0FBTztnQkFDUCxRQUFRLElBQ1I7U0FDSDtLQUNGO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVNpdGUgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9taXNjLm1vZGVsJztcbmltcG9ydCB7IFNpdGVDb250ZXh0QWN0aW9ucyB9IGZyb20gJy4uL2FjdGlvbnMvaW5kZXgnO1xuaW1wb3J0IHsgQmFzZVNpdGVTdGF0ZSB9IGZyb20gJy4uL3N0YXRlJztcblxuZXhwb3J0IGNvbnN0IGluaXRpYWxTdGF0ZTogQmFzZVNpdGVTdGF0ZSA9IHtcbiAgZW50aXRpZXM6IG51bGwsXG4gIGRldGFpbHM6IHt9LFxuICBhY3RpdmVTaXRlOiAnJyxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VyKFxuICBzdGF0ZSA9IGluaXRpYWxTdGF0ZSxcbiAgYWN0aW9uOiBTaXRlQ29udGV4dEFjdGlvbnMuQmFzZVNpdGVBY3Rpb25cbik6IEJhc2VTaXRlU3RhdGUge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSBTaXRlQ29udGV4dEFjdGlvbnMuTE9BRF9CQVNFX1NJVEVfU1VDQ0VTUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGRldGFpbHM6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIFNpdGVDb250ZXh0QWN0aW9ucy5TRVRfQUNUSVZFX0JBU0VfU0lURToge1xuICAgICAgLy8gaWYgYWN0aXZlIGJhc2Ugc2l0ZSBpcyB1cGRhdGVkLFxuICAgICAgLy8gdGhlIGFjdGl2ZSBiYXNlIHNpdGUgZGV0YWlscyBkYXRhIHNob3VsZCBhbHNvIGJlIHVwZGF0ZWRcbiAgICAgIGxldCBkZXRhaWxzID0ge307XG4gICAgICBpZiAoc3RhdGUuZW50aXRpZXMpIHtcbiAgICAgICAgZGV0YWlscyA9IHN0YXRlLmVudGl0aWVzW2FjdGlvbi5wYXlsb2FkXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBkZXRhaWxzLFxuICAgICAgICBhY3RpdmVTaXRlOiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBTaXRlQ29udGV4dEFjdGlvbnMuTE9BRF9CQVNFX1NJVEVTX1NVQ0NFU1M6IHtcbiAgICAgIGNvbnN0IHNpdGVzOiBCYXNlU2l0ZVtdID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBjb25zdCBlbnRpdGllcyA9IHNpdGVzLnJlZHVjZShcbiAgICAgICAgKHNpdGVFbnRpdGllczogeyBbdWlkOiBzdHJpbmddOiBCYXNlU2l0ZSB9LCBzaXRlOiBCYXNlU2l0ZSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5zaXRlRW50aXRpZXMsXG4gICAgICAgICAgICBbc2l0ZS51aWRdOiBzaXRlLFxuICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAuLi5zdGF0ZS5lbnRpdGllcyxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIC8vIGFmdGVyIGJhc2Ugc2l0ZXMgZW50aXRpZXMgYXJlIHBvcHVsYXRlZCxcbiAgICAgIC8vIHRoZSBhY3RpdmUgYmFzZSBzaXRlIGRldGFpbHMgZGF0YSBpcyBhbHNvIHBvcHVsYXRlZFxuICAgICAgY29uc3QgZGV0YWlscyA9IGVudGl0aWVzW3N0YXRlLmFjdGl2ZVNpdGVdO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZGV0YWlscyxcbiAgICAgICAgZW50aXRpZXMsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn1cbiJdfQ==