You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							51 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							51 lines
						
					
					
						
							1.4 KiB
						
					
					
				module ApplicationHelper | 
						|
  include Pagy::Frontend | 
						|
 | 
						|
  def browser_title(title, pagy, *resources) | 
						|
    title = sanitize(title)&.gsub("&", "&") | 
						|
    if resources.any? { |r| r.present? && r.errors.present? } | 
						|
      "Error: #{[title, t('service_name'), 'GOV.UK'].select(&:present?).join(' - ')}" | 
						|
    else | 
						|
      [paginated_title(title, pagy), t("service_name"), "GOV.UK"].select(&:present?).join(" - ") | 
						|
    end | 
						|
  end | 
						|
 | 
						|
  def govuk_header_classes(current_user) | 
						|
    if current_user&.support? | 
						|
      "app-header app-header--orange" | 
						|
    elsif notifications_to_display? | 
						|
      "app-header app-header__no-border-bottom" | 
						|
    else | 
						|
      "app-header" | 
						|
    end | 
						|
  end | 
						|
 | 
						|
  def govuk_phase_banner_tag(current_user) | 
						|
    if current_user&.support? | 
						|
      { colour: "orange", text: "Support beta" } | 
						|
    else | 
						|
      { text: "Beta" } | 
						|
    end | 
						|
  end | 
						|
 | 
						|
  def notifications_to_display? | 
						|
    !request.path.match?(/\/notifications\/\d+$/) && (authenticated_user_has_notifications? || unauthenticated_user_has_notifications?) | 
						|
  end | 
						|
 | 
						|
private | 
						|
 | 
						|
  def paginated_title(title, pagy) | 
						|
    return unless title | 
						|
    return title unless pagy && pagy.pages > 1 | 
						|
 | 
						|
    title + " (page #{pagy.page} of #{pagy.pages})" | 
						|
  end | 
						|
 | 
						|
  def authenticated_user_has_notifications? | 
						|
    current_user&.active_unread_notifications.present? | 
						|
  end | 
						|
 | 
						|
  def unauthenticated_user_has_notifications? | 
						|
    current_user.blank? && Notification.active_unauthenticated_notifications.present? | 
						|
  end | 
						|
end
 | 
						|
 |