Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/components/pajamas/banner_component.rb')
-rw-r--r--app/components/pajamas/banner_component.rb61
1 files changed, 61 insertions, 0 deletions
diff --git a/app/components/pajamas/banner_component.rb b/app/components/pajamas/banner_component.rb
new file mode 100644
index 00000000000..9b6343b47c9
--- /dev/null
+++ b/app/components/pajamas/banner_component.rb
@@ -0,0 +1,61 @@
+# frozen_string_literal: true
+
+module Pajamas
+ class BannerComponent < Pajamas::Component
+ # @param [String] button_text
+ # @param [String] button_link
+ # @param [Boolean] embedded
+ # @param [Symbol] variant
+ # @param [String] svg_path
+ # @param [Hash] banner_options
+ # @param [Hash] button_options
+ # @param [Hash] close_options
+ def initialize(
+ button_text: 'OK',
+ button_link: '#',
+ embedded: false,
+ variant: :promotion,
+ svg_path: nil,
+ banner_options: {},
+ button_options: {},
+ close_options: {}
+ )
+ @button_text = button_text
+ @button_link = button_link
+ @embedded = embedded
+ @variant = variant.to_sym
+ @svg_path = svg_path.to_s
+ @banner_options = banner_options
+ @button_options = button_options
+ @close_options = close_options
+ end
+
+ private
+
+ def banner_class
+ classes = []
+ classes.push('gl-border-none') if @embedded
+ classes.push('gl-banner-introduction') if introduction?
+ classes.join(' ')
+ end
+
+ def close_class
+ if introduction?
+ 'btn-confirm btn-confirm-tertiary'
+ else
+ 'btn-default btn-default-tertiary'
+ end
+ end
+
+ delegate :sprite_icon, to: :helpers
+
+ renders_one :title
+ renders_one :illustration
+ renders_one :primary_action
+ renders_many :actions
+
+ def introduction?
+ @variant == :introduction
+ end
+ end
+end