Sha256: 82afd24a41e4c8c9022e4ee0c076806c79d2c6c672b27607f1c6fa10be230a9f

Contents?: true

Size: 878 Bytes

Versions: 2

Compression:

Stored size: 878 Bytes

Contents

# frozen_string_literal: true

module PagesCore
  module Admin
    module ContentTabsHelper
      def content_tabs
        @content_tabs ||= []
      end

      def content_tabs?
        content_tabs.any?
      end

      def content_tab(name, options = {}, &)
        return unless block_given?

        tab = {
          name: name.to_s.humanize,
          key: options[:key] || name.to_s.underscore.gsub(/\s+/, "_"),
          options:,
          content: capture(&)
        }
        content_tabs.push(tab)
        content_tab_tag(tab[:key], tab[:content])
      end

      private

      def content_tab_tag(key, content)
        tag.div(content,
                class: "content-tab",
                id: "content-tab-#{key}",
                role: "tabpanel",
                data: { tab: key,
                        "main-target" => "tab" })
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pages_core-3.14.0 app/helpers/pages_core/admin/content_tabs_helper.rb
pages_core-3.13.0 app/helpers/pages_core/admin/content_tabs_helper.rb