mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-02-14 20:57:32 +00:00
feat: improve version comparison logic in useVersionCheck hook
This commit is contained in:
@@ -1,7 +1,26 @@
|
||||
// hooks/useVersionCheck.js
|
||||
import { useState, useEffect } from 'react';
|
||||
import { version } from '../../package.json';
|
||||
|
||||
/**
|
||||
* Compare two semantic version strings
|
||||
* Works only with numeric versions separated by dots (e.g. "1.2.3")
|
||||
* @param {string} v1
|
||||
* @param {string} v2
|
||||
* @returns positive if v1 > v2, negative if v1 < v2, 0 if equal
|
||||
*/
|
||||
const compareVersions = (v1, v2) => {
|
||||
const parts1 = v1.split('.').map(Number);
|
||||
const parts2 = v2.split('.').map(Number);
|
||||
|
||||
for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) {
|
||||
const p1 = parts1[i] || 0;
|
||||
const p2 = parts2[i] || 0;
|
||||
if (p1 !== p2) return p1 - p2;
|
||||
}
|
||||
return 0;
|
||||
};
|
||||
|
||||
|
||||
export const useVersionCheck = (owner, repo) => {
|
||||
const [updateAvailable, setUpdateAvailable] = useState(false);
|
||||
const [latestVersion, setLatestVersion] = useState(null);
|
||||
@@ -17,7 +36,8 @@ export const useVersionCheck = (owner, repo) => {
|
||||
if (data.tag_name) {
|
||||
const latest = data.tag_name.replace(/^v/, '');
|
||||
setLatestVersion(latest);
|
||||
setUpdateAvailable(version !== latest);
|
||||
// Only show update if latest version is actually newer
|
||||
setUpdateAvailable(compareVersions(latest, version) > 0);
|
||||
|
||||
// Store release information
|
||||
setReleaseInfo({
|
||||
|
||||
Reference in New Issue
Block a user