Files
grecia/app/components/proposals/votes_component.rb
Javi Martín 1d955b7a20 Simplify using helper methods in components
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.
2024-03-02 17:34:25 +01:00

32 lines
689 B
Ruby

class Proposals::VotesComponent < ApplicationComponent
attr_reader :proposal
use_helpers :current_user, :link_to_verify_account
def initialize(proposal, vote_url: nil)
@proposal = proposal
@vote_url = vote_url
end
def vote_url
@vote_url || vote_proposal_path(proposal, value: "yes")
end
private
def voted?
current_user&.voted_for?(proposal)
end
def can_vote?
proposal.votable_by?(current_user)
end
def support_aria_label
t("proposals.proposal.support_label", proposal: proposal.title)
end
def cannot_vote_text
t("votes.verified_only", verify_account: link_to_verify_account) unless can_vote?
end
end