Sha256: 9b41094612708b44d340867116dcc6ecca0e31e8fd22c53ac5a631cf0820c254

Contents?: true

Size: 1.38 KB

Versions: 4

Compression:

Stored size: 1.38 KB

Contents

module Maquina
  module Form
    include Phlex::Rails::Helpers::FormWith

    protected

    def text_field(form, field_name:, required: false, label_class: "block label", input_class: "w-full block input", **options)
      div do
        form.label field_name, class: label_class
        div(class: "mt-1") do
          form.text_field field_name, required: required, class: input_class,
            **options.merge(field_attributes(field_name))
          field_help(field_name)
        end
      end
    end

    def password_field(form, field_name:, required: false, label_class: "block label", input_class: "w-full block input", **options)
      div do
        form.label field_name, class: label_class
        div(class: "mt-1") do
          form.password_field field_name, required: required, class: input_class,
            **options.merge(field_attributes(field_name))
          field_help(field_name)
        end
      end
    end

    def field_attributes(field_name)
      @scope ||= ""
      {
        maxlength: t("helpers.maxlength.#{@scope}.#{field_name}", default: t("helpers.maxlength.default")),
        placeholder: t("placeholder.#{@scope}.#{field_name}", default: "")
      }
    end

    def field_help(field_name)
      help = t("help.#{@scope}.#{field_name}", default: "")
      if help.present?
        div(class: "mt-2 text-sm text-skin-dimmed") { help }
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
maquina-0.7.2 app/views/maquina/form.rb
maquina-0.7.1 app/views/maquina/form.rb
maquina-0.5.2 app/views/maquina/form.rb
maquina-0.5.1 app/views/maquina/form.rb