fix broken image url after submission on profile page (#42507)
This commit is contained in:
@ -1,4 +1,4 @@
|
|||||||
import React from 'react';
|
import React, { useState, useEffect } from 'react';
|
||||||
import { Image } from '@freecodecamp/react-bootstrap';
|
import { Image } from '@freecodecamp/react-bootstrap';
|
||||||
import DefaultAvatar from '../../assets/icons/default-avatar';
|
import DefaultAvatar from '../../assets/icons/default-avatar';
|
||||||
import { defaultUserImage } from '../../../../config/misc';
|
import { defaultUserImage } from '../../../../config/misc';
|
||||||
@ -19,9 +19,22 @@ function AvatarRenderer({
|
|||||||
isTopContributor
|
isTopContributor
|
||||||
}: AvatarRendererProps): JSX.Element {
|
}: AvatarRendererProps): JSX.Element {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
const [isPictureValid, setIsPictureValid] = useState(true);
|
||||||
const borderColor: string = borderColorPicker(isDonating, isTopContributor);
|
const borderColor: string = borderColorPicker(isDonating, isTopContributor);
|
||||||
|
const onImageLoad = () => setIsPictureValid(true);
|
||||||
|
const onImageError = () => setIsPictureValid(false);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const validationImage = document.createElement('img');
|
||||||
|
validationImage.src = picture;
|
||||||
|
validationImage.onload = onImageLoad;
|
||||||
|
validationImage.onerror = onImageError;
|
||||||
|
}, [picture]);
|
||||||
|
|
||||||
const isPlaceHolderImage =
|
const isPlaceHolderImage =
|
||||||
/example.com|identicon.org/.test(picture) || picture === defaultUserImage;
|
!isPictureValid ||
|
||||||
|
/example.com|identicon.org/.test(picture) ||
|
||||||
|
picture === defaultUserImage;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={`avatar-container ${borderColor}`}>
|
<div className={`avatar-container ${borderColor}`}>
|
||||||
|
Reference in New Issue
Block a user