import { useState } from 'react'
import { SponsoringForm } from '@/components/SponsoringForm'
import { t } from '@/lib/i18n'
import type { AuthorPresentationArticle } from '@/types/nostr'
type SponsoringSummaryProps = {
totalSponsoring: number
author: AuthorPresentationArticle | null
onSponsor: () => void
}
export function SponsoringSummary({ totalSponsoring, author, onSponsor }: SponsoringSummaryProps): React.ReactElement {
const totalBTC = totalSponsoring / 100_000_000
const [showForm, setShowForm] = useState(false)
return (
setShowForm(true)} />
setShowForm(false)} onSponsor={onSponsor} />
)
}
function SponsoringSummaryHeader(params: { showSponsorButton: boolean; onSponsorClick: () => void }): React.ReactElement {
return (
{t('author.sponsoring')}
{params.showSponsorButton && (
)}
)
}
function SponsoringTotals(params: { totalBTC: number; totalSats: number }): React.ReactElement {
return (
{t('author.sponsoring.total', { amount: params.totalBTC.toFixed(6) })}
{t('author.sponsoring.sats', { amount: params.totalSats.toLocaleString() })}
)
}
function SponsoringFormPanel(params: {
show: boolean
author: AuthorPresentationArticle | null
onClose: () => void
onSponsor: () => void
}): React.ReactElement | null {
if (!params.show || !params.author) {
return null
}
return (
{
params.onClose()
params.onSponsor()
}}
onCancel={params.onClose}
/>
)
}