Refactor active_nav_class for use with multiple paths (#8757)

master
ThibG 6 years ago committed by Eugen Rochko
parent d0d65b5a28
commit c39183cc62
  1. 4
      app/helpers/application_helper.rb
  2. 2
      app/views/accounts/_header.html.haml
  3. 8
      spec/helpers/application_helper_spec.rb

@ -7,8 +7,8 @@ module ApplicationHelper
follow follow
).freeze ).freeze
def active_nav_class(path) def active_nav_class(*paths)
current_page?(path) ? 'active' : '' paths.any? { |path| current_page?(path) } ? 'active' : ''
end end
def active_link_to(label, path, **options) def active_link_to(label, path, **options)

@ -16,7 +16,7 @@
= fa_icon('lock') if account.locked? = fa_icon('lock') if account.locked?
.public-account-header__tabs__tabs .public-account-header__tabs__tabs
.details-counters .details-counters
.counter{ class: active_nav_class(short_account_url(account)) + active_nav_class(short_account_with_replies_url(account)) + active_nav_class(short_account_media_url(account)) } .counter{ class: active_nav_class(short_account_url(account), short_account_with_replies_url(account), short_account_media_url(account)) }
= link_to short_account_url(account), class: 'u-url u-uid', title: number_with_delimiter(account.statuses_count) do = link_to short_account_url(account), class: 'u-url u-uid', title: number_with_delimiter(account.statuses_count) do
%span.counter-number= number_to_human account.statuses_count, strip_insignificant_zeros: true %span.counter-number= number_to_human account.statuses_count, strip_insignificant_zeros: true
%span.counter-label= t('accounts.posts', count: account.statuses_count) %span.counter-label= t('accounts.posts', count: account.statuses_count)

@ -9,6 +9,14 @@ describe ApplicationHelper do
expect(result).to eq "active" expect(result).to eq "active"
end end
it 'returns active when on a current page' do
allow(helper).to receive(:current_page?).with('/foo').and_return(false)
allow(helper).to receive(:current_page?).with('/test').and_return(true)
result = helper.active_nav_class('/foo', '/test')
expect(result).to eq "active"
end
it 'returns empty string when not on current page' do it 'returns empty string when not on current page' do
allow(helper).to receive(:current_page?).and_return(false) allow(helper).to receive(:current_page?).and_return(false)

Loading…
Cancel
Save