Newer
Older

DESKTOP-9FO96TP\hehexd
committed
"use client"

DESKTOP-9FO96TP\hehexd
committed
import { useRouter } from "next/navigation";
import { Icons } from "./icons";
import { Button } from "./ui/button";

DESKTOP-9FO96TP\hehexd
committed
type postType = Prisma.PostUncheckedCreateInput
type commentType = Prisma.CommentUncheckedCreateInput
//type commentWithLikes = Prisma.CommentGetPayload<typeof commentWithPosts>

DESKTOP-9FO96TP\hehexd
committed
export default function LikeButton(props: { data: any }) {

DESKTOP-9FO96TP\hehexd
committed
const router = useRouter();
const likeCount = props.data.Like.length
/* const likeCount = props.data.likeCount */
const likeArray = props.data.Like
/* const likeCount = countLikes(likeArray, props.data); */

DESKTOP-9FO96TP\hehexd
committed
async function postLike(e: any) {
e.preventDefault()
const postLikeData = props.data;

DESKTOP-9FO96TP\hehexd
committed
const likeData = {} as likeType
if (postLikeData.postId == undefined) {
likeData.postId = postLikeData.id!
} else {
likeData.postId = postLikeData.postId
likeData.commentId = postLikeData.id
}
likeData.userId = postLikeData.userId
console.log(likeData.commentId)

DESKTOP-9FO96TP\hehexd
committed
const response = await fetch('http://localhost:3000/api/likes', {
method: 'PUT',
body: JSON.stringify(likeData)
})

DESKTOP-9FO96TP\hehexd
committed
startTransition(() => {
// Refresh the current route and fetch new data from the server without
// losing client-side browser or React state.
router.refresh();
});
return await response.json()
}
return (
<div>
<form onSubmit={postLike}>
<Button type="submit" variant="ghost" size="lg" className="float-right" >

DESKTOP-9FO96TP\hehexd
committed
</form>
</div>
)
}
function countLikes(likeArray: any, msg: any): number {
let likeCount = 0;
if (msg.postId == undefined) {
likeArray.forEach(function (like: any) {
if (like.postId == undefined) {
likeCount++;
}
})
} else {
likeArray.forEach(function (like: any) {
if (like.postId != undefined) {
likeCount++;
}
})
}
return likeCount;
}