@spartacus/core
Version:
Spartacus - the core framework
29 lines • 4.4 kB
JavaScript
import { ANONYMOUS_CONSENT_STATUS, } from '../../../model/consent.model';
import { AnonymousConsentsActions } from '../actions/index';
export const initialState = [];
export function toggleConsentStatus(consents, templateCode, status) {
if (!consents) {
return [];
}
return consents.map((consent) => {
if (consent.templateCode === templateCode) {
consent = Object.assign(Object.assign({}, consent), { consentState: status });
}
return consent;
});
}
export function reducer(state = initialState, action) {
switch (action.type) {
case AnonymousConsentsActions.GIVE_ANONYMOUS_CONSENT: {
return toggleConsentStatus(state, action.templateCode, ANONYMOUS_CONSENT_STATUS.GIVEN);
}
case AnonymousConsentsActions.WITHDRAW_ANONYMOUS_CONSENT: {
return toggleConsentStatus(state, action.templateCode, ANONYMOUS_CONSENT_STATUS.WITHDRAWN);
}
case AnonymousConsentsActions.SET_ANONYMOUS_CONSENTS: {
return action.payload;
}
}
return state;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5vbnltb3VzLWNvbnNlbnRzLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9hbm9ueW1vdXMtY29uc2VudHMvc3RvcmUvcmVkdWNlcnMvYW5vbnltb3VzLWNvbnNlbnRzLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHdCQUF3QixHQUN6QixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBdUIsRUFBRSxDQUFDO0FBRW5ELE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsUUFBNEIsRUFDNUIsWUFBb0IsRUFDcEIsTUFBZ0M7SUFFaEMsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNiLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUM5QixJQUFJLE9BQU8sQ0FBQyxZQUFZLEtBQUssWUFBWSxFQUFFO1lBQ3pDLE9BQU8sbUNBQ0YsT0FBTyxLQUNWLFlBQVksRUFBRSxNQUFNLEdBQ3JCLENBQUM7U0FDSDtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQ3JCLEtBQUssR0FBRyxZQUFZLEVBQ3BCLE1BQXlEO0lBRXpELFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNuQixLQUFLLHdCQUF3QixDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDcEQsT0FBTyxtQkFBbUIsQ0FDeEIsS0FBSyxFQUNMLE1BQU0sQ0FBQyxZQUFZLEVBQ25CLHdCQUF3QixDQUFDLEtBQUssQ0FDL0IsQ0FBQztTQUNIO1FBRUQsS0FBSyx3QkFBd0IsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sbUJBQW1CLENBQ3hCLEtBQUssRUFDTCxNQUFNLENBQUMsWUFBWSxFQUNuQix3QkFBd0IsQ0FBQyxTQUFTLENBQ25DLENBQUM7U0FDSDtRQUVELEtBQUssd0JBQXdCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUNwRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDdkI7S0FDRjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFub255bW91c0NvbnNlbnQsXG4gIEFOT05ZTU9VU19DT05TRU5UX1NUQVRVUyxcbn0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvY29uc2VudC5tb2RlbCc7XG5pbXBvcnQgeyBBbm9ueW1vdXNDb25zZW50c0FjdGlvbnMgfSBmcm9tICcuLi9hY3Rpb25zL2luZGV4JztcblxuZXhwb3J0IGNvbnN0IGluaXRpYWxTdGF0ZTogQW5vbnltb3VzQ29uc2VudFtdID0gW107XG5cbmV4cG9ydCBmdW5jdGlvbiB0b2dnbGVDb25zZW50U3RhdHVzKFxuICBjb25zZW50czogQW5vbnltb3VzQ29uc2VudFtdLFxuICB0ZW1wbGF0ZUNvZGU6IHN0cmluZyxcbiAgc3RhdHVzOiBBTk9OWU1PVVNfQ09OU0VOVF9TVEFUVVNcbik6IEFub255bW91c0NvbnNlbnRbXSB7XG4gIGlmICghY29uc2VudHMpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICByZXR1cm4gY29uc2VudHMubWFwKChjb25zZW50KSA9PiB7XG4gICAgaWYgKGNvbnNlbnQudGVtcGxhdGVDb2RlID09PSB0ZW1wbGF0ZUNvZGUpIHtcbiAgICAgIGNvbnNlbnQgPSB7XG4gICAgICAgIC4uLmNvbnNlbnQsXG4gICAgICAgIGNvbnNlbnRTdGF0ZTogc3RhdHVzLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnNlbnQ7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlcihcbiAgc3RhdGUgPSBpbml0aWFsU3RhdGUsXG4gIGFjdGlvbjogQW5vbnltb3VzQ29uc2VudHNBY3Rpb25zLkFub255bW91c0NvbnNlbnRzQWN0aW9uc1xuKTogQW5vbnltb3VzQ29uc2VudFtdIHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgQW5vbnltb3VzQ29uc2VudHNBY3Rpb25zLkdJVkVfQU5PTllNT1VTX0NPTlNFTlQ6IHtcbiAgICAgIHJldHVybiB0b2dnbGVDb25zZW50U3RhdHVzKFxuICAgICAgICBzdGF0ZSxcbiAgICAgICAgYWN0aW9uLnRlbXBsYXRlQ29kZSxcbiAgICAgICAgQU5PTllNT1VTX0NPTlNFTlRfU1RBVFVTLkdJVkVOXG4gICAgICApO1xuICAgIH1cblxuICAgIGNhc2UgQW5vbnltb3VzQ29uc2VudHNBY3Rpb25zLldJVEhEUkFXX0FOT05ZTU9VU19DT05TRU5UOiB7XG4gICAgICByZXR1cm4gdG9nZ2xlQ29uc2VudFN0YXR1cyhcbiAgICAgICAgc3RhdGUsXG4gICAgICAgIGFjdGlvbi50ZW1wbGF0ZUNvZGUsXG4gICAgICAgIEFOT05ZTU9VU19DT05TRU5UX1NUQVRVUy5XSVRIRFJBV05cbiAgICAgICk7XG4gICAgfVxuXG4gICAgY2FzZSBBbm9ueW1vdXNDb25zZW50c0FjdGlvbnMuU0VUX0FOT05ZTU9VU19DT05TRU5UUzoge1xuICAgICAgcmV0dXJuIGFjdGlvbi5wYXlsb2FkO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn1cbiJdfQ==