import { useState, useEffect } from 'react' import { Settings as SettingsIcon, Play, CheckCircle, Languages, Coins, Upload } from 'lucide-react' import { api } from '../utils/api' import { useLanguage } from '../i18n/LanguageContext' import { CURRENCIES } from '../i18n/LanguageContext' export default function Settings() { const { t, lang, setLang, currency, setCurrency } = useLanguage() const [restarting, setRestarting] = useState(false) const [success, setSuccess] = useState(false) const [maxSizeMB, setMaxSizeMB] = useState(50) const [sizeSaving, setSizeSaving] = useState(false) const [sizeSaved, setSizeSaved] = useState(false) useEffect(() => { api.get('/settings/app').then(s => setMaxSizeMB(s.uploadMaxSizeMB || 50)).catch(() => {}) }, []) const handleSaveMaxSize = async () => { setSizeSaving(true) setSizeSaved(false) try { const res = await api.patch('/settings/app', { uploadMaxSizeMB: maxSizeMB }) setMaxSizeMB(res.uploadMaxSizeMB) setSizeSaved(true) setTimeout(() => setSizeSaved(false), 2000) } catch (err) { alert(err.message || 'Failed to save') } finally { setSizeSaving(false) } } const handleRestartTutorial = async () => { setRestarting(true) setSuccess(false) try { await api.patch('/users/me/tutorial', { completed: false }) setSuccess(true) setTimeout(() => { window.location.reload() // Reload to trigger tutorial }, 1500) } catch (err) { console.error('Failed to restart tutorial:', err) alert('Failed to restart tutorial') } finally { setRestarting(false) } } return (
{t('settings.preferences')}
{t('settings.currencyHint')}
{t('settings.maxFileSizeHint')}
{t('settings.tutorialDesc')}
{success && ({t('settings.reloadingPage')}
)}