A social knowledge tool for researchers built on ATProto
1import type { UrlCard, User } from '@/api-client';
2import { getDomain } from '@/lib/utils/link';
3import { UPDATE_OVERLAY_PROPS } from '@/styles/overlays';
4import { Modal, Text } from '@mantine/core';
5import NoteCardModalContent from './NoteCardModalContent';
6import { Suspense } from 'react';
7import NoteCardModalContentSkeleton from './Skeleton.NoteCardModalContent';
8
9interface Props {
10 isOpen: boolean;
11 onClose: () => void;
12 note: UrlCard['note'];
13 cardContent: UrlCard['cardContent'];
14 cardAuthor?: User;
15}
16
17export default function NoteCardModal(props: Props) {
18 const domain = getDomain(props.cardContent.url);
19
20 return (
21 <Modal
22 opened={props.isOpen}
23 onClose={props.onClose}
24 title={<Text fw={600}>Note</Text>}
25 overlayProps={UPDATE_OVERLAY_PROPS}
26 centered
27 onClick={(e) => e.stopPropagation()}
28 >
29 <Suspense fallback={<NoteCardModalContentSkeleton />}>
30 <NoteCardModalContent {...props} domain={domain} />
31 </Suspense>
32 </Modal>
33 );
34}