Sha256: 43bdd2539b97a7307a41653659030d63068b2cd1be7852ba2f9116f63471af04

Contents?: true

Size: 980 Bytes

Versions: 2

Compression:

Stored size: 980 Bytes

Contents

# frozen_string_literal: true

module Katalyst
  module Navigation
    module Editor
      class TableComponent < BaseComponent
        ACTIONS = <<~ACTIONS.gsub(/\s+/, " ").freeze
          dragstart->#{LIST_CONTROLLER}#dragstart
          dragover->#{LIST_CONTROLLER}#dragover
          dragenter->#{LIST_CONTROLLER}#dragenter
          dragleave->#{LIST_CONTROLLER}#dragleave
          drop->#{LIST_CONTROLLER}#drop
          dragend->#{LIST_CONTROLLER}#dragend
        ACTIONS

        renders_many :items, ->(item) do
          row = RowComponent.new(item:, menu:)
          row.with_content(render(ItemComponent.new(item:, menu:)))
          row
        end

        private

        def default_html_attributes
          {
            data: {
              controller:                  LIST_CONTROLLER,
              action:                      ACTIONS,
              "#{MENU_CONTROLLER}_target": "menu",
            },
          }
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
katalyst-navigation-1.5.1 app/components/katalyst/navigation/editor/table_component.rb
katalyst-navigation-1.5.0 app/components/katalyst/navigation/editor/table_component.rb