This library lets you use automatically expanding textareas in Elm. This means the textarea grows in height until it reaches the maximum number of rows allowed and then becomes a scrollable box.
Configuration for your textarea, describing the look and feel.
Note: Your Config should never be held in your model.
It should only appear in view code.
Create the Config for the auto expanding textarea.
A typical configuration might look like this:
type Msg
= AutoExpandInput { textValue : String, state : AutoExpand.State }
config : AutoExpand.Config Msg
config =
AutoExpand.config
{ onInput = AutoExpandInput
, padding = 10
, lineHeight = 20
, minRows = 1
, maxRows = 4
}Add your own attributes for the textarea.
myConfig
|> withAttribute (Html.Attributes.class "chat-textbox")
|> withAttribute (Html.Attributes.placeholder "[email protected]")Keeps track of how many rows we need.
Get the attributes needed for a custom textarea. Note that you may accidentally break functionality by including some attributes twice.
textarea
([ placeholder "Custom..." ]
++ AutoExpand.attributes
myConfig
model.autoExpandState
model.textValue
)
[]
Show the textarea on your page.