import React, { useEffect } from 'react' import { useNavigate } from 'react-router-dom' import { Plus, BookOpen, Heart, MessageCircle, TrendingUp, Bell } from 'lucide-react' import { useAuthStore } from '../../store/authStore' import { useStoryStore } from '../../store/storyStore' import { useNotificationStore } from '../../store/notificationStore' import { Button } from '../../components/ui/Button' import { StatusBadge } from '../../components/ui/Badge' import { StoryAnalytics } from '../../components/writer/StoryAnalytics' function timeAgo(str: string): string { const diff = Date.now() - new Date(str).getTime() const m = Math.floor(diff / 60000) if (m < 1) return 'just now' if (m < 60) return `${m}m ago` const h = Math.floor(m / 60) if (h < 24) return `${h}h ago` return `${Math.floor(h / 24)}d ago` } export const WriterDashboard: React.FC = () => { const navigate = useNavigate() const { currentUser } = useAuthStore() const { stories, collaborations, fetchStories } = useStoryStore() const { notifications } = useNotificationStore() useEffect(() => { fetchStories() }, []) if (!currentUser) return null const ownedStories = stories.filter(s => s.user_id === currentUser.user_id) const collabStoryIds = new Set(collaborations.filter(c => c.user_id === currentUser.user_id).map(c => c.story_id)) const collabStories = stories.filter(s => collabStoryIds.has(s.story_id)) const myStories = ownedStories const allDashboardStories = [...ownedStories, ...collabStories] const published = myStories.filter(s => s.status === 'published') const drafts = myStories.filter(s => s.status === 'draft') const totalLikes = myStories.reduce((acc, s) => acc + s.total_likes, 0) const recentNotifs = notifications.slice(0, 5) return (
Here's how your stories are performing
{s.value}
{s.label}
{s.sub}
Start your writing journey today!
{n.title}
{n.message}
{timeAgo(n.created_at)}