feat: autoupdate based on date rather than version

This commit is contained in:
neoapps-dev
2026-04-22 16:10:31 +03:00
parent b18dc6f898
commit fea0d56f9d
3 changed files with 10 additions and 18 deletions

View File

@@ -1,20 +1,6 @@
import { useState, useEffect, useCallback } from "react";
import pkg from "../../package.json";
const CURRENT_VERSION = pkg.version;
declare const __BUILD_DATE__: string;
const REPO_URL = "https://api.github.com/repos/LCE-Hub/LCE-Emerald-Launcher/releases/latest";
function isNewerVersion(latest: string, current: string): boolean {
const latestParts = latest.split('.').map(Number);
const currentParts = current.split('.').map(Number);
for (let i = 0; i < Math.max(latestParts.length, currentParts.length); i++) {
const latestPart = latestParts[i] || 0;
const currentPart = currentParts[i] || 0;
if (latestPart > currentPart) return true;
if (latestPart < currentPart) return false;
}
return false;
}
export function useUpdateCheck() {
const [updateMessage, setUpdateMessage] = useState<string | null>(null);
const checkUpdates = useCallback(async () => {
@@ -22,10 +8,11 @@ export function useUpdateCheck() {
const response = await fetch(REPO_URL);
if (!response.ok) return;
const data = await response.json();
const latestVersion = data.tag_name.replace(/^v/, '');
if (isNewerVersion(latestVersion, CURRENT_VERSION)) {
const latestDate = new Date(data.published_at);
const buildDate = new Date(__BUILD_DATE__);
if (latestDate > buildDate) {
setUpdateMessage(`Version ${data.tag_name} is now available!`);
}
} 9
} catch (e) {
console.error("Failed to check for updates:", e);
}

2
src/vite-env.d.ts vendored
View File

@@ -1 +1,3 @@
/// <reference types="vite/client" />
declare const __BUILD_DATE__: string;

View File

@@ -7,6 +7,9 @@ export default defineConfig({
react(),
tailwindcss(),
],
define: {
__BUILD_DATE__: JSON.stringify(new Date().toISOString()),
},
server: {
port: 1420,
strictPort: true,