import { useState } from 'react' import { Settings, Heart, Edit2, Star, Shield } from 'lucide-react' import { updateProfile } from '../utils/api' import { hapticFeedback, openTelegramLink } from '../utils/telegram' import ThemeToggle from '../components/ThemeToggle' import './Profile.css' export default function Profile({ user, setUser }) { const [showSettings, setShowSettings] = useState(false) const [showEditBio, setShowEditBio] = useState(false) const [bio, setBio] = useState(user.bio || '') const [settings, setSettings] = useState(user.settings || { whitelist: { noFurry: false, onlyAnime: false, noNSFW: true }, searchPreference: 'mixed' }) const [saving, setSaving] = useState(false) const handleSaveBio = async () => { try { setSaving(true) hapticFeedback('light') const updatedUser = await updateProfile({ bio }) setUser({ ...user, bio }) setShowEditBio(false) hapticFeedback('success') } catch (error) { console.error('Ошибка сохранения:', error) hapticFeedback('error') } finally { setSaving(false) } } const handleSaveSettings = async () => { try { setSaving(true) hapticFeedback('light') const updatedUser = await updateProfile({ settings }) setUser({ ...user, settings }) setShowSettings(false) hapticFeedback('success') } catch (error) { console.error('Ошибка сохранения:', error) hapticFeedback('error') } finally { setSaving(false) } } const handleDonate = () => { hapticFeedback('light') // В будущем здесь будет интеграция Telegram Stars openTelegramLink('https://t.me/donate') } const updateWhitelistSetting = async (key, value) => { const newSettings = { ...settings, whitelist: { ...settings.whitelist, [key]: value } } setSettings(newSettings) // Сохранить сразу на сервер try { await updateProfile({ settings: newSettings }) hapticFeedback('success') } catch (error) { console.error('Ошибка сохранения настроек:', error) hapticFeedback('error') } } const updateSearchPreference = (value) => { setSettings({ ...settings, searchPreference: value }) } return (
@{user.username}
{user.bio ? ({user.bio}