diff --git a/snippets/LimitedTextarea.md b/snippets/LimitedTextarea.md index 995e73630..937746e81 100644 --- a/snippets/LimitedTextarea.md +++ b/snippets/LimitedTextarea.md @@ -2,41 +2,36 @@ Renders a textarea component with a character limit. -Use the value of the `value` prop to determine the initial `state.content` and `state.characterCount` and the value of the `limit` props to determine the value of `state.limit`. -Create a method, `handleChange`, which trims the `event.target.value` data if necessary and uses `Component.prototype.setState` to update `state.content` and `state.characterCount`, and bind it to the component's context. -In the`render()` method, use a`
` to wrap both the` -

{this.state.characterCount}/{this.props.limit}

-
- ); - } +function LimitedTextarea({ rows, cols, value, limit }) { + const [content, setContent] = React.useState(value); + + const setFormattedContent = text => { + text.length > limit ? setContent(text.slice(0, limit)) : setContent(text); + }; + + React.useEffect(() => { + setFormattedContent(content); + }, []); + + return ( +
+