class Slack::BlockKit::Element::StaticSelect
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
Constants
- TYPE
Attributes
option_groups[RW]
options[RW]
Public Class Methods
new(placeholder:, action_id:, emoji: nil) { |self| ... }
click to toggle source
# File lib/slack/block_kit/element/static_select.rb, line 22 def initialize(placeholder:, action_id:, emoji: nil) @placeholder = Composition::PlainText.new(text: placeholder, emoji: emoji) @action_id = action_id yield(self) if block_given? end
Public Instance Methods
as_json(*)
click to toggle source
# File lib/slack/block_kit/element/static_select.rb, line 52 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_option: initial_option&.as_json, confirm: confirm&.as_json }.compact end
option(value:, text:, initial: false, emoji: nil)
click to toggle source
# File lib/slack/block_kit/element/static_select.rb, line 29 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/static_select.rb, line 41 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_option()
click to toggle source
# File lib/slack/block_kit/element/static_select.rb, line 66 def initial_option opts = options || option_groups&.flat_map(&:options) return unless opts opts.find(&:initial?) end