made like

This commit is contained in:
Alibek 2024-02-19 16:32:34 +06:00
parent 16bb5a4a1a
commit 7a9ba30e8f
2 changed files with 45 additions and 7 deletions

View File

@ -19,11 +19,12 @@ const ReportDetails = async ({
params: { id: string }; params: { id: string };
}) => { }) => {
const getReportDetails = async () => { const getReportDetails = async () => {
const res = await apiInstance.get<IReport>( const res = await fetch(
`/report/${params.id}/` `${process.env.NEXT_PUBLIC_BASE_API}/report/${params.id}/`,
{ cache: "no-store" }
); );
return res.data; return res.json();
}; };
const report: IReport = await getReportDetails(); const report: IReport = await getReportDetails();
@ -75,6 +76,7 @@ const ReportDetails = async ({
return images; return images;
}; };
return ( return (
<div className="report-details page-padding"> <div className="report-details page-padding">
<div className="report-details__container"> <div className="report-details__container">
@ -94,7 +96,10 @@ const ReportDetails = async ({
, {report.created_at.slice(0, 4)} , {report.created_at.slice(0, 4)}
</p> </p>
</div> </div>
<ReportLike count={report.total_likes} /> <ReportLike
count={report.total_likes}
report_id={report.id}
/>
</div> </div>
<p className="report-information__description"> <p className="report-information__description">

View File

@ -1,20 +1,53 @@
"use client";
import "./ReportLike.scss"; import "./ReportLike.scss";
import Image from "next/image"; import Image from "next/image";
import like from "./icons/like.svg"; import like from "./icons/like.svg";
import { apiInstance } from "@/shared/config/apiConfig"; import { apiInstance } from "@/shared/config/apiConfig";
import { useRouter } from "next/navigation";
import { useSession } from "next-auth/react";
interface IReportLikeProps { interface IReportLikeProps {
count: number; count: number;
report_id: number;
} }
const ReportLike: React.FC<IReportLikeProps> = ({ const ReportLike: React.FC<IReportLikeProps> = ({
count, count,
report_id,
}: IReportLikeProps) => { }: IReportLikeProps) => {
const likeReport = async () => { const session = useSession();
const res = await apiInstance.post(""); const router = useRouter();
const getFans = async () => {
const res = await apiInstance.get(
`/report/${report_id}/get_fans`
);
return res.data;
}; };
const likeReport = async () => {
const Authorization = `Bearer ${session?.data?.access_token}`;
const config = {
headers: {
Authorization,
},
};
// console.log(getFans());
const res = await apiInstance.post(
`/report/${report_id}/like/`,
{},
config
);
router.refresh();
};
return ( return (
<button className="report-like"> <button onClick={likeReport} className="report-like">
<Image src={like} alt="Like Icon" /> <Image src={like} alt="Like Icon" />
<span>{count}</span> <span>{count}</span>
</button> </button>