1
0
mirror of https://github.com/matrix-org/matrix-react-sdk.git synced 2025-11-07 10:46:24 +03:00

validate hex color

This commit is contained in:
Bruno Windels
2020-04-28 10:59:10 +02:00
parent 19fc6a93ec
commit 4978f8a2a9

View File

@@ -53,6 +53,13 @@ export function avatarUrlForUser(user, width, height, resizeMethod) {
return url; return url;
} }
function isValidHexColor(color) {
return typeof color === "string" &&
(color.length === 7 || color.lengh === 9) &&
color.charAt(0) === "#" &&
!color.substr(1).split("").some(c => isNaN(parseInt(c, 16)));
}
function urlForColor(color) { function urlForColor(color) {
const size = 40; const size = 40;
const canvas = document.createElement("canvas"); const canvas = document.createElement("canvas");
@@ -86,8 +93,14 @@ export function defaultAvatarUrlForString(s) {
const color = cssValue || defaultColors[colorIndex]; const color = cssValue || defaultColors[colorIndex];
let dataUrl = colorToDataURLCache.get(color); let dataUrl = colorToDataURLCache.get(color);
if (!dataUrl) { if (!dataUrl) {
dataUrl = urlForColor(color); // validate color as this can come from account_data
colorToDataURLCache.set(color, dataUrl); // with custom theming
if (isValidHexColor(color)) {
dataUrl = urlForColor(color);
colorToDataURLCache.set(color, dataUrl);
} else {
dataUrl = "";
}
} }
return dataUrl; return dataUrl;
} }