import * as React from "react"; import styled from "styled-components"; import { randomInteger } from "@shared/random"; import Flex from "~/components/Flex"; import { pulsate } from "~/styles/animations"; type Props = { header?: boolean; height?: number; minWidth?: number; maxWidth?: number; delay?: number; }; class PlaceholderText extends React.Component { width = randomInteger(this.props.minWidth || 75, this.props.maxWidth || 100); shouldComponentUpdate() { return false; } render() { return ( ); } } const Mask = styled(Flex)<{ width: number; height?: number; delay?: number; header?: boolean; }>` width: ${(props) => (props.header ? props.width / 2 : props.width)}%; height: ${(props) => props.height ? props.height : props.header ? 24 : 18}px; margin-bottom: 6px; border-radius: 6px; background-color: ${(props) => props.theme.divider}; animation: ${pulsate} 2s infinite; animation-delay: ${(props) => props.delay || 0}s; &:last-child { margin-bottom: 0; } `; export default PlaceholderText;