diff --git a/app/components/PlaceholderText.tsx b/app/components/PlaceholderText.tsx index b977e12f7..bd4c74749 100644 --- a/app/components/PlaceholderText.tsx +++ b/app/components/PlaceholderText.tsx @@ -12,23 +12,11 @@ export type Props = { delay?: number; }; -class PlaceholderText extends React.Component { - width = randomInteger(this.props.minWidth || 75, this.props.maxWidth || 100); +function PlaceholderText({ minWidth, maxWidth, ...restProps }: Props) { + // We only want to compute the width once so we are storing it inside ref + const widthRef = React.useRef(randomInteger(minWidth || 75, maxWidth || 100)); - shouldComponentUpdate() { - return false; - } - - render() { - return ( - - ); - } + return ; } const Mask = styled(Flex)<{ @@ -51,4 +39,6 @@ const Mask = styled(Flex)<{ } `; -export default PlaceholderText; +// We don't want the component to re-render on any props change +// So returning true from the custom comparison function to avoid re-render +export default React.memo(PlaceholderText, () => true);