import React, { useState } from 'react' import { Trash2, Eye, AlertTriangle } from 'lucide-react' import { useStoryStore } from '../../store/storyStore' import { useNotificationStore } from '../../store/notificationStore' import { useUIStore } from '../../store/uiStore' import { Story } from '../../types' import { StatusBadge, GenreBadge } from '../ui/Badge' import { Button } from '../ui/Button' import { Modal } from '../ui/Modal' import { useNavigate } from 'react-router-dom' export const ContentModerationTable: React.FC = () => { const { stories, deleteStory } = useStoryStore() const { addNotification } = useNotificationStore() const { addToast } = useUIStore() const navigate = useNavigate() const [confirmStory, setConfirmStory] = useState(null) const handleDelete = (story: Story) => { deleteStory(story.story_id) addNotification({ user_id: story.user_id, type: 'system', title: 'Story Removed', message: `Your story "${story.title}" has been removed by an administrator.`, }) addToast(`"${story.title}" removed from platform`, 'info') setConfirmStory(null) } const formatDate = (str: string) => new Date(str).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' }) return (
{stories.map(story => ( ))}
Story Author Genres Status Published Actions

{story.title}

{story.mature_content && ( 18+ )}
@{story.author_username}
{story.genres.slice(0, 2).map(g => )}
{formatDate(story.created_at)}
{stories.length === 0 && (
No stories to moderate.
)}
{/* Confirm modal */} setConfirmStory(null)} title="Remove Story" size="sm" > {confirmStory && (

"{confirmStory.title}"

This will permanently remove the story and notify the author. This action cannot be undone.

)}
) }