mirror of
https://github.com/LCE-Hub/LCE-Emerald-Launcher.git
synced 2026-07-15 23:10:48 +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 { useState, useEffect, useCallback } from "react";
|
||||||
import pkg from "../../package.json";
|
declare const __BUILD_DATE__: string;
|
||||||
const CURRENT_VERSION = pkg.version;
|
|
||||||
const REPO_URL = "https://api.github.com/repos/LCE-Hub/LCE-Emerald-Launcher/releases/latest";
|
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() {
|
export function useUpdateCheck() {
|
||||||
const [updateMessage, setUpdateMessage] = useState<string | null>(null);
|
const [updateMessage, setUpdateMessage] = useState<string | null>(null);
|
||||||
const checkUpdates = useCallback(async () => {
|
const checkUpdates = useCallback(async () => {
|
||||||
@@ -22,10 +8,11 @@ export function useUpdateCheck() {
|
|||||||
const response = await fetch(REPO_URL);
|
const response = await fetch(REPO_URL);
|
||||||
if (!response.ok) return;
|
if (!response.ok) return;
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
const latestVersion = data.tag_name.replace(/^v/, '');
|
const latestDate = new Date(data.published_at);
|
||||||
if (isNewerVersion(latestVersion, CURRENT_VERSION)) {
|
const buildDate = new Date(__BUILD_DATE__);
|
||||||
|
if (latestDate > buildDate) {
|
||||||
setUpdateMessage(`Version ${data.tag_name} is now available!`);
|
setUpdateMessage(`Version ${data.tag_name} is now available!`);
|
||||||
}
|
} 9
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error("Failed to check for updates:", 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" />
|
/// <reference types="vite/client" />
|
||||||
|
|
||||||
|
declare const __BUILD_DATE__: string;
|
||||||
|
|||||||
@@ -7,6 +7,9 @@ export default defineConfig({
|
|||||||
react(),
|
react(),
|
||||||
tailwindcss(),
|
tailwindcss(),
|
||||||
],
|
],
|
||||||
|
define: {
|
||||||
|
__BUILD_DATE__: JSON.stringify(new Date().toISOString()),
|
||||||
|
},
|
||||||
server: {
|
server: {
|
||||||
port: 1420,
|
port: 1420,
|
||||||
strictPort: true,
|
strictPort: true,
|
||||||
|
|||||||
Reference in New Issue
Block a user