chore: convert PlaceholderText component to functional component (#4204) (#4336)

This commit is contained in:
Mihir Shah
2022-10-26 03:14:20 +05:30
committed by GitHub
parent a89d30c735
commit 808eb540a7

View File

@@ -12,23 +12,11 @@ export type Props = {
delay?: number; delay?: number;
}; };
class PlaceholderText extends React.Component<Props> { function PlaceholderText({ minWidth, maxWidth, ...restProps }: Props) {
width = randomInteger(this.props.minWidth || 75, this.props.maxWidth || 100); // 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 <Mask width={widthRef.current} {...restProps} />;
return false;
}
render() {
return (
<Mask
width={this.width}
height={this.props.height}
delay={this.props.delay}
header={this.props.header}
/>
);
}
} }
const Mask = styled(Flex)<{ 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);