From 304ce5a3e80dfe2269e18d13cc96e3185c37185b Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Mon, 15 Apr 2024 17:06:44 +0800 Subject: [PATCH] Experiment dynamic change of parent This might prevent double renders --- src/components/status.jsx | 60 ++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/src/components/status.jsx b/src/components/status.jsx index 455cd4eb..0d42e609 100644 --- a/src/components/status.jsx +++ b/src/components/status.jsx @@ -11,6 +11,7 @@ import { import { decodeBlurHash, getBlurHashAverageColor } from 'fast-blurhash'; import { shallowEqual } from 'fast-equals'; import prettify from 'html-prettify'; +import { Fragment } from 'preact'; import { memo } from 'preact/compat'; import { useCallback, @@ -406,38 +407,31 @@ function Status({ } // Check followedTags - if (showFollowedTags && !!snapStates.statusFollowedTags[sKey]?.length) { - return ( -
-
- {' '} - {snapStates.statusFollowedTags[sKey].slice(0, 3).map((tag) => ( - - {tag} - - ))} -
- + const FollowedTagsParent = ({ children }) => ( +
+
+ {' '} + {snapStates.statusFollowedTags[sKey].slice(0, 3).map((tag) => ( + + {tag} + + ))}
- ); - } + {children} +
+ ); + const StatusParent = + showFollowedTags && !!snapStates.statusFollowedTags[sKey]?.length + ? FollowedTagsParent + : Fragment; const isSizeLarge = size === 'l'; @@ -1383,7 +1377,7 @@ function Status({ ]); return ( - <> + {showReplyParent && !!(inReplyToId && inReplyToAccountId) && ( )} @@ -2251,7 +2245,7 @@ function Status({ )} - + ); }