mirror of
https://github.com/utopia-os/utopia-ui.git
synced 2026-01-20 20:01:18 +00:00
50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import QRCode from 'react-qr-code'
|
|
|
|
import DialogModal from '#components/Templates/DialogModal'
|
|
|
|
import { useShareLogic } from './hooks'
|
|
import { ItemAvatar } from './ItemAvatar'
|
|
import { ShareButton } from './ShareButton'
|
|
|
|
import type { Item } from '#types/Item'
|
|
|
|
interface QRModalProps {
|
|
item: Item
|
|
isOpen: boolean
|
|
onClose: () => void
|
|
}
|
|
|
|
export function QRModal({ item, isOpen, onClose }: QRModalProps) {
|
|
const { inviteLink } = useShareLogic(item)
|
|
|
|
return (
|
|
<DialogModal
|
|
isOpened={isOpen}
|
|
showCloseButton={true}
|
|
onClose={onClose}
|
|
className='tw:w-[calc(100vw-2rem)] tw:!max-w-96'
|
|
>
|
|
<div
|
|
onClick={(e) => {
|
|
e.stopPropagation()
|
|
}}
|
|
className='tw:text-center tw:p-4'
|
|
>
|
|
<p className='tw:text-xl tw:font-bold'>Share your Profile to expand your Network!</p>
|
|
|
|
<div className='tw:flex tw:flex-col tw:items-center tw:gap-4 tw:my-8'>
|
|
<ItemAvatar item={item} extraLarge={true} />
|
|
<div className='tw:p-8 tw:mt-4 tw:rounded-lg tw:inline-block tw:border-base-300 tw:bg-base-200 tw:border-1'>
|
|
<QRCode value={inviteLink} size={164} />
|
|
</div>
|
|
</div>
|
|
|
|
<div className='tw:flex tw:items-center tw:gap-2 tw:w-full tw:border-base-300 tw:border-1 tw:rounded-selector tw:p-2'>
|
|
<span className='tw:text-sm tw:truncate tw:flex-1 tw:min-w-0'>{inviteLink}</span>
|
|
<ShareButton item={item} dropdownDirection='up' />
|
|
</div>
|
|
</div>
|
|
</DialogModal>
|
|
)
|
|
}
|