@@ -98,28 +98,34 @@ function generateTeamfights(match) {
9898
9999// create a detailed history of each wards
100100function 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
136142function renderMatch ( m ) {
0 commit comments