diff --git a/src/hooks/useUpdateCheck.ts b/src/hooks/useUpdateCheck.ts index 39a00bc..5856823 100644 --- a/src/hooks/useUpdateCheck.ts +++ b/src/hooks/useUpdateCheck.ts @@ -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(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); } diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index 7d0ff9e..f917b42 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -1 +1,3 @@ /// + +declare const __BUILD_DATE__: string; diff --git a/vite.config.ts b/vite.config.ts index 5bfc4ed..3a2912a 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -7,6 +7,9 @@ export default defineConfig({ react(), tailwindcss(), ], + define: { + __BUILD_DATE__: JSON.stringify(new Date().toISOString()), + }, server: { port: 1420, strictPort: true,