A social knowledge tool for researchers built on ATProto
1import { Button, Stack, Modal } from '@mantine/core';
2import useRemoveCardFromLibrary from '../../lib/mutations/useRemoveCardFromLibrary';
3import { notifications } from '@mantine/notifications';
4import { DANGER_OVERLAY_PROPS } from '@/styles/overlays';
5
6interface Props {
7 isOpen: boolean;
8 onClose: () => void;
9 cardId: string;
10}
11
12export default function RemoveCardFromLibraryModal(props: Props) {
13 const removeCardFromLibrary = useRemoveCardFromLibrary();
14
15 const handleRemoveCardFromLibrary = () => {
16 removeCardFromLibrary.mutate(props.cardId, {
17 onError: () => {
18 notifications.show({
19 message: 'Could not remove card from library.',
20 position: 'top-center',
21 });
22 },
23 onSettled: () => {
24 props.onClose();
25 },
26 });
27 };
28
29 return (
30 <Modal
31 opened={props.isOpen}
32 onClose={props.onClose}
33 withCloseButton={false}
34 title="Remove card from library"
35 size={'xs'}
36 overlayProps={DANGER_OVERLAY_PROPS}
37 centered
38 onClick={(e) => e.stopPropagation()}
39 >
40 <Stack>
41 <Button variant="subtle" size="md" color="gray" onClick={props.onClose}>
42 Cancel
43 </Button>
44 <Button
45 color="red"
46 size="md"
47 onClick={handleRemoveCardFromLibrary}
48 loading={removeCardFromLibrary.isPending}
49 >
50 Remove
51 </Button>
52 </Stack>
53 </Modal>
54 );
55}