Browse Source

fix: resolve zap profile issue

imwald
codytseng 7 months ago
parent
commit
9aa63fd11c
  1. 8
      src/components/NoteStats/ZapButton.tsx
  2. 4
      src/components/ZapDialog/index.tsx
  3. 10
      src/services/lightning.service.ts

8
src/components/NoteStats/ZapButton.tsx

@ -46,13 +46,7 @@ export default function ZapButton({ event }: { event: Event }) { @@ -46,13 +46,7 @@ export default function ZapButton({ event }: { event: Event }) {
throw new Error('You need to be logged in to zap')
}
setZapping(true)
const zapResult = await lightning.zap(
pubkey,
event.pubkey,
defaultZapSats,
defaultZapComment,
event
)
const zapResult = await lightning.zap(pubkey, event, defaultZapSats, defaultZapComment)
// user canceled
if (!zapResult) {
return

4
src/components/ZapDialog/index.tsx

@ -147,7 +147,7 @@ function ZapDialogContent({ @@ -147,7 +147,7 @@ function ZapDialogContent({
throw new Error('You need to be logged in to zap')
}
setZapping(true)
const zapResult = await lightning.zap(pubkey, recipient, sats, comment, event, () =>
const zapResult = await lightning.zap(pubkey, event ?? recipient, sats, comment, () =>
setOpen(false)
)
// user canceled
@ -155,7 +155,7 @@ function ZapDialogContent({ @@ -155,7 +155,7 @@ function ZapDialogContent({
return
}
if (event) {
noteStatsService.addZap(pubkey, event?.id, zapResult.invoice, sats, comment)
noteStatsService.addZap(pubkey, event.id, zapResult.invoice, sats, comment)
}
} catch (error) {
toast.error(`${t('Zap failed')}: ${(error as Error).message}`)

10
src/services/lightning.service.ts

@ -45,15 +45,18 @@ class LightningService { @@ -45,15 +45,18 @@ class LightningService {
async zap(
sender: string,
recipient: string,
recipientOrEvent: string | NostrEvent,
sats: number,
comment: string,
event?: NostrEvent,
closeOuterModel?: () => void
): Promise<{ preimage: string; invoice: string } | null> {
if (!client.signer) {
throw new Error('You need to be logged in to zap')
}
const { recipient, event } =
typeof recipientOrEvent === 'string'
? { recipient: recipientOrEvent }
: { recipient: recipientOrEvent.pubkey, event: recipientOrEvent }
const [profile, receiptRelayList, senderRelayList] = await Promise.all([
client.fetchProfile(recipient, true),
@ -72,8 +75,7 @@ class LightningService { @@ -72,8 +75,7 @@ class LightningService {
const { callback, lnurl } = zapEndpoint
const amount = sats * 1000
const zapRequestDraft = makeZapRequest({
event: event,
pubkey: recipient,
...(event ? { event } : { pubkey: recipient }),
amount,
relays: receiptRelayList.read
.slice(0, 4)

Loading…
Cancel
Save