Class: UiBibz::Ui::Core::Notifications::Toast

Inherits:
Component show all
Defined in:
lib/ui_bibz/ui/core/notifications/toast.rb

Overview

Create an alert

This element is an extend of UiBibz::Ui::Core::Component.

Attributes

  • content - Content of element

  • options - Options of element

  • html_options - Html Options of element

Options

You can add HTML attributes using the html_options. You can pass arguments in options attribute:

  • status - status of element with symbol value: (:default, :primary, :info, :warning, :danger)

  • glyph - [String | Hash] Add glyph with name or hash options

    • name - [String]

    *timeout - [Integer]

Signatures

UiBibz::Ui::Core::Notifications::Toast.new(content, options = nil, html_options = nil)

UiBibz::Ui::Core::Notifications::Toast.new(options = nil, html_options = nil) do
  content
end

Examples

UiBibz::Ui::Core::Notifications::Toast.new(class: 'my-toast').tap |t|
  t.header "My header toast", glyph: 'eye', time: 'now'
  t.body "My body toast"
end

UiBibz::Ui::Core::Notifications::Toast.new(class: 'my-toast').tap |t|
  t.header glyph: 'eye', time: 'now' do
    My header toast
  end
  t.body class: 'my-body-toast' do
    My body toast
  end
end.render

Helper

ui_toast(options = {}, html_options = {}) do |t|
  t.header "My header toast", glyph: 'eye', time: 'now'
  t.body "My body toast"
end

Constant Summary

Constants inherited from Component

Component::BREAKPOINTS, Component::SIZES, Component::STATUSES

Instance Attribute Summary

Attributes inherited from Component

#content, #html_options, #options

Attributes inherited from Base

#output_buffer

Instance Method Summary collapse

Methods inherited from Component

#render, #tapped?

Methods included from PopoverExtension

#popover_data_html, #tooltip_data_html

Methods included from GlyphExtension

#generate_glyph, #glyph_and_content_html

Methods included from KlassExtension

#exclude_classes, #exclude_classes_in_html_options, #join_classes

Methods inherited from Base

#generate_id, #i18n_set?, #inject_url

Constructor Details

#initialize(content = nil, options = nil, html_options = nil, &block) ⇒ Toast

See UiBibz::Ui::Core::Component.initialize



59
60
61
62
# File 'lib/ui_bibz/ui/core/notifications/toast.rb', line 59

def initialize(content = nil, options = nil, html_options = nil, &block)
  super
  body(@content) unless @tapped
end

Instance Method Details

#body(content = nil, options = nil, html_options = nil, &block) ⇒ Object

Add Body which is a component



78
79
80
81
82
83
84
85
86
87
# File 'lib/ui_bibz/ui/core/notifications/toast.rb', line 78

def body(content = nil, options = nil, html_options = nil, &block)
  @body = if @header.nil?
             :div, class: 'd-flex' do
              concat UiBibz::Ui::Core::Notifications::Components::ToastBody.new(content, options, html_options, &block).render
              concat close_html if (options || {})[:closable]
            end
          else
            UiBibz::Ui::Core::Notifications::Components::ToastBody.new(content, options, html_options, &block).render
          end
end

#header(content = nil, options = nil, html_options = nil, &block) ⇒ Object

Add Header which is a component



73
74
75
# File 'lib/ui_bibz/ui/core/notifications/toast.rb', line 73

def header(content = nil, options = nil, html_options = nil, &block)
  @header = UiBibz::Ui::Core::Notifications::Components::ToastHeader.new(content, options, html_options, &block).render
end

#pre_renderObject

Render html tag



65
66
67
68
69
70
# File 'lib/ui_bibz/ui/core/notifications/toast.rb', line 65

def pre_render
   :div, html_options do
    concat @header
    concat @body
  end
end