Selector now handle {label, value} instead of only string

This commit is contained in:
Jean-Baptiste Bellet
2022-03-21 20:49:19 +01:00
parent 461d31bef1
commit 5ea7bea9b8
3 changed files with 8 additions and 6 deletions

View File

@@ -3,7 +3,8 @@
class ProductsTableComponent < ViewComponentReflex::Component
def initialize(user:)
super
@columns = ["price", "unit"]
@columns = [{ label: I18n.t("admin.products_page.columns_selector.price"), value: "price" },
{ label: I18n.t("admin.products_page.columns_selector.unit"), value: "unit" }]
@selected = ["price", "unit"]
@user = user

View File

@@ -2,12 +2,13 @@
class SelectorComponent < ViewComponentReflex::Component
def initialize(title:, selected:, items:, data: {})
super
@title = title
@items = items.map do |item|
{
id: item,
name: I18n.t("admin.products_page.columns_selector.#{item}"),
selected: selected.include?(item)
label: item[:label],
value: item[:value],
selected: selected.include?(item[:value])
}
end
@state = :close

View File

@@ -6,5 +6,5 @@
.selector_arrow{data: reflex_data_attributes(:toggle)}
.selector_items
- @items.each do |item|
.selector_item{id: item[:id], class: ("selected" if item[:selected]), data: @data, "data-value": item[:id]}
= item[:name]
.selector_item{ class: ("selected" if item[:selected]), data: @data, "data-value": item[:value] }
= item[:label]