Sha256: 6c29da9a9b8340f441a7f0cb3c433f4caf0873795bc562cbc49ff66edfacab34

Contents?: true

Size: 1.32 KB

Versions: 2

Compression:

Stored size: 1.32 KB

Contents

# frozen_string_literal: true

module Maquina
  module Navbar
    class Search < Phlex::HTML
      include ApplicationView
      include Phlex::Rails::Helpers::FormWith

      delegate :t, to: :helpers

      def initialize(url: nil, query: "")
        @url = url
        @query = query
      end

      def view_template
        div class: "flex-1 flex items-center justify-center px-2 lg:ml-6 lg:justify-end" do
          div class: "max-w-lg w-full lg:max-w-xs" do
            form_with(url: @url, method: :get, data: {controller: "submit-form"}) do |form|
              form.label :search, t("search.search"), class: "sr-only"

              div class: "relative" do
                div class: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none" do
                  svg_icon(:fill, view_box: "0 0 20 20", css_class: "h-5 w-5 text-skin-dimmed", icon: search_icon)
                end
                form.text_field :q, value: @query, placeholder: t("search.search"), class: "block w-full font-sans", maxlength: 15, type: :search, data: {action: "input->submit-form#clear"}
              end
            end
          end
        end
      end

      private

      def search_icon
        "M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
maquina-0.5.2 app/views/maquina/navbar/search.rb
maquina-0.5.1 app/views/maquina/navbar/search.rb