class Avo::Fields::TrixField::EditComponent

def data

It's used to identify the specific editor for the media library to delegate the attach event to.
The controller element should have a unique_selector attribute.
def data
  values = {
    resource_name: @resource_name,
    resource_id: @resource_id,
    unique_selector: ".#{@input_id}", # mandatory
    attachments_disabled: @field.attachments_disabled,
    attachment_key: @field.attachment_key,
    hide_attachment_filename: @field.hide_attachment_filename,
    hide_attachment_filesize: @field.hide_attachment_filesize,
    hide_attachment_url: @field.hide_attachment_url,
    is_action_text: @field.is_action_text?,
    upload_warning: t("avo.you_cant_upload_new_resource"),
    attachment_disable_warning: t("avo.this_field_has_attachments_disabled"),
    attachment_key_warning: t("avo.you_havent_set_attachment_key")
  }.transform_keys { |key| "trix_field_#{key}_value" }
  {
    controller: "trix-field",
    trix_field_target: "controller",
    action: "insert-attachment->trix-field#insertAttachment",
    **values,
  }
end

def initialize(**args)

def initialize(**args)
  @resource = args[:resource]
  @resource_id = args[:resource_id] || @resource&.record&.to_param
  @resource_name = args[:resource_name] || @resource&.singular_route_key
  super(**args)
  @input_id = if @resource_name.present?
    "#{@field.type}_#{@resource_name}_#{@field.id}"
  elsif form.present?
    "#{@field.type}_#{form.index}_#{@field.id}"
  end
end