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 AnswerField from "./AnswerField"; import SendAnswer from "./SendAnswer"; import { alert, isUserLoggedIn, timeAgo } from "@/helper"; import { request } from "@/services/response"; import { useState } from "react"; function ItemUser({ update, setUpdate, data }) { const [loadingLike, setLoadingLike] = useState(false); const [loadingDislike, setLoadingDislike] = useState(false); const SendReq = async (type) => { if (type === "like") setLoadingLike(true); else setLoadingDislike(true); const body = { comment_id: data.id, like: type === "like" ? 1 : 0, }; try { const res = await request.postCommentsLike(body); } catch (err) { // err } finally { if (type === "like") setLoadingLike(false); else setLoadingDislike(false); } }; const handleLike = (data, type) => { SendReq(type); const { current_user_like } = data.like_status; if (type === "like") { if (current_user_like.like) { data.like_status.like_count -= 1; current_user_like.like = false; } else { data.like_status.like_count += 1; current_user_like.like = true; if (current_user_like.dislike) { data.like_status.dislike_count -= 1; current_user_like.dislike = false; } } } else { if (current_user_like.dislike) { data.like_status.dislike_count -= 1; current_user_like.dislike = false; } else { data.like_status.dislike_count += 1; current_user_like.dislike = true; if (current_user_like.like) { data.like_status.like_count -= 1; current_user_like.like = false; } } } setUpdate(!update); }; return (
  • profile

    {data.author.real_name}

    {timeAgo(data.created)}

    {data.comment}

    {/* لایک */}
    handleLike(data, "like")} > {loadingLike ? ( ) : data.like_status.current_user_like.like ? ( ) : ( )}

    {data.like_status.like_count || ""}

    {/* دیس‌لایک */}
    handleLike(data, "dislike")} > {loadingDislike ? ( ) : data.like_status.current_user_like.dislike ? ( ) : ( )}

    {data.like_status.dislike_count || ""}

    {!!data.replies.length && ( )}
  • ); } export default ItemUser;