instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
58 lines (48 loc) • 1.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _assign = require('babel-runtime/core-js/object/assign');
var _assign2 = _interopRequireDefault(_assign);
exports.calendar = calendar;
var _utilities = require('../common/utilities');
var _base = require('./base');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var initial_state = {
events: {},
current_user: null,
current_events: [],
current_month: new Date().getMonth(),
current_year: new Date().getFullYear(),
current_date: new Date().getDate(),
idGenerator: 0
};
function calendar() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initial_state;
var action = arguments[1];
switch (action.type) {
case "store_events":
return (0, _base.store_items)(state, "events", action.events);
case "set_current_user":
return (0, _assign2.default)({}, state, {
current_user: action.user_id
});
case 'change_current_month':
return (0, _assign2.default)({}, state, {
current_month: action.month,
current_year: action.year
});
case 'set_current_date':
return (0, _assign2.default)({}, state, {
current_date: action.date
});
case 'create_event':
return (0, _base.create_item)(state, "events", action.event);
case 'update_event_id':
return (0, _base.update_item_id)(state, "events", action.event, action.temp_id);
case 'remove_event':
return (0, _base.remove_item)(state, "events", action.event_id);
default:
return state;
}
}