import { useCallback, useState } from 'react' import { Button, Modal, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalOverlay, } from '@chakra-ui/react' import { cx } from '@emotion/css' import GroupAPI, { Group } from '@/client/api/group' import { User } from '@/client/idp/user' import userToString from '@/helpers/user-to-string' export type GroupRemoveMemberProps = { group: Group user: User isOpen: boolean onClose?: () => void onCompleted?: () => void } const GroupRemoveMember = ({ group, user, isOpen, onCompleted, onClose, }: GroupRemoveMemberProps) => { const [loading, setLoading] = useState(false) const handleRemoveMember = useCallback(async () => { try { setLoading(true) await GroupAPI.removeMember(group.id, { userId: user.id, }) onCompleted?.() onClose?.() } finally { setLoading(false) } }, [group, user, onCompleted, onClose]) return ( onClose?.()} closeOnOverlayClick={false} > Remove Member
Are you sure you would like to remove member{' '} {userToString(user)} from group {group.name}?
) } export default GroupRemoveMember