@@ -36,13 +36,17 @@ export default {
3636 currentVersion: null ,
3737 latestVersion: null ,
3838 latestVersionDate: null ,
39+ // The following constants can be used in other files, such as ReleaseNotificationSettings.vue
40+ SHORT_BACKOFF_PERIOD : SHORT_BACKOFF_PERIOD ,
41+ LONG_BACKOFF_PERIOD : LONG_BACKOFF_PERIOD ,
3942 };
4043 },
4144 async mounted () {
4245 this .retrieveData ();
4346 if (this .data && (! this .data .isEnabled || moment () < moment (this .data .nextCheckTime ))) return ;
4447
45- await this .retreiveReleases ();
48+ await this .retrieveCurrentVersion ();
49+ await this .retrieveLatestVersion ();
4650 this .isVisible = this .getHasNewRelease () && this .getReleaseIsReady ();
4751
4852 if (this .isVisible && this .data ) {
@@ -71,28 +75,30 @@ export default {
7175 if (localStorage .getItem (' newReleaseCheckData' )) {
7276 try {
7377 this .data = JSON .parse (localStorage .getItem (' newReleaseCheckData' ));
74- } catch (e) {
78+ } catch (err) {
79+ console .error (' newReleaseCheckData not found in localStorage: ' , err);
7580 localStorage .removeItem (' newReleaseCheckData' );
7681 }
7782 }
7883 },
79- retreiveReleases () {
80- return Promise .all ([
81- this .$aw .getInfo (),
82- axios .get (' https://api.github.com/repos/ActivityWatch/activitywatch/releases/latest' ),
83- ])
84- .then (responses => {
85- this .currentVersion = this .cleanVersionTag (responses[0 ].version );
86- this .latestVersion = this .cleanVersionTag (responses[1 ].data .tag_name );
87- this .latestVersionDate = moment (responses[1 ].data .published_at );
88- })
89- .catch (err => {
90- // Should not display alert if failed, e.g. when user isn't connected to the internet
91- console .error (' Check for new releases is unable to connect: ' , err);
92- this .currentVersion = null ;
93- this .latestVersion = null ;
94- this .latestVersionDate = null ;
95- });
84+ async retrieveCurrentVersion () {
85+ try {
86+ const response = await this .$aw .getInfo ();
87+ this .currentVersion = this .cleanVersionTag (response .version );
88+ } catch (err) {
89+ console .error (' unable to connect to aw-server: ' , err);
90+ }
91+ },
92+ async retrieveLatestVersion () {
93+ try {
94+ const response = await axios .get (
95+ ' https://api.github.com/repos/ActivityWatch/activitywatch/releases/latest'
96+ );
97+ this .latestVersion = this .cleanVersionTag (response .data .tag_name );
98+ this .latestVersionDate = moment (response .data .published_at );
99+ } catch (err) {
100+ console .error (' unable to connect to GitHub API to check for latest version: ' , err);
101+ }
96102 },
97103 cleanVersionTag (tag ) {
98104 tag = tag .trim ();
0 commit comments