UNPKG

2 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.createSimpleReducer = exports.registerWindowResize = exports.fromEmpty = undefined;
7
8var _data = require('data.maybe');
9
10var _debounce = require('debounce');
11
12var _debounce2 = _interopRequireDefault(_debounce);
13
14function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
16var fromEmpty = exports.fromEmpty = function fromEmpty(val) {
17 return (0, _data.fromNullable)(val).chain(function (v) {
18 return v == null ? (0, _data.Nothing)() : (0, _data.Just)(v);
19 });
20};
21
22// TODO can be moved to a separate module to speed up app start
23var registerWindowResize = exports.registerWindowResize = function registerWindowResize(_ref) {
24 var store = _ref.store,
25 actionName = _ref.actionName;
26
27 var changeScreenSize = function changeScreenSize(win) {
28 return {
29 type: actionName,
30 payload: {
31 width: win.innerWidth,
32 height: win.innerHeight
33 }
34 };
35 };
36
37 if (window) {
38 //* * need to de bounce this event***/
39 /* eslint-disable no-console */
40 console.log('registering window size....');
41 var windowSizeListener = (0, _debounce2.default)(function (e) {
42 return store.dispatch(changeScreenSize(e.target));
43 }, 300);
44 window.addEventListener('resize', windowSizeListener);
45 store.dispatch(changeScreenSize(window));
46 /* eslint-enable no-console */
47 }
48};
49
50/** redux tools */
51var createSimpleReducer = exports.createSimpleReducer = function createSimpleReducer(_ref2) {
52 var defaultState = _ref2.defaultState,
53 initialState = _ref2.initialState,
54 actionName = _ref2.actionName;
55 return function () {
56 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState || defaultState || [];
57 var action = arguments[1];
58
59 switch (action.type) {
60 case actionName:
61 return action.payload;
62 }
63 return state;
64 };
65};
66//# sourceMappingURL=index.js.map
\No newline at end of file