Class: Slack::BlockKit::Element::MultiStaticSelect
- Inherits:
-
Object
- Object
- Slack::BlockKit::Element::MultiStaticSelect
- Defined in:
- lib/slack/block_kit/element/multi_static_select.rb
Overview
A select menu, just as with a standard HTML <select> tag, creates a drop down menu with a list of options for a user to choose. The select menu also includes type-ahead functionality, where a user can type a part or all of an option string to filter the list.
This is the simplest form of select menu, with a static list of options passed in when defining the element.
api.slack.com/reference/block-kit/block-elements#static_multi_select
Constant Summary collapse
- TYPE =
'multi_static_select'
Instance Attribute Summary collapse
-
#option_groups ⇒ Object
Returns the value of attribute option_groups.
-
#options ⇒ Object
Returns the value of attribute options.
Instance Method Summary collapse
- #as_json ⇒ Object
-
#initialize(placeholder:, action_id:, emoji: nil, max_selected_items: nil, focus_on_load: nil) {|_self| ... } ⇒ MultiStaticSelect
constructor
A new instance of MultiStaticSelect.
- #option(value:, text:, initial: false, emoji: nil) ⇒ Object
- #option_group(label:, emoji: nil) {|option_group| ... } ⇒ Object
Methods included from Composition::ConfirmationDialog::Confirmable
#confirmation_dialog, included
Constructor Details
#initialize(placeholder:, action_id:, emoji: nil, max_selected_items: nil, focus_on_load: nil) {|_self| ... } ⇒ MultiStaticSelect
Returns a new instance of MultiStaticSelect.
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/slack/block_kit/element/multi_static_select.rb', line 22 def initialize( placeholder:, action_id:, emoji: nil, max_selected_items: nil, focus_on_load: nil ) @placeholder = Composition::PlainText.new(text: placeholder, emoji: emoji) @action_id = action_id @max_selected_items = max_selected_items @focus_on_load = focus_on_load @options = nil @option_groups = nil yield(self) if block_given? end |
Instance Attribute Details
#option_groups ⇒ Object
Returns the value of attribute option_groups.
20 21 22 |
# File 'lib/slack/block_kit/element/multi_static_select.rb', line 20 def option_groups @option_groups end |
#options ⇒ Object
Returns the value of attribute options.
20 21 22 |
# File 'lib/slack/block_kit/element/multi_static_select.rb', line 20 def @options end |
Instance Method Details
#as_json ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/slack/block_kit/element/multi_static_select.rb', line 63 def as_json(*) { type: TYPE, placeholder: @placeholder.as_json, action_id: @action_id, focus_on_load: @focus_on_load, options: @options&.map(&:as_json), option_groups: @option_groups&.map(&:as_json), initial_options: &.map(&:as_json), confirm: confirm&.as_json, max_selected_items: @max_selected_items }.compact end |
#option(value:, text:, initial: false, emoji: nil) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/slack/block_kit/element/multi_static_select.rb', line 40 def option(value:, text:, initial: false, emoji: nil) @options ||= [] @options << Composition::Option.new( value: value, text: text, emoji: emoji, initial: initial ) self end |
#option_group(label:, emoji: nil) {|option_group| ... } ⇒ Object
52 53 54 55 56 57 58 59 60 61 |
# File 'lib/slack/block_kit/element/multi_static_select.rb', line 52 def option_group(label:, emoji: nil) option_group = Composition::OptionGroup.new(label: label, emoji: emoji) yield(option_group) if block_given? @option_groups ||= [] @option_groups << option_group self end |