diff --git a/src/controllers/AuthController.ts b/src/controllers/AuthController.ts index 82c13ba..a43a3d7 100644 --- a/src/controllers/AuthController.ts +++ b/src/controllers/AuthController.ts @@ -37,20 +37,44 @@ export class AuthController { * or error if otherwise */ async authAndGetMetadataAndRelaysMap(pubkey: string) { + const emptyMetadata = this.metadataController.getEmptyMetadataEvent() + + emptyMetadata.content = JSON.stringify({ + picture: getRoboHashPicture(pubkey) + }) + this.metadataController .findMetadata(pubkey) .then((event) => { - store.dispatch(setMetadataEvent(event)) + if (event) { + // In case of NIP05 there is scenario where login content will be populated but without an image + // In such case we will add robohash image + if (event.content) { + const content = JSON.parse(event.content) + + if (!content) { + event.content = '' + } + + if (!content.picture) { + content.picture = getRoboHashPicture(pubkey) + } + + event.content = JSON.stringify(content) + } else { + event.content = JSON.stringify({ + picture: getRoboHashPicture(pubkey) + }) + } + + store.dispatch(setMetadataEvent(event)) + } else { + store.dispatch(setMetadataEvent(emptyMetadata)) + } }) .catch((err) => { console.warn('Error occurred while finding metadata', err) - const emptyMetadata = this.metadataController.getEmptyMetadataEvent() - - emptyMetadata.content = JSON.stringify({ - picture: getRoboHashPicture(pubkey) - }) - store.dispatch(setMetadataEvent(emptyMetadata)) })