following-button.tsx 1.22 KiB
import { useState } from 'react';
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
export default function FollowButton({ userId, followerId }) {
const [isFollowing, setIsFollowing] = useState(false);
const handleFollow = async () => {
try {
// Überprüfen, ob der Benutzer bereits folgt
const isAlreadyFollowing = await prisma.followers.findFirst({
where: {
userId: followerId,
followerId: userId,
},
});
if (isAlreadyFollowing) {
// Benutzer ist bereits ein Follower, daher folgen aufheben
await prisma.followers.delete({
where: {
userId: followerId,
followerId: userId,
},
});
setIsFollowing(false);
} else {
// Benutzer folgt noch nicht, daher folgen
await prisma.followers.create({
data: {
userId: followerId,
followerId: userId,
},
});
setIsFollowing(true);
}
} catch (error) {
console.error('Error following/unfollowing user:', error);
}
};
return (
<button onClick={handleFollow}>
{isFollowing ? 'Unfollow' : 'Follow'}
</button>
);
}