From 3f0088ed2a33c5f1ccf24111b47624418cd5b4c2 Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Mon, 5 Jul 2021 15:55:04 +1000 Subject: [PATCH] fix memory leak on avatar place holder useEffect --- .../AvatarPlaceHolder/AvatarPlaceHolder.tsx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/ts/components/AvatarPlaceHolder/AvatarPlaceHolder.tsx b/ts/components/AvatarPlaceHolder/AvatarPlaceHolder.tsx index 3ccf6f55f..fed8d3d41 100644 --- a/ts/components/AvatarPlaceHolder/AvatarPlaceHolder.tsx +++ b/ts/components/AvatarPlaceHolder/AvatarPlaceHolder.tsx @@ -23,13 +23,22 @@ export const AvatarPlaceHolder = (props: Props) => { const { borderColor, colors, pubkey, diameter, name } = props; const [sha512Seed, setSha512Seed] = useState(undefined as string | undefined); useEffect(() => { + let isSubscribed = true; + if (!pubkey) { - setSha512Seed(undefined); + if (isSubscribed) { + setSha512Seed(undefined); + } return; } void sha512FromPubkey(pubkey).then(sha => { - setSha512Seed(sha); + if (isSubscribed) { + setSha512Seed(sha); + } }); + return () => { + isSubscribed = false; + }; }, [pubkey, name]); const diameterWithoutBorder = diameter - 2;