File "reducer.js"
Full Path: /home/tekvhqgl/public_html/dev2024_old_skip/wp-content/plugins/presto-player/src/admin/settings/store/reducer.js
File size: 1.01 KB
MIME-type: text/plain
Charset: utf-8
const { combineReducers } = wp.data;
const settingsReducer = (state = {}, action) => {
switch (action.type) {
case "SET_SETTINGS":
return action.settings;
case "UPDATE_SETTING":
return {
...state,
[`presto_player_${action.optionName}`]: {
...state[`presto_player_${action.optionName}`],
[action.name]: action.value,
},
};
}
return state;
};
const uiReducer = (state = { notices: [], saving: false }, action) => {
switch (action.type) {
case "SET_SAVING":
return {
...state,
saving: action.value,
};
case "SET_NOTICE":
return {
...state,
notices: [
...state.notices,
{ id: state.notices.length, ...action.notice },
],
};
case "REMOVE_NOTICE":
return {
...state,
notices: state.notices.filter((notice) => notice.id !== action.id),
};
}
return state;
};
export default combineReducers({
settingsReducer,
uiReducer,
});