UNPKG

4.35 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
8
9var reducers = exports.reducers = function reducers() {
10 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
11 var action = arguments[1];
12
13 switch (action.type) {
14 case '@@redux/INIT':
15 {
16 return {
17 open: false,
18 initialRender: true,
19 visibilityFilter: ''
20 };
21 }
22 case 'SET_ITEMS':
23 {
24 return Object.assign({}, state, {
25 items: action.payload,
26 visibleItems: action.payload
27
28 });
29 }
30 case 'SET_FILTER':
31 {
32 var _ret = function () {
33 var visibleItems = {};
34 Object.keys(state.items).map(function (key) {
35 if (!action.payload || state.items[key].toLowerCase().indexOf(action.payload.toLowerCase().trim()) !== -1) {
36 visibleItems[key] = state.items[key];
37 }
38 });
39
40 return {
41 v: Object.assign({}, state, {
42 visibilityFilter: action.payload,
43 visibleItems: visibleItems,
44 currentlyHighlighted: state.open ? Object.keys(visibleItems)[0] || '' : ''
45 })
46 };
47 }();
48
49 if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v;
50 }
51 case 'TOGGLE_OPEN':
52 {
53 return Object.assign({}, state, {
54 open: !state.open,
55 currentlyHighlighted: !state.open ? Object.keys(state.visibleItems)[0] || '' : ''
56 });
57 }
58
59 case 'SET_OPEN':
60 {
61 return Object.assign({}, state, {
62 open: action.payload,
63 currentlyHighlighted: action.payload ? Object.keys(state.visibleItems)[0] || '' : ''
64 });
65 }
66
67 case 'SET_NEXT_HIGHLIGHTED':
68 {
69 var keys = Object.keys(state.visibleItems);
70 var currentIndex = keys.indexOf(state.currentlyHighlighted);
71
72 var newIndex = 0;
73 if (currentIndex < keys.length - 1 && currentIndex != -1) {
74 newIndex = currentIndex + 1;
75 }
76 return Object.assign({}, state, {
77 currentlyHighlighted: keys[newIndex]
78 });
79 }
80
81 case 'SET_PREV_HIGHLIGHTED':
82 {
83 var _keys = Object.keys(state.visibleItems);
84 var _currentIndex = _keys.indexOf(state.currentlyHighlighted);
85
86 var _newIndex = 0;
87 if (_currentIndex > 0) {
88 _newIndex = _currentIndex - 1;
89 }
90
91 return Object.assign({}, state, {
92 currentlyHighlighted: _keys[_newIndex]
93 });
94 }
95
96 case 'SET_HIGHLIGHTED':
97 {
98 return Object.assign({}, state, {
99 currentlyHighlighted: action.payload
100 });
101 }
102
103 case 'SET_SELECTED':
104 {
105 return Object.assign({}, state, {
106 currentlyHighlighted: action.payload.selected,
107 selected: action.payload.selected,
108 selectedItemLabel: action.payload.selectedItemLabel
109 });
110 }
111
112 case 'SET_TABINDEX':
113 {
114 return Object.assign({}, state, {
115 tabIndex: action.payload
116 });
117 }
118 case 'SET_INITIAL_RENDER_FALSE':
119 {
120 return Object.assign({}, state, {
121 initialRender: false
122 });
123 }
124 }
125
126 return state;
127};
\No newline at end of file