Add function to fetch the newest version of the app & also a popup.

This commit is contained in:
yuanhau 2025-06-17 16:18:17 +08:00
parent a000a080ed
commit 804694f74c
2 changed files with 49 additions and 0 deletions

View file

@ -0,0 +1,10 @@
import currentVersion from "~/versionTag";
export default async function newestVersion() {
const current = currentVersion();
const req = await fetch("/api/version");
const res = await req.json();
if (current !== res.version) {
return false;
}
return true;
}

View file

@ -47,6 +47,9 @@ import { gsap } from "gsap";
import confetti from "js-confetti"; import confetti from "js-confetti";
import translate from "translate"; import translate from "translate";
// Import Scripts
import checkAppVersion from "~/components/checkAppVersion";
// Import Windows // Import Windows
import UserWindow from "~/components/app/windows/user.vue"; import UserWindow from "~/components/app/windows/user.vue";
import SourcesWindow from "~/components/app/windows/sources.vue"; import SourcesWindow from "~/components/app/windows/sources.vue";
@ -99,6 +102,7 @@ const applyForTranslation = ref(false);
const langPrefDifferent = ref(false); const langPrefDifferent = ref(false);
const notLoggedInState = ref(false); const notLoggedInState = ref(false);
const translateProvider = ref(""); const translateProvider = ref("");
const newUpdate = ref(false);
// Key Data // Key Data
const menuItems = [ const menuItems = [
@ -620,6 +624,12 @@ onMounted(async () => {
translateProvider.value = loadUserInfoData.translate.provider || "google"; translateProvider.value = loadUserInfoData.translate.provider || "google";
console.log(langPrefDifferent); console.log(langPrefDifferent);
});*/ });*/
// Get ghe newest update
const newUpdateTimer = 1000 * 60 * 3; // Check for thime every 3 min.
setInterval(async () => {
newUpdate.value = await checkAppVersion();
}, newUpdateTimer);
</script> </script>
<template> <template>
<div v-if="changeLangAnimation"> <div v-if="changeLangAnimation">
@ -745,6 +755,35 @@ onMounted(async () => {
</DialogFooter> </DialogFooter>
</DialogContent> </DialogContent>
</Dialog> </Dialog>
<!--New Update-->
<Dialog v-model:open="langPrefDifferent">
<DialogContent class="!border-0 !bg-black !rounded">
<DialogHeader>
<DialogTitle>There is a new Update!</DialogTitle>
<DialogDescription>
Click notify later to save your current tasks & update the page.
</DialogDescription>
</DialogHeader>
<DialogFooter>
<Button
@click="
() => {
newUpdate.value = false;
}
"
variant="outline"
>
Notify later
</Button>
<Button
@click="() => window.location.reload('/desktop')"
variant="outline"
>
Update
</Button>
</DialogFooter>
</DialogContent>
</Dialog>
<!--Window system--> <!--Window system-->
<Transition> <Transition>
<div> <div>