Sha256: 9d64b2eebc26daeb271a7b6a3ba7bc767778cb85c5711dcecac0cbd02c537232

Contents?: true

Size: 1.95 KB

Versions: 4

Compression:

Stored size: 1.95 KB

Contents

# frozen_string_literal: true

module Maquina
  module Sessions
    class Form < Phlex::HTML
      include Maquina::ApplicationView
      include Phlex::Rails::Helpers::FormWith

      def initialize(resource)
        @resource = resource
      end

      def view_template
        div(class: "mt-8 sm:mx-auto sm:w-full sm:max-w-md") do
          div(class: "bg-white py-8 px-4 shadow sm:rounded-lg sm:px-10") do
            form_with(url: sessions_path, method: :post, class: "space-y-6") do |form|
              div do
                form.label t("form.sessions.email"), for: :email, class: "block label"
                div(class: "mt-1") do
                  form.text_field :email, value: @resource.email, type: :email, required: true, class: "w-full block input", **field_attributes(:email)
                end
              end
              div do
                form.label t("form.sessions.password"), for: :password, class: "block label"
                div(class: "mt-1") do
                  form.password_field :password, value: @resource.password, required: true, class: "w-full block input", **field_attributes(:password)
                end
              end
              div(class: "flex items-center justify-between") do
                div do
                end
                div(class: "text-sm") do
                  a(href: "#", class: "link") { t("form.sessions.forgot_password") }
                end
              end
              div do
                form.submit t("form.sessions.submit"), class: "flex w-full justify-center button button-accented"
              end
            end
          end
        end
      end

      private

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

Version data entries

4 entries across 4 versions & 1 rubygems

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