import { length } from 'stringz' /** * Renders a character counter * @param {string} props.text - text to use to measure * @param {number} props.max - max text allowed */ export default class CharacterCounter extends PureComponent { static propTypes = { text: PropTypes.string.isRequired, max: PropTypes.number.isRequired, } render() { const { text, max } = this.props const actualRadius = 16 const radius = 12 const circumference = 2 * Math.PI * radius const diff = Math.min(length(text), max) / max const dashoffset = circumference * (1 - diff) return (
) } }