A social knowledge tool for researchers built on ATProto
at main 1.0 kB view raw
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}