Skip to content

Commit e03f57d

Browse files
committed
refactor: improve release fetching logic with constant cache keys and fallback support for cached data
1 parent 6b208ab commit e03f57d

1 file changed

Lines changed: 15 additions & 6 deletions

File tree

src/views/Home.vue

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -107,12 +107,13 @@ const fetchGithubStars = async () => {
107107
108108
const fetchLatestRelease = async () => {
109109
const CACHE_KEY = 'lotus_latest_version_cache';
110+
const CACHE_URL_KEY = 'lotus_latest_url_cache';
110111
const CACHE_TIME_KEY = 'lotus_latest_version_timestamp';
111112
const TWO_HOURS = 2 * 60 * 60 * 1000;
112113
113114
try {
114115
const cachedVersion = localStorage.getItem(CACHE_KEY);
115-
const cachedUrl = localStorage.getItem('lotus_latest_url_cache');
116+
const cachedUrl = localStorage.getItem(CACHE_URL_KEY);
116117
const lastFetch = localStorage.getItem(CACHE_TIME_KEY);
117118
const now = Date.now();
118119
@@ -129,13 +130,21 @@ const fetchLatestRelease = async () => {
129130
const version = data.tag_name;
130131
const url = data.html_url;
131132
132-
latestVersion.value = version;
133-
latestReleaseUrl.value = url;
134-
localStorage.setItem(CACHE_KEY, version);
135-
localStorage.setItem('lotus_latest_url_cache', url);
136-
localStorage.setItem(CACHE_TIME_KEY, now.toString());
133+
if (version && url) {
134+
latestVersion.value = version;
135+
latestReleaseUrl.value = url;
136+
localStorage.setItem(CACHE_KEY, version);
137+
localStorage.setItem(CACHE_URL_KEY, url);
138+
localStorage.setItem(CACHE_TIME_KEY, now.toString());
139+
}
137140
} catch (error) {
138141
console.error('Lỗi khi lấy version từ GitHub:', error);
142+
const oldVersion = localStorage.getItem(CACHE_KEY);
143+
const oldUrl = localStorage.getItem(CACHE_URL_KEY);
144+
if (oldVersion && oldUrl) {
145+
latestVersion.value = oldVersion;
146+
latestReleaseUrl.value = oldUrl;
147+
}
139148
}
140149
};
141150

0 commit comments

Comments
 (0)