import { useEffect } from 'react' import { useForumData } from './useForumData' import { AdminView } from './admin/AdminView' import { Container } from '@/components/shared' import { Helmet } from 'react-helmet' import { useLocalization } from '@/utils/hooks/useLocalization' export function Management() { const { categories, topics, posts, loading, error, createCategory, updateCategory, updateCategoryLockState, updateCategoryActiveState, deleteCategory, createTopic, updateTopic, deleteTopic, pinTopic, unpinTopic, lockTopic, unlockTopic, solvedTopic, unsolvedTopic, createPost, updatePost, deletePost, markPostAsAcceptedAnswer, unmarkPostAsAcceptedAnswer, clearError, } = useForumData() const { translate } = useLocalization() useEffect(() => { const handleKeyDown = (e: KeyboardEvent) => { if ((e.metaKey || e.ctrlKey) && e.key === 'k') { e.preventDefault() // Search modal will be opened by Header component } } document.addEventListener('keydown', handleKeyDown) return () => document.removeEventListener('keydown', handleKeyDown) }, []) useEffect(() => { if (error) { const timer = setTimeout(() => { clearError() }, 5000) return () => clearTimeout(timer) } }, [error, clearError]) return ( {error && (
Error: {error}
)} createCategory(data).then(() => {})} onUpdateCategory={(id, data) => updateCategory(id, data).then(() => {})} onUpdateCategoryLockState={(id) => updateCategoryLockState(id).then(() => {})} onUpdateCategoryActiveState={(id) => updateCategoryActiveState(id).then(() => {})} onDeleteCategory={(id) => deleteCategory(id).then(() => {})} onCreateTopic={(data) => createTopic(data).then(() => {})} onUpdateTopic={(id, data) => updateTopic(id, data).then(() => {})} onDeleteTopic={(id) => deleteTopic(id).then(() => {})} onPinTopic={(id) => pinTopic(id).then(() => {})} onUnpinTopic={(id) => unpinTopic(id).then(() => {})} onLockTopic={(id) => lockTopic(id).then(() => {})} onUnlockTopic={(id) => unlockTopic(id).then(() => {})} onMarkTopicAsSolved={(id) => solvedTopic(id).then(() => {})} onMarkTopicAsUnsolved={(id) => unsolvedTopic(id).then(() => {})} onCreatePost={(data) => createPost(data).then(() => {})} onUpdatePost={(id, data) => updatePost(id, data).then(() => {})} onDeletePost={(id) => deletePost(id).then(() => {})} onMarkPostAsAcceptedAnswer={(id) => markPostAsAcceptedAnswer(id).then(() => {})} onUnmarkPostAsAcceptedAnswer={(id) => unmarkPostAsAcceptedAnswer(id).then(() => {})} />
) } export default Management