import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { X, RefreshCw } from 'lucide-react'; import { checkLatestVersion, compareVersions } from '@/utils/version'; interface AboutDialogProps { isOpen: boolean; onClose: () => void; version: string; } const AboutDialog: React.FC = ({ isOpen, onClose, version }) => { const { t } = useTranslation(); const [hasNewVersion, setHasNewVersion] = useState(false); const [latestVersion, setLatestVersion] = useState(""); const [isChecking, setIsChecking] = useState(false); const checkForUpdates = async () => { setIsChecking(true); try { const latest = await checkLatestVersion(); if (latest) { setLatestVersion(latest); setHasNewVersion(compareVersions(version, latest) > 0); } } catch (error) { console.error('Failed to check for updates:', error); } finally { setIsChecking(false); } }; useEffect(() => { if (isOpen) { checkForUpdates(); } }, [isOpen, version]); if (!isOpen) return null; return (
{/* Close button (X) in the top-right corner */}

{t('about.title')}

{t('about.currentVersion')}: {version}
{hasNewVersion && latestVersion && (

{t('about.newVersionAvailable', { version: latestVersion })}

{t('about.viewOnGitHub')}

)}
); }; export default AboutDialog;