module ActionText::TagHelper

def rich_textarea_tag(name, value = nil, options = {})

#
#
rich_textarea_tag "content", message.content

#### Example


`rails_service_blob_url(":signed_id", ":filename")`.
* `[:data][:blob_url_template]` - Defaults to
* `[:data][:direct_upload_url]` - Defaults to `rails_direct_uploads_url`.
from being applied.
applied. Setting this to a different value will prevent default styles
* `:class` - Defaults to "trix-content" so that default styles will be
#### Options

be sent on form submissions.
well as a hidden field that Trix will write to on changes, so the content will
Returns a `trix-editor` tag that instantiates the Trix JavaScript editor as
def rich_textarea_tag(name, value = nil, options = {})
  options = options.symbolize_keys
  form = options.delete(:form)
  options[:input] ||= "trix_input_#{ActionText::TagHelper.id += 1}"
  options[:class] ||= "trix-content"
  options[:data] ||= {}
  options[:data][:direct_upload_url] ||= main_app.rails_direct_uploads_url
  options[:data][:blob_url_template] ||= main_app.rails_service_blob_url(":signed_id", ":filename")
  editor_tag = content_tag("trix-editor", "", options)
  input_tag = hidden_field_tag(name, value.try(:to_trix_html) || value, id: options[:input], form: form)
  input_tag + editor_tag
end