import { generateId } from "@/lib/id" import { mockComments } from "@/lib/mock" import type { Comment, User } from "@/lib/types" import { create } from "zustand" interface CommentState { comments: Comment[] addComment: (postId: string, author: User, content: string) => Comment | null toggleCommentLike: (commentId: string) => void } export const useCommentStore = create((set) => ({ comments: mockComments, addComment: (postId, author, content) => { const normalizedContent = content.trim() if (!normalizedContent) return null const comment: Comment = { id: generateId("comment"), postId, author, content: normalizedContent, likeCount: 0, liked: false, createdAt: new Date().toISOString(), } set((state) => ({ comments: [...state.comments, comment], })) return comment }, toggleCommentLike: (commentId) => { set((state) => ({ comments: state.comments.map((comment) => { if (comment.id !== commentId) return comment const liked = !comment.liked return { ...comment, liked, likeCount: liked ? comment.likeCount + 1 : Math.max(0, comment.likeCount - 1), } }), })) }, }))