Class: Slack::BlockKit::Element::StaticSelect
- Inherits:
-
Object
- Object
- Slack::BlockKit::Element::StaticSelect
- Defined in:
- lib/slack/block_kit/element/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/messaging/block-elements#static-select
Constant Summary collapse
- TYPE =
'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, focus_on_load: nil) {|_self| ... } ⇒ StaticSelect
constructor
A new instance of StaticSelect.
- #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, focus_on_load: nil) {|_self| ... } ⇒ StaticSelect
Returns a new instance of StaticSelect.
22 23 24 25 26 27 28 |
# File 'lib/slack/block_kit/element/static_select.rb', line 22 def initialize(placeholder:, action_id:, emoji: nil, focus_on_load: nil) @placeholder = Composition::PlainText.new(text: placeholder, emoji: emoji) @action_id = action_id @focus_on_load = focus_on_load 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/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/static_select.rb', line 20 def @options end |
Instance Method Details
#as_json ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/slack/block_kit/element/static_select.rb', line 53 def as_json(*) { type: TYPE, placeholder: @placeholder.as_json, action_id: @action_id, focus_on_load: @focus_on_load, options: &.map(&:as_json), option_groups: option_groups&.map(&:as_json), initial_option: initial_option&.as_json, confirm: confirm&.as_json }.compact end |
#option(value:, text:, initial: false, emoji: nil) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/slack/block_kit/element/static_select.rb', line 30 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
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/slack/block_kit/element/static_select.rb', line 42 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 |