mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-02-20 07:37:35 +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 { useState, useEffect } from 'react';
|
||||||
import { version } from '../../package.json';
|
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) => {
|
export const useVersionCheck = (owner, repo) => {
|
||||||
const [updateAvailable, setUpdateAvailable] = useState(false);
|
const [updateAvailable, setUpdateAvailable] = useState(false);
|
||||||
const [latestVersion, setLatestVersion] = useState(null);
|
const [latestVersion, setLatestVersion] = useState(null);
|
||||||
@@ -17,7 +36,8 @@ export const useVersionCheck = (owner, repo) => {
|
|||||||
if (data.tag_name) {
|
if (data.tag_name) {
|
||||||
const latest = data.tag_name.replace(/^v/, '');
|
const latest = data.tag_name.replace(/^v/, '');
|
||||||
setLatestVersion(latest);
|
setLatestVersion(latest);
|
||||||
setUpdateAvailable(version !== latest);
|
// Only show update if latest version is actually newer
|
||||||
|
setUpdateAvailable(compareVersions(latest, version) > 0);
|
||||||
|
|
||||||
// Store release information
|
// Store release information
|
||||||
setReleaseInfo({
|
setReleaseInfo({
|
||||||
|
|||||||
Reference in New Issue
Block a user