@@ -15,6 +15,7 @@ export default class HistoryGraph extends React.Component {
1515 this . state = { } ;
1616 this . mobileWidth = 0 ;
1717 this . graphRef = React . createRef ( ) ;
18+ this . onHandleDataPointClicked = this . onHandleDataPointClicked . bind ( this ) ;
1819 }
1920
2021 componentDidMount ( ) {
@@ -58,6 +59,23 @@ export default class HistoryGraph extends React.Component {
5859 return 300 ;
5960 }
6061
62+ onHandleDataPointClicked ( ) {
63+ const { challengeId, href } = this . state ;
64+ fetch ( `${ config . API . V5 } /challenges?legacyId=${ challengeId } ` )
65+ . then ( result => result . json ( ) )
66+ . then ( ( dataResponse ) => {
67+ if ( dataResponse . length > 0 ) {
68+ const challenge = dataResponse [ 0 ] ;
69+ window . location . href = `${ config . URL . CHALLENGES_URL } /${ challenge . id } ` ;
70+ } else {
71+ window . location . href = href ;
72+ }
73+ } ) . catch ( ( ) => {
74+ window . location . href = href ;
75+ } ) ;
76+ }
77+
78+
6179 draw ( ) {
6280 const $scope = this ;
6381 const { history : wrapper , track, subTrack } = this . props ;
@@ -247,6 +265,7 @@ export default class HistoryGraph extends React.Component {
247265 show : true ,
248266 left : e . pageX ,
249267 top : e . pageY ,
268+ challengeId : d . challengeId ,
250269 challengeName : d . challengeName ,
251270 challengeData : moment ( d . ratingDate ) . format ( 'MMM DD, YYYY' ) ,
252271 rating : d . newRating ,
@@ -259,7 +278,18 @@ export default class HistoryGraph extends React.Component {
259278 render ( ) {
260279 return (
261280 < div styleName = "history-graph" ref = { this . graphRef } >
262- < ChartTooltip { ...this . state } />
281+ < ChartTooltip
282+ { ...this . state }
283+ onClick = { ( ) => {
284+ const { track } = this . props ;
285+ const { href } = this . state ;
286+ if ( track === 'DATA_SCIENCE' ) {
287+ this . onHandleDataPointClicked ( ) ;
288+ } else {
289+ window . location . href = href ;
290+ }
291+ } }
292+ />
263293 </ div >
264294 ) ;
265295 }
0 commit comments