mirror of
https://github.com/LCE-Hub/LCE-Emerald-Launcher.git
synced 2026-05-21 17:54:30 +00:00
feat: autoupdate based on date rather than version
This commit is contained in:
@@ -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
2
src/vite-env.d.ts
vendored
@@ -1 +1,3 @@
|
||||
/// <reference types="vite/client" />
|
||||
|
||||
declare const __BUILD_DATE__: string;
|
||||
|
||||
@@ -7,6 +7,9 @@ export default defineConfig({
|
||||
react(),
|
||||
tailwindcss(),
|
||||
],
|
||||
define: {
|
||||
__BUILD_DATE__: JSON.stringify(new Date().toISOString()),
|
||||
},
|
||||
server: {
|
||||
port: 1420,
|
||||
strictPort: true,
|
||||
|
||||
Reference in New Issue
Block a user