Files
ukraine-timemap/src/reducers/ui.js
2018-12-04 16:52:07 +00:00

60 lines
1.4 KiB
JavaScript

import initial from '../store/initial.js';
import {
TOGGLE_FETCHING_DOMAIN,
TOGGLE_FETCHING_SOURCES,
TOGGLE_VIEW,
TOGGLE_TIMELINE,
TOGGLE_INFOPOPUP,
TOGGLE_NOTIFICATIONS
} from '../actions'
function toggleFetchingDomain(uiState, action) {
return Object.assign({}, uiState, {
flags: Object.assign({}, uiState.flags, {
isFetchingDomain: !uiState.flags.isFetchingDomain
})
});
}
function toggleFetchingSources(uiState, action) {
return Object.assign({}, uiState, {
flags: Object.assign({}, uiState.flags, {
isFetchingSources: !uiState.flags.isFetchingSources
})
});
}
function toggleInfoPopup(uiState, action) {
return Object.assign({}, uiState, {
flags: Object.assign({}, uiState.flags, {
isInfopopup: !uiState.flags.isInfopopup
})
});
}
function toggleNotifications(uiState, action) {
return Object.assign({}, uiState, {
flags: Object.assign({}, uiState.flags, {
isNotification: !uiState.flags.isNotification
})
});
}
function ui(uiState = initial.ui, action) {
switch (action.type) {
case TOGGLE_FETCHING_DOMAIN:
return toggleFetchingDomain(uiState, action);
case TOGGLE_FETCHING_SOURCES:
return toggleFetchingSources(uiState, action);
case TOGGLE_INFOPOPUP:
return toggleInfoPopup(uiState, action);
case TOGGLE_NOTIFICATIONS:
return toggleNotifications(uiState, action);
default:
return uiState;
}
}
export default ui;