diff --git a/api-server/server/utils/index.js b/api-server/server/utils/index.js index 7647af24772..49594643131 100644 --- a/api-server/server/utils/index.js +++ b/api-server/server/utils/index.js @@ -22,5 +22,5 @@ exports.unDasherize = function unDasherize(name) { }; exports.addPlaceholderImage = function addPlaceholderImage(name) { - return `https://identicon.org?t=${name}&s=256`; + return `https://example.com/${name}.png`; }; diff --git a/client/package-lock.json b/client/package-lock.json index 37c8611ab4e..937bfe2bc0d 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -16300,6 +16300,11 @@ } } }, + "react-identicons": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/react-identicons/-/react-identicons-1.1.7.tgz", + "integrity": "sha512-r+nCigLoQMffpf8gZo6l0we8RaRkgEIeRY6xS1vjp5ANxdTd3QwA2tjBTfmgf+4kFqYnaL2XvJH+iZ4mKqnb8Q==" + }, "react-instantsearch-core": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/react-instantsearch-core/-/react-instantsearch-core-5.7.0.tgz", diff --git a/client/package.json b/client/package.json index 502e1b79e29..2c8d4e557bf 100644 --- a/client/package.json +++ b/client/package.json @@ -49,6 +49,7 @@ "react-dom": "^16.9.0", "react-ga": "^2.6.0", "react-helmet": "^5.2.1", + "react-identicons": "^1.1.7", "react-instantsearch-dom": "^5.7.0", "react-monaco-editor": "^0.25.1", "react-redux": "^5.0.7", diff --git a/client/src/components/profile/components/Camper.js b/client/src/components/profile/components/Camper.js index 3ba9e8df4e9..b67e954669b 100644 --- a/client/src/components/profile/components/Camper.js +++ b/client/src/components/profile/components/Camper.js @@ -3,6 +3,7 @@ import PropTypes from 'prop-types'; import { Col, Row, Image } from '@freecodecamp/react-bootstrap'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faAward } from '@fortawesome/free-solid-svg-icons'; +import Identicon from 'react-identicons'; import SocialIcons from './SocialIcons'; @@ -61,16 +62,29 @@ function Camper({ twitter, website }) { + // A lot of the user-profiles are still using the defunct service. + const avatar = /example.com/.test(picture) ? ( + + ) : ( + {username + ); return (
- {username + {avatar}