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.
31 lines
653 B
Ruby
31 lines
653 B
Ruby
class Admin::Budgets::LinksComponent < ApplicationComponent
|
|
attr_reader :budget
|
|
use_helpers :can?
|
|
|
|
def initialize(budget)
|
|
@budget = budget
|
|
end
|
|
|
|
private
|
|
|
|
def action(action_name, **options)
|
|
render Admin::ActionComponent.new(action_name, budget, **options)
|
|
end
|
|
|
|
def results_text
|
|
if Abilities::Everyone.new(User.new).can?(:read_results, budget)
|
|
t("budgets.show.see_results")
|
|
else
|
|
t("admin.budgets.actions.preview_results")
|
|
end
|
|
end
|
|
|
|
def preview_text
|
|
if budget.published?
|
|
t("admin.shared.view")
|
|
else
|
|
t("admin.budgets.actions.preview")
|
|
end
|
|
end
|
|
end
|