fix: failed DM error handling #19

Merged
b merged 3 commits from issue16 into main 2024-05-14 15:37:40 +00:00
2 changed files with 24 additions and 5 deletions

View File

@ -214,8 +214,22 @@ export class NostrController extends EventEmitter {
}
})
if (publishedRelays.length === 0)
throw new Error(`Couldn't publish to any relay`)
if (publishedRelays.length === 0) {
const failedPublishes: any[] = []
results.forEach((res, index) => {
if (res.status === 'rejected') {
failedPublishes.push(
{
relay: relays[index],
error: res.reason.message
}
)
}
})
throw failedPublishes
}
return publishedRelays
}

View File

@ -161,9 +161,14 @@ export const sendDM = async (
.then((relays) => {
toast.success(`Encrypted DM sent on: ${relays.join('\n')}`)
})
.catch((err) => {
console.log('err :>> ', err)
toast.error(err.message || 'An error occurred while publishing DM')
.catch((errResults) => {
console.log('err :>> ', errResults)
Review

The error message could be: Publishing to '${ralay}' caused the following error: '${error}'.

The error message could be: `Publishing to '${ralay}' caused the following error: '${error}'.`
toast.error('An error occurred while publishing DM')
errResults.forEach((errResult: any) => {
toast.error(`Publishing to ${errResult.relay} caused the following error: ${errResult.error}`)
})
return null
})
}