goblin-desktop 2.0.21 → 2.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +9 -9
- package/.eslintrc.js +28 -28
- package/.zou-flow +3 -3
- package/README.md +108 -108
- package/builders/builders.js +3 -3
- package/builders/wizard.js +457 -457
- package/contexts.js +13 -13
- package/desktop-manager.js +10 -10
- package/desktop-window.js +13 -13
- package/desktop.js +13 -13
- package/lib/service.js +137 -137
- package/package.json +36 -36
- package/password-wizard.js +13 -13
- package/quest-run-wizard.js +13 -13
- package/taskbar.js +13 -13
- package/widgets/audio/sfx.js +177 -177
- package/widgets/board/view.js +37 -37
- package/widgets/board/widget.js +65 -65
- package/widgets/contexts/logic-handlers.js +36 -36
- package/widgets/contexts/service.js +40 -40
- package/widgets/contexts/view.js +22 -22
- package/widgets/contexts/widget.js +147 -147
- package/widgets/datagrid/datagrid-entity.js +82 -82
- package/widgets/datagrid/datagrid-headers.js +272 -272
- package/widgets/datagrid/styles.js +13 -13
- package/widgets/datagrid/widget.js +192 -192
- package/widgets/datagrid-cell/styles.js +52 -52
- package/widgets/datagrid-cell/widget.js +41 -41
- package/widgets/datagrid-item/styles.js +15 -15
- package/widgets/datagrid-item/widget.js +74 -74
- package/widgets/default/view.js +95 -91
- package/widgets/desktop/compensator.js +9 -9
- package/widgets/desktop/logic-handlers.js +237 -237
- package/widgets/desktop/reducer.js +35 -35
- package/widgets/desktop/service.js +828 -828
- package/widgets/desktop/styles.js +28 -28
- package/widgets/desktop/widget.js +175 -175
- package/widgets/desktop-clock/styles.js +69 -69
- package/widgets/desktop-clock/widget.js +387 -387
- package/widgets/desktop-clock-clock/styles.js +56 -56
- package/widgets/desktop-clock-clock/widget.js +96 -96
- package/widgets/desktop-clock-menu/styles.js +129 -129
- package/widgets/desktop-clock-menu/widget.js +63 -63
- package/widgets/desktop-connection-status/reducer.js +15 -15
- package/widgets/desktop-connection-status/styles.js +44 -44
- package/widgets/desktop-connection-status/widget.js +129 -129
- package/widgets/desktop-content/widget.js +68 -68
- package/widgets/desktop-footer/reducer.js +31 -31
- package/widgets/desktop-footer/styles.js +36 -36
- package/widgets/desktop-footer/widget.js +52 -52
- package/widgets/desktop-monitors/styles.js +155 -155
- package/widgets/desktop-monitors/widget.js +272 -272
- package/widgets/desktop-notebook/styles.js +155 -155
- package/widgets/desktop-notebook/widget.js +252 -252
- package/widgets/desktop-notifications/styles.js +147 -147
- package/widgets/desktop-notifications/widget.js +231 -231
- package/widgets/desktop-scale/reducer.js +15 -15
- package/widgets/desktop-scale/styles.js +48 -48
- package/widgets/desktop-scale/widget.js +172 -172
- package/widgets/desktop-state-monitor/styles.js +72 -72
- package/widgets/desktop-state-monitor/widget.js +123 -123
- package/widgets/desktop-taskbar/widget.js +57 -57
- package/widgets/desktop-themes-menu/widget.js +121 -121
- package/widgets/desktop-topbar/widget.js +201 -201
- package/widgets/desktop-window/service.js +56 -56
- package/widgets/desktop-window/styles.js +22 -22
- package/widgets/desktop-window/widget.js +70 -70
- package/widgets/detail/compensator.js +17 -17
- package/widgets/detail/view.js +40 -40
- package/widgets/detail/widget.js +125 -125
- package/widgets/editor/widget.js +84 -80
- package/widgets/entity-alerts/styles.js +77 -77
- package/widgets/entity-alerts/widget.js +328 -328
- package/widgets/entity-list/styles.js +66 -66
- package/widgets/entity-list/view.js +36 -36
- package/widgets/entity-list/widget.js +209 -209
- package/widgets/entity-list-item/widget.js +68 -68
- package/widgets/entity-row/styles.js +105 -105
- package/widgets/entity-row/widget.js +524 -524
- package/widgets/entity-row-button/styles.js +46 -46
- package/widgets/entity-row-button/widget.js +57 -57
- package/widgets/entity-view/reducer.js +20 -20
- package/widgets/entity-view/styles.js +90 -90
- package/widgets/entity-view/widget.js +516 -516
- package/widgets/facet-checkbox/styles.js +17 -17
- package/widgets/facet-checkbox/widget.js +43 -43
- package/widgets/facet-filter/widget.js +94 -94
- package/widgets/facet-filter-add/styles.js +30 -30
- package/widgets/facet-filter-add/widget.js +105 -105
- package/widgets/facet-filter-button/styles.js +74 -74
- package/widgets/facet-filter-button/widget.js +214 -214
- package/widgets/facet-filter-list-dialog/styles.js +59 -59
- package/widgets/facet-filter-list-dialog/widget.js +253 -253
- package/widgets/facet-filter-list-dialog-footer/styles.js +22 -22
- package/widgets/facet-filter-list-dialog-footer/widget.js +105 -105
- package/widgets/facet-filter-range-dialog/styles.js +82 -82
- package/widgets/facet-filter-range-dialog/widget.js +399 -399
- package/widgets/facet-filter-range-dialog-footer/styles.js +22 -22
- package/widgets/facet-filter-range-dialog-footer/widget.js +182 -182
- package/widgets/gamepad/widget.js +75 -75
- package/widgets/helpers/facet-helpers.js +105 -105
- package/widgets/hinter/reducer.js +35 -35
- package/widgets/hinter/styles.js +79 -79
- package/widgets/hinter/view.js +31 -31
- package/widgets/hinter/widget.js +291 -291
- package/widgets/junction/styles.js +22 -22
- package/widgets/junction/widget.js +50 -50
- package/widgets/main-tab-menu/styles.js +17 -17
- package/widgets/main-tab-menu/widget.js +136 -136
- package/widgets/map/view.js +49 -49
- package/widgets/map/widget.js +65 -65
- package/widgets/monitor/reducer.js +15 -15
- package/widgets/monitor/widget.js +66 -66
- package/widgets/navigating-layer/widget.js +25 -25
- package/widgets/notifications-button/widget.js +44 -44
- package/widgets/password-wizard/service.js +53 -53
- package/widgets/password-wizard/ui.js +66 -66
- package/widgets/plugin/reducer.js +19 -19
- package/widgets/plugin/styles.js +294 -294
- package/widgets/plugin/widget.js +637 -636
- package/widgets/quest-run-wizard/service.js +49 -49
- package/widgets/quest-run-wizard/ui.js +25 -25
- package/widgets/search/styles.js +80 -80
- package/widgets/search/widget.js +285 -285
- package/widgets/simple/view.js +29 -29
- package/widgets/status-filters/widget.js +121 -121
- package/widgets/tab/styles.js +16 -16
- package/widgets/tab/widget.js +89 -89
- package/widgets/tab-content/widget.js +35 -35
- package/widgets/tabs/widget.js +48 -48
- package/widgets/taskbar/service.js +99 -99
- package/widgets/taskbar/view.js +24 -24
- package/widgets/taskbar/widget.js +167 -167
- package/widgets/widget-doc-caller/reducer.js +15 -15
- package/widgets/widget-doc-caller/styles.js +20 -20
- package/widgets/widget-doc-caller/widget.js +55 -55
- package/widgets/wizard/widget.js +299 -299
- package/widgets/wizard-buttons/widget.js +111 -107
- package/widgets/workitem/styles.js +281 -281
- package/widgets/workitem/view.js +62 -62
- package/widgets/workitem/widget.js +971 -971
- package/widgets/workitem-dialog/widget.js +86 -86
- package/widgets/workitem-fields/widget.js +63 -63
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
//T:2019-02-27
|
|
2
|
-
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import Widget from 'goblin-laboratory/widgets/widget';
|
|
5
|
-
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
|
|
6
|
-
import Container from 'goblin-gadgets/widgets/container/widget';
|
|
7
|
-
import * as styles from './styles';
|
|
8
|
-
|
|
9
|
-
class DatagridItem extends Widget {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(...arguments);
|
|
12
|
-
this.styles = styles;
|
|
13
|
-
|
|
14
|
-
this.renewTTL = this.renewTTL.bind(this);
|
|
15
|
-
this.renderItem = this.renderItem.bind(this);
|
|
16
|
-
this._idRequested = null;
|
|
17
|
-
this._renewInterval = null;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
renewTTL(id) {
|
|
21
|
-
if (this._renewInterval) {
|
|
22
|
-
clearInterval(this._renewInterval);
|
|
23
|
-
}
|
|
24
|
-
this._renewInterval = setInterval(this.props.onDrillDown, 15000, id);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
componentWillUnmount() {
|
|
28
|
-
clearInterval(this._renewInterval);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
renderItem() {
|
|
32
|
-
const {id, item, onDrillDown} = this.props;
|
|
33
|
-
const loaded = id && item;
|
|
34
|
-
|
|
35
|
-
if (onDrillDown && id && this._idRequested !== id) {
|
|
36
|
-
setTimeout(onDrillDown, 0, id);
|
|
37
|
-
this.renewTTL(id);
|
|
38
|
-
this._idRequested = id;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (!loaded) {
|
|
42
|
-
return <FontAwesomeIcon icon={[`fas`, 'spinner']} size={'1x'} pulse />;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const Item = this.props.renderItem;
|
|
46
|
-
return (
|
|
47
|
-
<Item
|
|
48
|
-
id={item.get('id')}
|
|
49
|
-
index={this.props.index}
|
|
50
|
-
listId={this.props.listId}
|
|
51
|
-
itemId={this.props.itemId}
|
|
52
|
-
height={this.props.height}
|
|
53
|
-
onDrillDown={this.props.onDrillDown}
|
|
54
|
-
/>
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
render() {
|
|
59
|
-
return (
|
|
60
|
-
<Container className={this.styles.classNames.row} kind="content">
|
|
61
|
-
{this.renderItem()}
|
|
62
|
-
</Container>
|
|
63
|
-
);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export default Widget.connect((state, props) => {
|
|
68
|
-
const listIds = state.get(`backend.${props.listId}.list`);
|
|
69
|
-
|
|
70
|
-
return {
|
|
71
|
-
id: listIds.get(`${props.index}-item`, null),
|
|
72
|
-
item: state.get(`backend.${listIds.get(`${props.index}-item`)}`),
|
|
73
|
-
};
|
|
74
|
-
})(DatagridItem);
|
|
1
|
+
//T:2019-02-27
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import Widget from 'goblin-laboratory/widgets/widget';
|
|
5
|
+
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
|
|
6
|
+
import Container from 'goblin-gadgets/widgets/container/widget';
|
|
7
|
+
import * as styles from './styles';
|
|
8
|
+
|
|
9
|
+
class DatagridItem extends Widget {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.styles = styles;
|
|
13
|
+
|
|
14
|
+
this.renewTTL = this.renewTTL.bind(this);
|
|
15
|
+
this.renderItem = this.renderItem.bind(this);
|
|
16
|
+
this._idRequested = null;
|
|
17
|
+
this._renewInterval = null;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
renewTTL(id) {
|
|
21
|
+
if (this._renewInterval) {
|
|
22
|
+
clearInterval(this._renewInterval);
|
|
23
|
+
}
|
|
24
|
+
this._renewInterval = setInterval(this.props.onDrillDown, 15000, id);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
componentWillUnmount() {
|
|
28
|
+
clearInterval(this._renewInterval);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
renderItem() {
|
|
32
|
+
const {id, item, onDrillDown} = this.props;
|
|
33
|
+
const loaded = id && item;
|
|
34
|
+
|
|
35
|
+
if (onDrillDown && id && this._idRequested !== id) {
|
|
36
|
+
setTimeout(onDrillDown, 0, id);
|
|
37
|
+
this.renewTTL(id);
|
|
38
|
+
this._idRequested = id;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (!loaded) {
|
|
42
|
+
return <FontAwesomeIcon icon={[`fas`, 'spinner']} size={'1x'} pulse />;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const Item = this.props.renderItem;
|
|
46
|
+
return (
|
|
47
|
+
<Item
|
|
48
|
+
id={item.get('id')}
|
|
49
|
+
index={this.props.index}
|
|
50
|
+
listId={this.props.listId}
|
|
51
|
+
itemId={this.props.itemId}
|
|
52
|
+
height={this.props.height}
|
|
53
|
+
onDrillDown={this.props.onDrillDown}
|
|
54
|
+
/>
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
render() {
|
|
59
|
+
return (
|
|
60
|
+
<Container className={this.styles.classNames.row} kind="content">
|
|
61
|
+
{this.renderItem()}
|
|
62
|
+
</Container>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export default Widget.connect((state, props) => {
|
|
68
|
+
const listIds = state.get(`backend.${props.listId}.list`);
|
|
69
|
+
|
|
70
|
+
return {
|
|
71
|
+
id: listIds.get(`${props.index}-item`, null),
|
|
72
|
+
item: state.get(`backend.${listIds.get(`${props.index}-item`)}`),
|
|
73
|
+
};
|
|
74
|
+
})(DatagridItem);
|
package/widgets/default/view.js
CHANGED
|
@@ -1,91 +1,95 @@
|
|
|
1
|
-
//T:2019-02-27
|
|
2
|
-
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import View from 'goblin-laboratory/widgets/view';
|
|
5
|
-
import Container from 'goblin-gadgets/widgets/container/widget';
|
|
6
|
-
import Editor from 'goblin-desktop/widgets/editor/widget';
|
|
7
|
-
import Search from 'goblin-desktop/widgets/search/widget';
|
|
8
|
-
import Datagrid from 'goblin-desktop/widgets/datagrid/widget';
|
|
9
|
-
import Wizard from 'goblin-desktop/widgets/wizard/widget';
|
|
10
|
-
import WorkitemDialog from 'goblin-desktop/widgets/workitem-dialog/widget';
|
|
11
|
-
import Hinter from 'goblin-desktop/widgets/hinter/widget.js';
|
|
12
|
-
import Detail from 'goblin-desktop/widgets/detail/widget.js';
|
|
13
|
-
|
|
14
|
-
class DefaultView extends View {
|
|
15
|
-
renderHinter(useHinter) {
|
|
16
|
-
if (!useHinter || !this.props.hinter) {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
return (
|
|
20
|
-
<Container kind="row" grow="1">
|
|
21
|
-
<Hinter id={this.props.hinter} />
|
|
22
|
-
</Container>
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
renderDetail() {
|
|
27
|
-
if (!this.props.detail) {
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
return (
|
|
31
|
-
<Detail
|
|
32
|
-
id={this.props.detail}
|
|
33
|
-
leftPanelWorkitemId={this.props.leftPanelWorkitemId}
|
|
34
|
-
/>
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
render() {
|
|
39
|
-
const {workitemId, dialogId, desktopId, context} = this.props;
|
|
40
|
-
if (!workitemId && !dialogId) {
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
let LeftPanel = null;
|
|
45
|
-
let WiredDialog = null;
|
|
46
|
-
let useHinter = true;
|
|
47
|
-
|
|
48
|
-
if (workitemId) {
|
|
49
|
-
const workitem = workitemId.split('@')[0];
|
|
50
|
-
|
|
51
|
-
if (workitem.endsWith('-workitem')) {
|
|
52
|
-
LeftPanel = Editor;
|
|
53
|
-
} else if (workitem.endsWith('-search')) {
|
|
54
|
-
LeftPanel = Search;
|
|
55
|
-
useHinter = false;
|
|
56
|
-
} else if (workitem.endsWith('-datagrid')) {
|
|
57
|
-
LeftPanel = Datagrid;
|
|
58
|
-
} else if (workitem.endsWith('-wizard')) {
|
|
59
|
-
LeftPanel = Wizard;
|
|
60
|
-
} else {
|
|
61
|
-
throw new Error(`${workitem} kind not implemented in default view`);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (dialogId) {
|
|
66
|
-
const dialog = dialogId.split('@')[0];
|
|
67
|
-
if (dialog.endsWith('-wizard')) {
|
|
68
|
-
WiredDialog = Wizard;
|
|
69
|
-
} else if (dialog.endsWith('-datagrid')) {
|
|
70
|
-
WiredDialog = Datagrid;
|
|
71
|
-
} else if (dialog.endsWith('-workitem')) {
|
|
72
|
-
WiredDialog = WorkitemDialog;
|
|
73
|
-
} else {
|
|
74
|
-
throw new Error(
|
|
75
|
-
`${dialog} dialog kind not implemented in default view`
|
|
76
|
-
);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
|
|
1
|
+
//T:2019-02-27
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import View from 'goblin-laboratory/widgets/view';
|
|
5
|
+
import Container from 'goblin-gadgets/widgets/container/widget';
|
|
6
|
+
import Editor from 'goblin-desktop/widgets/editor/widget';
|
|
7
|
+
import Search from 'goblin-desktop/widgets/search/widget';
|
|
8
|
+
import Datagrid from 'goblin-desktop/widgets/datagrid/widget';
|
|
9
|
+
import Wizard from 'goblin-desktop/widgets/wizard/widget';
|
|
10
|
+
import WorkitemDialog from 'goblin-desktop/widgets/workitem-dialog/widget';
|
|
11
|
+
import Hinter from 'goblin-desktop/widgets/hinter/widget.js';
|
|
12
|
+
import Detail from 'goblin-desktop/widgets/detail/widget.js';
|
|
13
|
+
|
|
14
|
+
class DefaultView extends View {
|
|
15
|
+
renderHinter(useHinter) {
|
|
16
|
+
if (!useHinter || !this.props.hinter) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return (
|
|
20
|
+
<Container kind="row" grow="1">
|
|
21
|
+
<Hinter id={this.props.hinter} />
|
|
22
|
+
</Container>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
renderDetail() {
|
|
27
|
+
if (!this.props.detail) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
return (
|
|
31
|
+
<Detail
|
|
32
|
+
id={this.props.detail}
|
|
33
|
+
leftPanelWorkitemId={this.props.leftPanelWorkitemId}
|
|
34
|
+
/>
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
render() {
|
|
39
|
+
const {workitemId, dialogId, desktopId, context} = this.props;
|
|
40
|
+
if (!workitemId && !dialogId) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
let LeftPanel = null;
|
|
45
|
+
let WiredDialog = null;
|
|
46
|
+
let useHinter = true;
|
|
47
|
+
let canDo = true;
|
|
48
|
+
if (workitemId) {
|
|
49
|
+
const workitem = workitemId.split('@')[0];
|
|
50
|
+
canDo = this.canDo(`${workitem}.edit`);
|
|
51
|
+
if (workitem.endsWith('-workitem')) {
|
|
52
|
+
LeftPanel = Editor;
|
|
53
|
+
} else if (workitem.endsWith('-search')) {
|
|
54
|
+
LeftPanel = Search;
|
|
55
|
+
useHinter = false;
|
|
56
|
+
} else if (workitem.endsWith('-datagrid')) {
|
|
57
|
+
LeftPanel = Datagrid;
|
|
58
|
+
} else if (workitem.endsWith('-wizard')) {
|
|
59
|
+
LeftPanel = Wizard;
|
|
60
|
+
} else {
|
|
61
|
+
throw new Error(`${workitem} kind not implemented in default view`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if (dialogId) {
|
|
66
|
+
const dialog = dialogId.split('@')[0];
|
|
67
|
+
if (dialog.endsWith('-wizard')) {
|
|
68
|
+
WiredDialog = Wizard;
|
|
69
|
+
} else if (dialog.endsWith('-datagrid')) {
|
|
70
|
+
WiredDialog = Datagrid;
|
|
71
|
+
} else if (dialog.endsWith('-workitem')) {
|
|
72
|
+
WiredDialog = WorkitemDialog;
|
|
73
|
+
} else {
|
|
74
|
+
throw new Error(
|
|
75
|
+
`${dialog} dialog kind not implemented in default view`
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const additionnalProps = {};
|
|
81
|
+
if (!canDo) {
|
|
82
|
+
additionnalProps.readonly = true;
|
|
83
|
+
}
|
|
84
|
+
return (
|
|
85
|
+
<Container kind="views">
|
|
86
|
+
{WiredDialog ? <WiredDialog id={dialogId} kind="dialog" /> : null}
|
|
87
|
+
{LeftPanel ? <LeftPanel id={workitemId} {...additionnalProps} /> : null}
|
|
88
|
+
{this.renderHinter(useHinter)}
|
|
89
|
+
{this.renderDetail()}
|
|
90
|
+
</Container>
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export default DefaultView;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
//T:2019-02-27
|
|
2
|
-
const handlers = require('./logic-handlers.js');
|
|
3
|
-
export default (state, action = {}) => {
|
|
4
|
-
if (handlers[action.type]) {
|
|
5
|
-
return handlers[action.type](state, action);
|
|
6
|
-
} else {
|
|
7
|
-
return state;
|
|
8
|
-
}
|
|
9
|
-
};
|
|
1
|
+
//T:2019-02-27
|
|
2
|
+
const handlers = require('./logic-handlers.js');
|
|
3
|
+
export default (state, action = {}) => {
|
|
4
|
+
if (handlers[action.type]) {
|
|
5
|
+
return handlers[action.type](state, action);
|
|
6
|
+
} else {
|
|
7
|
+
return state;
|
|
8
|
+
}
|
|
9
|
+
};
|