@@ -19,20 +19,34 @@ function compareVersions(v1, v2) {
19
19
return 0 ;
20
20
}
21
21
22
- async function requestDashVersionInfo ( currentDashVersion , dashVersionUrl ) {
22
+ async function requestDashVersionInfo ( config ) {
23
+ const {
24
+ dash_version : currentDashVersion ,
25
+ dash_version_url : dashVersionUrl ,
26
+ python_version : pythonVersion ,
27
+ ddk_version : ddkVersion
28
+ } = config ;
23
29
const cachedVersionInfo = localStorage . getItem ( 'cachedNewDashVersion' ) ;
30
+ const cachedNewDashVersionLink = localStorage . getItem (
31
+ 'cachedNewDashVersionLink'
32
+ ) ;
24
33
const lastFetched = localStorage . getItem ( 'lastFetched' ) ;
25
34
if (
26
35
lastFetched &&
27
36
Date . now ( ) - Number ( lastFetched ) < DAY_IN_MS &&
28
37
cachedVersionInfo
29
38
) {
30
- return JSON . parse ( cachedVersionInfo ) ;
39
+ return {
40
+ version : JSON . parse ( cachedVersionInfo ) ,
41
+ link : cachedNewDashVersionLink
42
+ } ;
31
43
} else {
32
44
return fetch ( dashVersionUrl , {
33
45
method : 'POST' ,
34
46
body : JSON . stringify ( {
35
- dash_version : currentDashVersion
47
+ dash_version : currentDashVersion ,
48
+ python_version : pythonVersion ,
49
+ ddk_version : ddkVersion
36
50
} ) ,
37
51
headers : {
38
52
'Content-Type' : 'application/json'
@@ -44,8 +58,9 @@ async function requestDashVersionInfo(currentDashVersion, dashVersionUrl) {
44
58
'cachedNewDashVersion' ,
45
59
JSON . stringify ( body . version )
46
60
) ;
61
+ localStorage . setItem ( 'cachedNewDashVersionLink' , body . link ) ;
47
62
localStorage . setItem ( 'lastFetched' , Date . now ( ) ) ;
48
- return body . version ;
63
+ return body ;
49
64
} ) ;
50
65
}
51
66
}
@@ -81,6 +96,7 @@ function shouldShowUpgradeNotification(currentDashVersion, newDashVersion) {
81
96
82
97
export const VersionInfo = ( { config} ) => {
83
98
const [ newDashVersion , setNewDashVersion ] = useState ( undefined ) ;
99
+ const [ newDashVersionLink , setNewDashVersionLink ] = useState ( undefined ) ;
84
100
const [ upgradeTooltipOpened , setUpgradeTooltipOpened ] = useState ( false ) ;
85
101
86
102
const setDontShowAgain = ( ) => {
@@ -102,11 +118,9 @@ export const VersionInfo = ({config}) => {
102
118
} ;
103
119
104
120
useEffect ( ( ) => {
105
- requestDashVersionInfo (
106
- config . dash_version ,
107
- config . dash_version_url
108
- ) . then ( version => {
109
- setNewDashVersion ( version ) ;
121
+ requestDashVersionInfo ( config ) . then ( body => {
122
+ setNewDashVersionLink ( body . link ) ;
123
+ setNewDashVersion ( body . version ) ;
110
124
} ) ;
111
125
} , [ ] ) ;
112
126
@@ -131,12 +145,11 @@ export const VersionInfo = ({config}) => {
131
145
< div className = 'dash-debug-menu__version' >
132
146
{ upgradeTooltipOpened ? (
133
147
< div className = 'dash-debug-menu__upgrade-tooltip' >
134
- < a
135
- target = '_blank'
136
- href = 'https://dash.plotly.com/installation'
137
- >
138
- Read details
139
- </ a >
148
+ { newDashVersionLink ? (
149
+ < a target = '_blank' href = { newDashVersionLink } >
150
+ Read details
151
+ </ a >
152
+ ) : null }
140
153
< button onClick = { setSkipThisVersion } >
141
154
Skip this version
142
155
</ button >
0 commit comments