class Slack::BlockKit::Element::MultiStaticSelect
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
Constants
- TYPE
Attributes
option_groups[RW]
options[RW]
Public Class Methods
new(placeholder:, action_id:, emoji: nil, max_selected_items: nil) { |self| ... }
click to toggle source
# File lib/slack/block_kit/element/multi_static_select.rb, line 22 def initialize(placeholder:, action_id:, emoji: nil, max_selected_items: nil) @placeholder = Composition::PlainText.new(text: placeholder, emoji: emoji) @action_id = action_id @max_selected_items = max_selected_items @options = nil @option_groups = nil yield(self) if block_given? end
Public Instance Methods
as_json(*)
click to toggle source
# File lib/slack/block_kit/element/multi_static_select.rb, line 56 def as_json(*) { type: TYPE, placeholder: @placeholder.as_json, action_id: @action_id, options: @options&.map(&:as_json), option_groups: @option_groups&.map(&:as_json), initial_options: initial_options&.map(&:as_json), confirm: confirm&.as_json, max_selected_items: @max_selected_items }.compact end
option(value:, text:, initial: false, emoji: nil)
click to toggle source
# File lib/slack/block_kit/element/multi_static_select.rb, line 33 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| ... }
click to toggle source
# File lib/slack/block_kit/element/multi_static_select.rb, line 45 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
Private Instance Methods
initial_options()
click to toggle source
# File lib/slack/block_kit/element/multi_static_select.rb, line 71 def initial_options all_options = options || option_groups&.flat_map(&:options) initial = all_options&.select(&:initial?) initial&.empty? ? nil : initial end