UNPKG

redux-signal

Version:

A scalable solution for modals using React and Redux

117 lines (100 loc) 2.99 kB
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } import { fromJS } from 'immutable'; import { uid } from './utils'; import * as ModalStates from './constants/ModalStates'; import * as ActionTypes from './constants/ActionTypes'; var __DEV__ = process.env.NODE_ENV === 'development'; var createSignal = function createSignal(_ref) { var type = _ref.type, eventHandler = _ref.eventHandler, props = _objectWithoutProperties(_ref, ['type', 'eventHandler']); if (__DEV__) { if (!type) { throw new Error('Signal requires a `type`'); } } return { type: ActionTypes.SIGNAL_CREATE, modal: fromJS(_extends({ id: uid(10), type: type, eventHandlerId: eventHandler ? eventHandler.eventQueueId : null, state: ModalStates.CREATED }, props)) }; }; export { createSignal }; export var createModal = function createModal(instanceId) { return { instanceId: instanceId, type: ActionTypes.MODAL_CREATE }; }; export var destroyModal = function destroyModal(instanceId) { return { instanceId: instanceId, type: ActionTypes.MODAL_DESTROY }; }; export var showModal = function showModal(instanceId, data) { return { data: data, instanceId: instanceId, type: ActionTypes.MODAL_SHOW }; }; export var hideModal = function hideModal(instanceId) { return { instanceId: instanceId, type: ActionTypes.MODAL_HIDE }; }; export var setModalBusy = function setModalBusy(instanceId, isBusy) { return { instanceId: instanceId, isBusy: isBusy, type: ActionTypes.MODAL_SET_BUSY }; }; export var destroySignal = function destroySignal(id) { return { type: ActionTypes.SIGNAL_DESTROY, id: id }; }; export var setModalState = function setModalState(id, state) { return { type: ActionTypes.MODAL_SET_STATE, id: id, value: state }; }; export var signalEvent = function signalEvent(id, type) { return { type: ActionTypes.SIGNAL_EVENT, id: id, event: { type: type, modalId: id } }; }; export var eventQueueShift = function eventQueueShift(eventQueueId) { return { eventQueueId: eventQueueId, type: ActionTypes.SIGNAL_EVENT_QUEUE_SHIFT }; }; export var feedbackQueueShift = function feedbackQueueShift(eventQueueId) { return { eventQueueId: eventQueueId, type: ActionTypes.SIGNAL_FEEDBACK_QUEUE_SHIFT }; }; export var queueDestroy = function queueDestroy(eventQueueId) { return { eventQueueId: eventQueueId, type: ActionTypes.SIGNAL_QUEUE_DESTROY }; };