"use client"; import "./ReportLike.scss"; import Image from "next/image"; import like from "./icons/like.svg"; import { apiInstance } from "@/shared/config/apiConfig"; import { signIn, useSession } from "next-auth/react"; import { useEffect } from "react"; import { usePathname, useRouter } from "@/shared/config/navigation"; interface IReportLikeProps { count: number; report_id: number; } const ReportLike: React.FC = ({ count, report_id, }: IReportLikeProps) => { const session = useSession(); const router = useRouter(); const pathname = usePathname(); const Authorization = `Bearer ${session?.data?.access_token}`; const config = { headers: { Authorization, }, }; const checkLike = async () => { if (session.status === "unauthenticated") { signIn(undefined, { callbackUrl: pathname }); } const res = await apiInstance.get<{ detail: string }>( `/report/${report_id}/like/check/`, config ); return res.data; }; const likeReport = async () => { const isLiked = await checkLike(); if (isLiked.detail === "Like does not exist!") { await apiInstance.post( `/report/${report_id}/like/`, {}, config ); } else { await apiInstance.post( `/report/${report_id}/unlike/`, {}, config ); } router.refresh(); }; return ( ); }; export default ReportLike;