Skip to content

Commit 8b2de47

Browse files
author
micael.bergeron
committed
coerce the player instead of using a guard
1 parent 5d8e8f5 commit 8b2de47

File tree

1 file changed

+22
-16
lines changed

1 file changed

+22
-16
lines changed

src/components/Match/renderMatch.js

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -98,28 +98,34 @@ function generateTeamfights(match) {
9898

9999
// create a detailed history of each wards
100100
function generateWardLog(match) {
101-
// this should be handled by the Match page component
102-
if (!(match.players && match.players[0].obs_log)) return [];
103-
104101
const computeWardData = (player, i) => {
105102
const sameWard = _.curry((w1, w2) => w1.ehandle === w2.ehandle);
106103

104+
// let's coerce some value to be sure the structure is what we expect.
105+
const safePlayer = {
106+
...player,
107+
obs_log: player.obs_log || [],
108+
sen_log: player.sen_log || [],
109+
obs_left_log: player.obs_left_log || [],
110+
sen_left_log: player.sen_left_log || [],
111+
};
112+
107113
// let's zip the *_log and the *_left log in a 2-tuples
108114
const extractWardLog = (type, enteredLog, leftLog) =>
109-
enteredLog.map((e) => {
110-
const wards = [e, leftLog.find(sameWard(e))];
111-
return {
112-
player: i,
113-
key: wards[0].ehandle,
114-
type,
115-
entered: wards[0],
116-
left: wards[1],
117-
};
118-
})
115+
enteredLog.map((e) => {
116+
const wards = [e, leftLog.find(sameWard(e))];
117+
return {
118+
player: i,
119+
key: wards[0].ehandle,
120+
type,
121+
entered: wards[0],
122+
left: wards[1],
123+
};
124+
})
119125
;
120126

121-
const observers = extractWardLog('observer', player.obs_log, player.obs_left_log);
122-
const sentries = extractWardLog('sentry', player.sen_log, player.sen_left_log);
127+
const observers = extractWardLog('observer', safePlayer.obs_log, safePlayer.obs_left_log);
128+
const sentries = extractWardLog('sentry', safePlayer.sen_log, safePlayer.sen_left_log);
123129
return _.concat(observers, sentries);
124130
};
125131

@@ -130,7 +136,7 @@ function generateWardLog(match) {
130136
_.sortBy(xs => xs.entered.time),
131137
imap((x, i) => ({ ...x, key: i })),
132138
);
133-
return wardLog(match.players);
139+
return wardLog(match.players || []);
134140
}
135141

136142
function renderMatch(m) {

0 commit comments

Comments
 (0)