instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
76 lines (66 loc) • 2.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
exports.display = display;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var initial_state = {
alerts: {},
idGenerator: 0,
viewport: 'md',
scrollbar_size: 0,
popover_component: null,
popover_props: null,
popover_ref: null,
popover_fill_screen: false,
popover_title: null
};
function display() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initial_state;
var action = arguments[1];
switch (action.type) {
case 'create_alert':
return (0, _extends4.default)({}, state, {
alerts: (0, _extends4.default)({}, state.alerts, (0, _defineProperty3.default)({}, state.idGenerator, {
id: state.idGenerator,
kind: action.kind,
text: action.text
})),
idGenerator: state.idGenerator + 1
});
case 'remove_alert':
var alerts = (0, _extends4.default)({}, state.alerts);
delete alerts[action.alert];
return (0, _extends4.default)({}, state, {
alerts: alerts
});
case 'store_viewport':
return (0, _extends4.default)({}, state, {
viewport: action.viewport,
scrollbar_size: action.scrollbar_size
});
case 'show_popover':
return (0, _extends4.default)({}, state, {
popover_component: action.component,
popover_props: action.props,
popover_title: action.title,
popover_fill_screen: action.fill_screen
});
case 'store_popover_ref':
return (0, _extends4.default)({}, state, {
popover_ref: action.ref
});
case 'dismiss_popover':
return (0, _extends4.default)({}, state, {
popover_component: null,
popover_props: null,
popover_ref: null
});
default:
return state;
}
}