'use client'; import React, { useState } from 'react'; import { Save, Plus, Edit, Trash2, Settings as SettingsIcon, Palette, Globe } from 'lucide-react'; import { NEWS_CATEGORIES } from '@/lib/types'; export default function SettingsPage() { const [activeTab, setActiveTab] = useState('categories'); const [isSubmitting, setIsSubmitting] = useState(false); const [categories, setCategories] = useState(NEWS_CATEGORIES); const [newCategory, setNewCategory] = useState({ name: '', description: '', color: 'bg-blue-500' }); const [generalSettings, setGeneralSettings] = useState({ siteTitle: 'CKE Project', newsPerPage: 10, autoPublish: true, requireModeration: false, allowComments: false, emailNotifications: true }); const colorOptions = [ { value: 'bg-blue-500', label: 'Синий', color: 'bg-blue-500' }, { value: 'bg-green-500', label: 'Зеленый', color: 'bg-green-500' }, { value: 'bg-red-500', label: 'Красный', color: 'bg-red-500' }, { value: 'bg-yellow-500', label: 'Желтый', color: 'bg-yellow-500' }, { value: 'bg-purple-500', label: 'Фиолетовый', color: 'bg-purple-500' }, { value: 'bg-pink-500', label: 'Розовый', color: 'bg-pink-500' }, { value: 'bg-indigo-500', label: 'Индиго', color: 'bg-indigo-500' }, { value: 'bg-gray-500', label: 'Серый', color: 'bg-gray-500' } ]; const tabs = [ { id: 'categories', name: 'Категории', icon: Palette }, { id: 'general', name: 'Общие', icon: SettingsIcon }, { id: 'seo', name: 'SEO', icon: Globe } ]; const handleAddCategory = () => { if (!newCategory.name.trim()) return; const category = { id: newCategory.name.toLowerCase().replace(/\s+/g, '-'), name: newCategory.name, description: newCategory.description, color: newCategory.color }; setCategories([...categories, category]); setNewCategory({ name: '', description: '', color: 'bg-blue-500' }); }; const handleDeleteCategory = (id: string) => { if (confirm('Вы уверены, что хотите удалить эту категорию?')) { setCategories(categories.filter(cat => cat.id !== id)); } }; const handleSaveSettings = async () => { setIsSubmitting(true); try { // В реальном приложении здесь будет API вызов console.log('Saving settings:', { categories, generalSettings }); // Имитация задержки await new Promise(resolve => setTimeout(resolve, 1000)); alert('Настройки сохранены успешно!'); } catch (error) { console.error('Error saving settings:', error); alert('Ошибка при сохранении настроек'); } finally { setIsSubmitting(false); } }; return (
Управление настройками системы новостей
{category.description}