Browse Source

Refactor active_nav_class for use with multiple paths (#8757)

pull/4/head
ThibG 5 years ago
committed by Eugen Rochko
parent
commit
c39183cc62
3 changed files with 11 additions and 3 deletions
  1. +2
    -2
      app/helpers/application_helper.rb
  2. +1
    -1
      app/views/accounts/_header.html.haml
  3. +8
    -0
      spec/helpers/application_helper_spec.rb

+ 2
- 2
app/helpers/application_helper.rb View File

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

+ 1
- 1
app/views/accounts/_header.html.haml View File

@ -16,7 +16,7 @@
= fa_icon('lock') if account.locked?
.public-account-header__tabs__tabs
.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
%span.counter-number= number_to_human account.statuses_count, strip_insignificant_zeros: true
%span.counter-label= t('accounts.posts', count: account.statuses_count)

+ 8
- 0
spec/helpers/application_helper_spec.rb View File

@ -9,6 +9,14 @@ describe ApplicationHelper do
expect(result).to eq "active"
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
allow(helper).to receive(:current_page?).and_return(false)

Loading…
Cancel
Save