diff --git a/client/src/components/helpers/avatar-renderer.tsx b/client/src/components/helpers/avatar-renderer.tsx index 4a9257df17e..f9f2bfd8db7 100644 --- a/client/src/components/helpers/avatar-renderer.tsx +++ b/client/src/components/helpers/avatar-renderer.tsx @@ -2,7 +2,6 @@ import { Image } from '@freecodecamp/react-bootstrap'; import React, { useState, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import isURL from 'validator/lib/isURL'; -import { defaultUserImage } from '../../../../config/misc'; import DefaultAvatar from '../../assets/icons/default-avatar'; import borderColorPicker from './border-color-picker'; @@ -27,8 +26,12 @@ function AvatarRenderer({ useEffect(() => { const validationImage = document.createElement('img'); - // eslint-disable-next-line @typescript-eslint/naming-convention - if (isURL(picture, { require_protocol: true })) { + if ( + // we probably have loads of records in the database with this default avatar URL set. To prevent making a request to the image we know will 404. + !/freecodecamp\.com\/sample-image/.test(picture) && + // eslint-disable-next-line @typescript-eslint/naming-convention + isURL(picture, { require_protocol: true }) + ) { validationImage.src = picture; validationImage.onload = onImageLoad; validationImage.onerror = onImageError; @@ -38,9 +41,7 @@ function AvatarRenderer({ }, [picture]); const isPlaceHolderImage = - !isPictureValid || - /example.com|identicon.org|^$/.test(picture) || - picture === defaultUserImage; + !isPictureValid || /example.com|identicon.org|^$/.test(picture); return (
diff --git a/config/misc.ts b/config/misc.ts index fd3b5d0389a..041fffc3eea 100644 --- a/config/misc.ts +++ b/config/misc.ts @@ -1,4 +1,3 @@ -export const defaultUserImage = 'https://freecodecamp.com/sample-image.png'; export const MAX_MOBILE_WIDTH = 767; export const TOOL_PANEL_HEIGHT = 37; export const SEARCH_EXPOSED_WIDTH = 980; diff --git a/tools/scripts/seed/certified-user-data.js b/tools/scripts/seed/certified-user-data.js index f23d643a76b..fda10137acf 100644 --- a/tools/scripts/seed/certified-user-data.js +++ b/tools/scripts/seed/certified-user-data.js @@ -1,6 +1,5 @@ /* eslint-disable max-len */ const ObjectId = require('mongodb').ObjectID; -const defaultUserImage = require('../../../config/misc').defaultUserImage; module.exports = { _id: ObjectId('5fa2db00a25c1c1fa49ce067'), @@ -13,7 +12,7 @@ module.exports = { about: '', name: 'Full Stack User', location: '', - picture: defaultUserImage, + picture: '', acceptedPrivacyTerms: true, sendQuincyEmail: false, currentChallengeId: '', diff --git a/tools/scripts/seed/seed-demo-user.js b/tools/scripts/seed/seed-demo-user.js index b77bff931a1..56f4b76c8f0 100644 --- a/tools/scripts/seed/seed-demo-user.js +++ b/tools/scripts/seed/seed-demo-user.js @@ -2,7 +2,6 @@ const path = require('path'); const debug = require('debug'); require('dotenv').config({ path: path.resolve(__dirname, '../../../.env') }); const { MongoClient, ObjectId } = require('mongodb'); -const defaultUserImage = require('../../../config/misc').defaultUserImage; const fullyCertifiedUser = require('./certified-user-data'); const envVariables = process.argv; @@ -36,7 +35,7 @@ const demoUser = { about: '', name: 'Development User', location: '', - picture: defaultUserImage, + picture: '', acceptedPrivacyTerms: envVariables.includes('--unset-privacy-terms') ? null : true, @@ -100,7 +99,7 @@ const blankUser = { about: '', name: 'Development User', location: '', - picture: defaultUserImage, + picture: '', acceptedPrivacyTerms: true, sendQuincyEmail: false, currentChallengeId: '',