From e2e77f20baad290d0ecd0badc978562b2cd59a33 Mon Sep 17 00:00:00 2001 From: Haileyesus Date: Thu, 5 Feb 2026 22:19:15 +0300 Subject: [PATCH] refactor: improve VersionUpgradeModal props and extract ReleaseInfo type Using useVersionCheck hook in 2 places caused github requests to be made twice, which is not ideal. --- src/App.jsx | 8 +++++- src/components/modals/VersionUpgradeModal.tsx | 28 ++++++++++++------- src/hooks/useVersionCheck.ts | 8 +----- src/types/sharedTypes.ts | 6 ++++ 4 files changed, 32 insertions(+), 18 deletions(-) create mode 100644 src/types/sharedTypes.ts diff --git a/src/App.jsx b/src/App.jsx index 2be8595..0d743be 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -782,7 +782,13 @@ function AppContent() { /> {/* Version Upgrade Modal */} - + setShowVersionModal(false)} + releaseInfo={releaseInfo} + currentVersion={currentVersion} + latestVersion={latestVersion} + /> ); } diff --git a/src/components/modals/VersionUpgradeModal.tsx b/src/components/modals/VersionUpgradeModal.tsx index bb7e459..4b6d644 100644 --- a/src/components/modals/VersionUpgradeModal.tsx +++ b/src/components/modals/VersionUpgradeModal.tsx @@ -1,21 +1,29 @@ import { useState } from "react"; import { useTranslation } from "react-i18next"; import { authenticatedFetch } from "../../utils/api"; -import { useVersionCheck } from "../../hooks/useVersionCheck"; +import { ReleaseInfo } from "../../types/sharedTypes"; interface VersionUpgradeModalProps { - showVersionModal: boolean; - setShowVersionModal: (show: boolean) => void; + isOpen: boolean; + onClose: () => void; + releaseInfo: ReleaseInfo | null; + currentVersion: string; + latestVersion: string | null; } -export default function VersionUpgradeModal({ showVersionModal, setShowVersionModal }: VersionUpgradeModalProps) { +export default function VersionUpgradeModal({ + isOpen, + onClose, + releaseInfo, + currentVersion, + latestVersion +}: VersionUpgradeModalProps) { const { t } = useTranslation('common'); const [isUpdating, setIsUpdating] = useState(false); const [updateOutput, setUpdateOutput] = useState(''); const [updateError, setUpdateError] = useState(''); - const { latestVersion, currentVersion, releaseInfo } = useVersionCheck('siteboon', 'claudecodeui'); - if (!showVersionModal) return null; + if (!isOpen) return null; const handleUpdateNow = async () => { setIsUpdating(true); @@ -51,7 +59,7 @@ export default function VersionUpgradeModal({ showVersionModal, setShowVersionMo {/* Backdrop */}