import { useState, useEffect } from 'react'; import { Button } from './ui/button'; import { Input } from './ui/input'; import { GitBranch, Check } from 'lucide-react'; import { authenticatedFetch } from '../utils/api'; import { useTranslation } from 'react-i18next'; function GitSettings() { const { t } = useTranslation('settings'); const [gitName, setGitName] = useState(''); const [gitEmail, setGitEmail] = useState(''); const [gitConfigLoading, setGitConfigLoading] = useState(false); const [gitConfigSaving, setGitConfigSaving] = useState(false); const [saveStatus, setSaveStatus] = useState(null); useEffect(() => { loadGitConfig(); }, []); const loadGitConfig = async () => { try { setGitConfigLoading(true); const response = await authenticatedFetch('/api/user/git-config'); if (response.ok) { const data = await response.json(); setGitName(data.gitName || ''); setGitEmail(data.gitEmail || ''); } } catch (error) { console.error('Error loading git config:', error); } finally { setGitConfigLoading(false); } }; const saveGitConfig = async () => { try { setGitConfigSaving(true); const response = await authenticatedFetch('/api/user/git-config', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ gitName, gitEmail }) }); if (response.ok) { setSaveStatus('success'); setTimeout(() => setSaveStatus(null), 3000); } else { const data = await response.json(); setSaveStatus('error'); console.error('Failed to save git config:', data.error); } } catch (error) { console.error('Error saving git config:', error); setSaveStatus('error'); } finally { setGitConfigSaving(false); } }; return (

{t('git.title')}

{t('git.description')}

setGitName(e.target.value)} placeholder="John Doe" disabled={gitConfigLoading} className="w-full" />

{t('git.name.help')}

setGitEmail(e.target.value)} placeholder="john@example.com" disabled={gitConfigLoading} className="w-full" />

{t('git.email.help')}

{saveStatus === 'success' && (
{t('git.status.success')}
)}
); } export default GitSettings;