class AmaLayout::NavigationDecorator

Public Instance Methods

account_toggle(view_data = {}) click to toggle source
# File lib/ama_layout/decorators/navigation_decorator.rb, line 43
def account_toggle(view_data = {})
  h(view_data).render partial: 'account_toggle'
end
display_name_text() click to toggle source
# File lib/ama_layout/decorators/navigation_decorator.rb, line 11
def display_name_text
  name_or_email.try(:truncate, 30)
end
items() click to toggle source
# File lib/ama_layout/decorators/navigation_decorator.rb, line 7
def items
  object.items.map(&:decorate)
end
mobile_notification_icon() click to toggle source
# File lib/ama_layout/decorators/navigation_decorator.rb, line 53
def mobile_notification_icon
  return '' unless user

  h.render ama_layout_partial('mobile_notification_icon'), navigation: self
end
name_or_email() click to toggle source
# File lib/ama_layout/decorators/navigation_decorator.rb, line 39
def name_or_email
  display_name.present? ? "Welcome, #{display_name.titleize}" : email
end
notification_badge() click to toggle source
# File lib/ama_layout/decorators/navigation_decorator.rb, line 65
def notification_badge
  return '' unless new_notifications?

  h.content_tag(
    :div,
    active_notification_count,
    class: 'notification__badge',
    data: {
      notification_count: true
    }
  )
end
notification_icon() click to toggle source
# File lib/ama_layout/decorators/navigation_decorator.rb, line 47
def notification_icon
  return '' unless user

  h.render ama_layout_partial('notification_icon'), navigation: self
end
notification_sidebar() click to toggle source
# File lib/ama_layout/decorators/navigation_decorator.rb, line 78
def notification_sidebar
  return '' unless user

  h.render ama_layout_partial('notification_sidebar'), navigation: self, notifications: decorated_notifications
end
notifications_heading() click to toggle source
# File lib/ama_layout/decorators/navigation_decorator.rb, line 84
def notifications_heading
  if user.notifications.any?
    h.content_tag :p, 'Most Recent Notifications', class: 'mt1'
  else
    h.content_tag :p, 'No Recent Notifications', class: 'mt1 italic'
  end
end
sidebar() click to toggle source
top_nav() click to toggle source
# File lib/ama_layout/decorators/navigation_decorator.rb, line 27
def top_nav
  return '' unless user

  h.render partial: ama_layout_partial('top_nav'), locals: { navigation: self }
end

Private Instance Methods

active_notification_count() click to toggle source
# File lib/ama_layout/decorators/navigation_decorator.rb, line 98
def active_notification_count
  user && user.notifications.active.size || 0
end
decorated_notifications() click to toggle source
# File lib/ama_layout/decorators/navigation_decorator.rb, line 94
def decorated_notifications
  AmaLayout::NotificationDecorator.decorate_collection(user.notifications)
end
new_notifications?() click to toggle source
# File lib/ama_layout/decorators/navigation_decorator.rb, line 102
def new_notifications?
  active_notification_count.positive?
end