import React, { useState } from 'react' import { FaFolder, FaCommentAlt, FaFileAlt, FaChartBar } from 'react-icons/fa' import { CategoryManagement } from './CategoryManagement' import { TopicManagement } from './TopicManagement' import { PostManagement } from './PostManagement' import { ForumCategory, ForumPost, ForumTopic } from '@/proxy/forum/forum' import { AdminStats } from './Dashboard' import { useLocalization } from '@/utils/hooks/useLocalization' import { Button } from '@/components/ui' interface AdminViewProps { categories: ForumCategory[] topics: ForumTopic[] posts: ForumPost[] loading: boolean onCreateCategory: (category: { name: string slug: string description: string icon: string displayOrder: number isActive: boolean isLocked: boolean }) => Promise onUpdateCategory: (id: string, category: Partial) => Promise onUpdateCategoryLockState: (id: string) => Promise onUpdateCategoryActiveState: (id: string) => Promise onDeleteCategory: (id: string) => Promise onCreateTopic: (topic: { title: string content: string categoryId: string isPinned?: boolean isLocked?: boolean }) => Promise onUpdateTopic: (id: string, topic: Partial) => Promise onDeleteTopic: (id: string) => Promise onPinTopic: (id: string) => Promise onUnpinTopic: (id: string) => Promise onLockTopic: (id: string) => Promise onUnlockTopic: (id: string) => Promise onMarkTopicAsSolved: (id: string) => Promise onMarkTopicAsUnsolved: (id: string) => Promise onCreatePost: (post: { topicId: string; content: string; parentPostId?: string }) => Promise onUpdatePost: (id: string, post: Partial) => Promise onDeletePost: (id: string) => Promise onMarkPostAsAcceptedAnswer: (id: string) => Promise onUnmarkPostAsAcceptedAnswer: (id: string) => Promise } type AdminSection = 'stats' | 'categories' | 'topics' | 'posts' export function AdminView({ categories, topics, posts, loading, onCreateCategory, onUpdateCategory, onDeleteCategory, onUpdateCategoryLockState, onUpdateCategoryActiveState, onCreateTopic, onUpdateTopic, onDeleteTopic, onPinTopic, onUnpinTopic, onLockTopic, onUnlockTopic, onMarkTopicAsSolved, onMarkTopicAsUnsolved, onCreatePost, onUpdatePost, onDeletePost, onMarkPostAsAcceptedAnswer, onUnmarkPostAsAcceptedAnswer, }: AdminViewProps) { const [activeSection, setActiveSection] = useState('stats') const { translate } = useLocalization() const navigationItems = [ { id: 'stats' as AdminSection, label: translate('::App.Forum.Dashboard'), icon: FaChartBar, }, { id: 'categories' as AdminSection, label: translate('::App.Forum.Dashboard.Categories'), icon: FaFolder, }, { id: 'topics' as AdminSection, label: translate('::App.Forum.Dashboard.Topics'), icon: FaCommentAlt, }, { id: 'posts' as AdminSection, label: translate('::App.Forum.Dashboard.Posts'), icon: FaFileAlt, }, ] return (
{/* Sidebar Navigation */}
{/* Main Content */}
{activeSection === 'stats' && ( )} {activeSection === 'categories' && ( )} {activeSection === 'topics' && ( )} {activeSection === 'posts' && ( )}
) }