import { useFetchEvent } from '@/hooks' import { parsePaytoTagType } from '@/lib/payto' import { getPaymentNotificationInfo, getSuperchatReferenceFetchId } from '@/lib/superchat' import { toNote, toProfile } from '@/lib/link' import { cn } from '@/lib/utils' import { Event } from 'nostr-tools' import { useMemo, type MouseEvent } from 'react' import { useTranslation } from 'react-i18next' import { useSmartNoteNavigationOptional, useSecondaryPageOptional } from '@/PageManager' import Username from '../Username' import UserAvatar from '../UserAvatar' import SuperchatPaymentMethodLabel from './SuperchatPaymentMethodLabel' export default function Superchat({ event, className, omitSenderHeading, variant = 'default' }: { event: Event className?: string omitSenderHeading?: boolean variant?: 'default' | 'compact' }) { const { t } = useTranslation() const info = useMemo(() => getPaymentNotificationInfo(event), [event]) const paytoType = useMemo( () => (info?.payto ? parsePaytoTagType(info.payto) : 'unknown'), [info?.payto] ) const { navigateToNote } = useSmartNoteNavigationOptional() const secondaryPage = useSecondaryPageOptional() const push = secondaryPage?.push ?? ((url: string) => { window.location.href = url }) const referencedFetchId = useMemo( () => (info ? getSuperchatReferenceFetchId(info) : undefined), [info] ) const { event: targetEvent } = useFetchEvent(referencedFetchId) if (!info) { return (
{comment}
) : null}{comment}