Sha256: a3b9c117ea1cbac819f03f9d664768e6a6da53063417c05c43ec7cf60ef57c21

Contents?: true

Size: 1.18 KB

Versions: 9

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

module Katalyst
  module Tables
    module Query
      class InputComponent < ViewComponent::Base
        include Katalyst::HtmlAttributes

        attr_reader :form

        def initialize(form:, **)
          super(**)

          @form = form
        end

        def name
          query_attribute || raise(ArgumentError, "No query attribute. " \
                                                  "Does your collection include Katalyst::Tables::Collection::Query?")
        end

        def collection
          form.object
        end

        def default_html_attributes
          {
            data: {
              action:                     %w[
                input->tables--query-input#update
                keyup.enter->tables--query#closeModal
              ],
              tables__query_input_target: "input",
            },
          }
        end

        private

        def placeholder
          t("katalyst.tables.query.placeholder", name: collection.model_name.human.pluralize.downcase)
        end

        def query_attribute
          collection.class.attribute_types.detect { |_, a| a.type == :query }&.first
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
katalyst-tables-3.4.6 app/components/katalyst/tables/query/input_component.rb
katalyst-tables-3.4.5 app/components/katalyst/tables/query/input_component.rb
katalyst-tables-3.4.4 app/components/katalyst/tables/query/input_component.rb
katalyst-tables-3.4.3 app/components/katalyst/tables/query/input_component.rb
katalyst-tables-3.4.2 app/components/katalyst/tables/query/input_component.rb
katalyst-tables-3.4.1 app/components/katalyst/tables/query/input_component.rb
katalyst-tables-3.4.0 app/components/katalyst/tables/query/input_component.rb
katalyst-tables-3.3.4 app/components/katalyst/tables/query/input_component.rb
katalyst-tables-3.3.3 app/components/katalyst/tables/query/input_component.rb