'use client';
import { useRouter } from 'next/navigation';
import { useState } from 'react';
interface Props {
circleId: string;
initialMember: boolean;
isPublic: boolean;
}
export function CircleJoinButton({ circleId, initialMember, isPublic }: Props) {
const router = useRouter();
const [member, setMember] = useState(initialMember);
const [loading, setLoading] = useState(false);
const act = async (action: 'join' | 'leave') => {
setLoading(true);
try {
const res = await fetch(`/api/my/circles/${circleId}/${action}`, { method: 'POST' });
if (res.ok) {
setMember(action === 'join');
router.refresh();
}
} finally {
setLoading(false);
}
};
if (member) {
return (
);
}
return (
);
}