The `use_helpers` method was added in ViewComponent 3.8.0, and it's included by default in all components since version 3.11.0. Note we sometimes delegated the `can?` method to the controller instead of the helpers, for no particularly reason. We're unifying that code as well.
32 lines
679 B
Ruby
32 lines
679 B
Ruby
class Shared::OrderLinksComponent < ApplicationComponent
|
|
attr_reader :i18n_namespace, :anchor
|
|
use_helpers :current_path_with_query_params, :current_order, :valid_orders
|
|
|
|
def initialize(i18n_namespace, anchor: nil)
|
|
@i18n_namespace = i18n_namespace
|
|
@anchor = anchor
|
|
end
|
|
|
|
private
|
|
|
|
def html_class(order)
|
|
"is-active" if order == current_order
|
|
end
|
|
|
|
def tag_name(order)
|
|
if order == current_order
|
|
:h2
|
|
else
|
|
:span
|
|
end
|
|
end
|
|
|
|
def link_path(order)
|
|
current_path_with_query_params(order: order, page: 1, anchor: anchor)
|
|
end
|
|
|
|
def link_text(order)
|
|
t("#{i18n_namespace}.orders.#{order}")
|
|
end
|
|
end
|