Sha256: c63bdff26132a17ae95a84086d3f0d8a11014d150737b78226bd72e11d682602

Contents?: true

Size: 1.64 KB

Versions: 1

Compression:

Stored size: 1.64 KB

Contents

# frozen_string_literal: true
module Decidim
  # View helpers related to the layout.
  module LayoutHelper
    def decidim_page_title
      title = content_for(:title)
      title ? "#{title} - #{current_organization.name}" : current_organization.name
    end

    # Outputs an SVG-based icon.
    #
    # name    - The String with the icon name.
    # options - The Hash options used to customize the icon (default {}):
    #             :width  - The Number of width in pixels (optional).
    #             :height - The Number of height in pixels (optional).
    #             :aria_label - The String to set as aria label (optional).
    #             :aria_hidden - The Truthy value to enable aria_hidden (optional).
    #             :role - The String to set as the role (optional).
    #             :class - The String to add as a CSS class (optional).
    #
    # Returns a String.
    def icon(name, options = {})
      # Ugly hack to work around the issue of phantomjs not sending js events
      # when clicking on a SVG element.
      if Rails.env.test?
        return content_tag(:span, "?", class: "icon icon--#{name}")
      end

      html_properties = {}

      html_properties["width"] = options[:width]
      html_properties["height"] = options[:height]
      html_properties["aria-label"] = options[:aria_label]
      html_properties["role"] = options[:role]
      html_properties["aria-hidden"] = options[:aria_hidden]
      html_properties["class"] = "icon icon--#{name} #{options[:class]}"

      content_tag :svg, html_properties do
        content_tag :use, nil, "xlink:href" => "#{asset_url("decidim/icons.svg")}#icon-#{name}"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
decidim-core-0.0.1 app/helpers/decidim/layout_helper.rb