Skip to content

Commit 2ba9168

Browse files
committed
refactor alert reducer to be functional
1 parent 8b27f8f commit 2ba9168

File tree

2 files changed

+18
-16
lines changed

2 files changed

+18
-16
lines changed

lib/reducers/alert/index.js

+9-8
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,16 @@ var open = {
1010
action: 'pass',
1111
};
1212
var current = _alert;
13-
function setAlert(options) {
13+
function setAlert(options, color) {
14+
if (color) {
15+
var statusBarAlert = document.getElementsByClassName('cr-alert-replay')[0];
16+
statusBarAlert.style.color = color;
17+
}
1418
current = Object.assign({}, open, options);
1519
return current;
1620
}
1721
function alertReducer(alert, action) {
1822
if (alert === void 0) { alert = _alert; }
19-
var statusBarAlert = document.getElementsByClassName('cr-alert-replay')[0];
2023
switch (action.type) {
2124
case _types_1.ALERT_REPLAY:
2225
return setAlert(current);
@@ -32,26 +35,24 @@ function alertReducer(alert, action) {
3235
var result = action.payload.result;
3336
switch (true) {
3437
case result.pass && result.change > 0:
35-
statusBarAlert.style.color = '#73C990';
3638
return setAlert({
3739
message: result.msg,
3840
duration: result.duration || 1500,
39-
});
41+
}, '#73C990');
4042
case result.pass === false && result.change < 1:
41-
statusBarAlert.style.color = '#FF4081';
4243
return setAlert({
4344
message: result.msg,
4445
action: 'fail',
4546
duration: result.duration || 2500,
46-
});
47+
}, '#FF4081');
4748
default:
48-
statusBarAlert.style.color = '#9DA5B4';
49+
break;
4950
}
5051
return setAlert({
5152
message: result.msg,
5253
action: 'note',
5354
duration: result.duration || 2500,
54-
});
55+
}, '#9DA5B4');
5556
case _types_1.COMPLETE_PAGE:
5657
return setAlert({
5758
message: "Page " + (action.payload.pagePosition + 1) + " Complete",

src/reducers/alert/index.ts

+9-8
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,18 @@ const open = {
1616

1717
let current: CR.Alert = _alert;
1818

19-
function setAlert(options) {
19+
function setAlert(options: Object, color?: string) {
20+
if (color) {
21+
let statusBarAlert = <HTMLElement>document.getElementsByClassName('cr-alert-replay')[0];
22+
statusBarAlert.style.color = color;
23+
}
2024
current = Object.assign({}, open, options);
2125
return current;
2226
}
2327

2428
export default function alertReducer(
2529
alert = _alert, action: Action
2630
): CR.Alert {
27-
let statusBarAlert = <HTMLElement>document.getElementsByClassName('cr-alert-replay')[0];
2831
switch (action.type) {
2932

3033
case ALERT_REPLAY:
@@ -46,28 +49,26 @@ export default function alertReducer(
4649
switch (true) {
4750
// pass
4851
case result.pass && result.change > 0:
49-
statusBarAlert.style.color = '#73C990';
5052
return setAlert({
5153
message: result.msg,
5254
duration: result.duration || 1500,
53-
});
55+
}, '#73C990');
5456
// Fail
5557
case result.pass === false && result.change < 1:
56-
statusBarAlert.style.color = '#FF4081';
5758
return setAlert({
5859
message: result.msg,
5960
action: 'fail',
6061
duration: result.duration || 2500,
61-
});
62+
}, '#FF4081');
6263
// Alert
6364
default:
64-
statusBarAlert.style.color = '#9DA5B4';
65+
break;
6566
}
6667
return setAlert({
6768
message: result.msg,
6869
action: 'note',
6970
duration: result.duration || 2500,
70-
});
71+
}, '#9DA5B4');
7172

7273
case COMPLETE_PAGE:
7374
return setAlert({

0 commit comments

Comments
 (0)