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.description')}
{t('git.name.help')}
{t('git.email.help')}