chore(git): merge pull request #222 from issues/221-popup-feed into staging
All checks were successful
Release to Staging / build_and_release (push) Successful in 1m10s
All checks were successful
Release to Staging / build_and_release (push) Successful in 1m10s
Reviewed-on: #222
This commit is contained in:
commit
61eeb7b0d4
@ -28,6 +28,7 @@ import { ZapPopUp } from './Zap'
|
|||||||
import placeholder from '../assets/img/DEGMods Placeholder Img.png'
|
import placeholder from '../assets/img/DEGMods Placeholder Img.png'
|
||||||
import { NDKEvent, NDKSubscriptionCacheUsage } from '@nostr-dev-kit/ndk'
|
import { NDKEvent, NDKSubscriptionCacheUsage } from '@nostr-dev-kit/ndk'
|
||||||
import { useProfile } from 'hooks/useProfile'
|
import { useProfile } from 'hooks/useProfile'
|
||||||
|
import { createPortal } from 'react-dom'
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
pubkey: string
|
pubkey: string
|
||||||
@ -250,15 +251,6 @@ export const ProfileQRButtonWithPopUp = ({
|
|||||||
|
|
||||||
useBodyScrollDisable(isOpen)
|
useBodyScrollDisable(isOpen)
|
||||||
|
|
||||||
const onQrCodeClicked = async () => {
|
|
||||||
const href = `https://njump.me/${nprofile}`
|
|
||||||
const a = document.createElement('a')
|
|
||||||
a.href = href
|
|
||||||
a.target = '_blank' // Open in a new tab
|
|
||||||
a.rel = 'noopener noreferrer' // Recommended for security reasons
|
|
||||||
a.click()
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div
|
<div
|
||||||
@ -278,6 +270,30 @@ export const ProfileQRButtonWithPopUp = ({
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{isOpen && (
|
{isOpen && (
|
||||||
|
<ProfileQRPopup
|
||||||
|
nprofile={nprofile}
|
||||||
|
handleClose={() => setIsOpen(false)}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
interface ProfileQRPopupProps {
|
||||||
|
nprofile: string
|
||||||
|
handleClose: () => void
|
||||||
|
}
|
||||||
|
|
||||||
|
const ProfileQRPopup = ({ nprofile, handleClose }: ProfileQRPopupProps) => {
|
||||||
|
const onQrCodeClicked = async () => {
|
||||||
|
const href = `https://njump.me/${nprofile}`
|
||||||
|
const a = document.createElement('a')
|
||||||
|
a.href = href
|
||||||
|
a.target = '_blank' // Open in a new tab
|
||||||
|
a.rel = 'noopener noreferrer' // Recommended for security reasons
|
||||||
|
a.click()
|
||||||
|
}
|
||||||
|
|
||||||
|
return createPortal(
|
||||||
<div className='popUpMain'>
|
<div className='popUpMain'>
|
||||||
<div className='ContainerMain'>
|
<div className='ContainerMain'>
|
||||||
<div className='popUpMainCardWrapper'>
|
<div className='popUpMainCardWrapper'>
|
||||||
@ -286,10 +302,7 @@ export const ProfileQRButtonWithPopUp = ({
|
|||||||
<div className='popUpMainCardTopInfo'>
|
<div className='popUpMainCardTopInfo'>
|
||||||
<h3>Nostr Address</h3>
|
<h3>Nostr Address</h3>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div className='popUpMainCardTopClose' onClick={handleClose}>
|
||||||
className='popUpMainCardTopClose'
|
|
||||||
onClick={() => setIsOpen(false)}
|
|
||||||
>
|
|
||||||
<svg
|
<svg
|
||||||
xmlns='http://www.w3.org/2000/svg'
|
xmlns='http://www.w3.org/2000/svg'
|
||||||
viewBox='-96 0 512 512'
|
viewBox='-96 0 512 512'
|
||||||
@ -314,9 +327,8 @@ export const ProfileQRButtonWithPopUp = ({
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>,
|
||||||
)}
|
document.body
|
||||||
</>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,6 +27,7 @@ import {
|
|||||||
} from '../utils'
|
} from '../utils'
|
||||||
import { LoadingSpinner } from './LoadingSpinner'
|
import { LoadingSpinner } from './LoadingSpinner'
|
||||||
import { FALLBACK_PROFILE_IMAGE } from 'constants.ts'
|
import { FALLBACK_PROFILE_IMAGE } from 'constants.ts'
|
||||||
|
import { createPortal } from 'react-dom'
|
||||||
|
|
||||||
type PresetAmountProps = {
|
type PresetAmountProps = {
|
||||||
label: string
|
label: string
|
||||||
@ -436,7 +437,7 @@ export const ZapPopUp = ({
|
|||||||
}
|
}
|
||||||
}, [notCloseAfterZap, handleClose])
|
}, [notCloseAfterZap, handleClose])
|
||||||
|
|
||||||
return (
|
return createPortal(
|
||||||
<>
|
<>
|
||||||
{isLoading && <LoadingSpinner desc={loadingSpinnerDesc} />}
|
{isLoading && <LoadingSpinner desc={loadingSpinnerDesc} />}
|
||||||
<div className='popUpMain'>
|
<div className='popUpMain'>
|
||||||
@ -513,7 +514,8 @@ export const ZapPopUp = ({
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>,
|
||||||
|
document.body
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user