"use client"; import Image from "next/image"; import { imageUrl } from "@/helper"; import { Button, CircularProgress } from "@mui/material"; // Icons import BoldDisLikeComment from "@/components/icons/BoldDisLikeComment"; import BoldLikeComment from "@/components/icons/BoldLikeComment"; import DisLikeComment from "@/components/icons/DisLikeComment"; import LikeComment from "@/components/icons/LikeComment"; import Replies from "./Replies"; import SendAnswer from "./SendAnswer"; import { alert, isUserLoggedIn, timeAgo } from "@/helper"; import { request } from "@/services/response"; import { useState } from "react"; function ItemUser({ data, doctor, isReply = false }) { const [loadingLike, setLoadingLike] = useState(false); const [loadingDislike, setLoadingDislike] = useState(false); const [openAnswer, setOpenAnswer] = useState(false); const [status, setStatus] = useState({ like_count: data.like_status?.like_count || 0, dislike_count: data.like_status?.dislike_count || 0, like: data.like_status?.current_user_like?.like || false, dislike: data.like_status?.current_user_like?.dislike || false, }); const sendReq = async (type) => { if (!isUserLoggedIn()) { alert("warning", "برای ثبت نظر باید ابتدا وارد حساب کاربری شوید."); return; } if (type === "like") setLoadingLike(true); else setLoadingDislike(true); try { const res = await request.postCommentsLike(data.uuid, type === "like" ? 1 : -1); const d = res.data; setStatus({ like_count: d.like_count, dislike_count: d.dislike_count, like: d.current_user_like.like, dislike: d.current_user_like.dislike, }); } catch (err) { alert("error", "خطایی رخ داد! لطفاً دوباره تلاش کنید."); } finally { if (type === "like") setLoadingLike(false); else setLoadingDislike(false); } }; const toggleAnswer = () => { if (isUserLoggedIn()) { setOpenAnswer((prev) => !prev); } else { alert("warning", "برای ارسال پاسخ باید ابتدا وارد حساب کاربری شوید."); } }; return (
{data.author?.real_name}
{timeAgo(data.created)}
{data.comment}
{status.like_count || ""}
{status.dislike_count || ""}