Class: PhlexKit::DataTable

Inherits:
BaseComponent show all
Defined in:
app/components/phlex_kit/data_table/data_table.rb

Overview

Data table, ported from ruby_ui's RubyUI::DataTable: a server-driven sortable/searchable table living in a , built on the kit's Table / DropdownMenu / Input / Pagination parts. Row selection, bulk-action visibility and row-detail expansion live in the phlex-kit--data-table controller; search debounce and column visibility in their own controllers. Compose DataTable(id:) > DataTableToolbar(DataTableSearch + DataTableColumnToggle) + Table(DataTableSortHead, DataTableRowCheckbox …) + DataTablePaginationBar(DataTableSelectionSummary + DataTablePerPageSelect + DataTablePagination). Tailwind → vanilla .pk-data-table* (data_table.css).

Instance Method Summary collapse

Methods inherited from BaseComponent

#on

Constructor Details

#initialize(id:, **attrs) ⇒ DataTable

Returns a new instance of DataTable.



14
15
16
17
# File 'app/components/phlex_kit/data_table/data_table.rb', line 14

def initialize(id:, **attrs)
  @id = id
  @attrs = attrs
end

Instance Method Details

#view_template(&block) ⇒ Object



19
20
21
22
23
# File 'app/components/phlex_kit/data_table/data_table.rb', line 19

def view_template(&block)
  turbo_frame(id: @id, target: "_top") do
    div(**mix({ class: "pk-data-table", data: { controller: "phlex-kit--data-table" } }, @attrs), &block)
  end
end