Skip to content
Snippets Groups Projects
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>
  );
}