Class: OnyxCord::Webhooks::Modal::LabelBuilder
- Inherits:
-
Object
- Object
- OnyxCord::Webhooks::Modal::LabelBuilder
- Defined in:
- lib/onyxcord/webhooks/modal/label_builder.rb
Constant Summary collapse
- TEXT_INPUT_STYLES =
A mapping of text input styles to symbol names.
shortis a single line whereparagraphis a block. { short: 1, paragraph: 2 }.freeze
Instance Method Summary collapse
-
#channel_select(custom_id:, id: nil, placeholder: nil, min_values: nil, max_values: nil, required: nil, types: nil, default_values: nil) ⇒ Object
Add a channel select to the label component.
-
#checkbox(custom_id:, id: nil, default: false) ⇒ Object
Add a standalone checkbox component to the label component.
-
#checkbox_group(custom_id:, id: nil, checkboxes: [], min_values: nil, max_values: nil, required: nil) {|builder| ... } ⇒ Object
Add a group of checkboxes to the label component.
-
#file_upload(custom_id:, id: nil, min_values: nil, max_values: nil, required: nil) ⇒ Object
Add a file upload component to the label component.
-
#initialize(label: nil, id: nil, description: nil) {|builder| ... } ⇒ LabelBuilder
constructor
Create a label component.
-
#mentionable_select(custom_id:, id: nil, placeholder: nil, min_values: nil, max_values: nil, required: nil, default_values: nil) ⇒ Object
Add a mentionable select to the label component.
-
#radio_group(custom_id:, id: nil, buttons: [], required: nil) {|builder| ... } ⇒ Object
Add a group of radio buttons to the label component.
-
#role_select(custom_id:, id: nil, placeholder: nil, min_values: nil, max_values: nil, required: nil, default_values: nil) ⇒ Object
Add a role select to the label component.
-
#string_select(custom_id:, id: nil, options: [], placeholder: nil, min_values: nil, max_values: nil, required: nil) {|builder| ... } ⇒ Object
(also: #select_menu)
Add a string select menu to the label component.
-
#text_input(style:, custom_id:, id: nil, min_length: nil, max_length: nil, required: nil, value: nil, placeholder: nil) ⇒ Object
Add a text input to the label component.
-
#user_select(custom_id:, id: nil, placeholder: nil, min_values: nil, max_values: nil, required: nil, default_values: nil) ⇒ Object
Add a user select to the label component.
Constructor Details
#initialize(label: nil, id: nil, description: nil) {|builder| ... } ⇒ LabelBuilder
Create a label component.
17 18 19 20 21 22 23 |
# File 'lib/onyxcord/webhooks/modal/label_builder.rb', line 17 def initialize(label: nil, id: nil, description: nil) @id = id @label = label @description = description yield self if block_given? end |
Instance Method Details
#channel_select(custom_id:, id: nil, placeholder: nil, min_values: nil, max_values: nil, required: nil, types: nil, default_values: nil) ⇒ Object
Add a channel select to the label component.
118 119 120 121 122 123 124 |
# File 'lib/onyxcord/webhooks/modal/label_builder.rb', line 118 def channel_select(custom_id:, id: nil, placeholder: nil, min_values: nil, max_values: nil, required: nil, types: nil, default_values: nil) builder = OnyxCord::Webhooks::View::SelectMenuBuilder.new(custom_id, [], placeholder, min_values, max_values, nil, select_type: :channel_select, id: id, required: required, default_values: default_values).to_h builder[:channel_types] = types.map { |type| OnyxCord::Channel::TYPES[type] || type } if types @component = builder end |
#checkbox(custom_id:, id: nil, default: false) ⇒ Object
Add a standalone checkbox component to the label component.
142 143 144 |
# File 'lib/onyxcord/webhooks/modal/label_builder.rb', line 142 def checkbox(custom_id:, id: nil, default: false) @component = { type: COMPONENT_TYPES[:checkbox], custom_id: custom_id, id: id, default: default }.compact end |
#checkbox_group(custom_id:, id: nil, checkboxes: [], min_values: nil, max_values: nil, required: nil) {|builder| ... } ⇒ Object
Add a group of checkboxes to the label component.
168 169 170 171 172 173 174 |
# File 'lib/onyxcord/webhooks/modal/label_builder.rb', line 168 def checkbox_group(custom_id:, id: nil, checkboxes: [], min_values: nil, max_values: nil, required: nil) builder = GroupBuilder.new(:checkbox_group, custom_id, id, checkboxes, required, min_values, max_values) yield builder if block_given? @component = builder.to_h end |
#file_upload(custom_id:, id: nil, min_values: nil, max_values: nil, required: nil) ⇒ Object
Add a file upload component to the label component.
133 134 135 |
# File 'lib/onyxcord/webhooks/modal/label_builder.rb', line 133 def file_upload(custom_id:, id: nil, min_values: nil, max_values: nil, required: nil) @component = { type: COMPONENT_TYPES[:file_upload], custom_id: custom_id, id: id, min_values: min_values, max_values: max_values, required: required }.compact end |
#mentionable_select(custom_id:, id: nil, placeholder: nil, min_values: nil, max_values: nil, required: nil, default_values: nil) ⇒ Object
Add a mentionable select to the label component.
104 105 106 |
# File 'lib/onyxcord/webhooks/modal/label_builder.rb', line 104 def mentionable_select(custom_id:, id: nil, placeholder: nil, min_values: nil, max_values: nil, required: nil, default_values: nil) @component = OnyxCord::Webhooks::View::SelectMenuBuilder.new(custom_id, [], placeholder, min_values, max_values, nil, select_type: :mentionable_select, id: id, required: required, default_values: default_values).to_h end |
#radio_group(custom_id:, id: nil, buttons: [], required: nil) {|builder| ... } ⇒ Object
Add a group of radio buttons to the label component.
152 153 154 155 156 157 158 |
# File 'lib/onyxcord/webhooks/modal/label_builder.rb', line 152 def radio_group(custom_id:, id: nil, buttons: [], required: nil) builder = GroupBuilder.new(:radio_group, custom_id, id, , required) yield builder if block_given? @component = builder.to_h end |
#role_select(custom_id:, id: nil, placeholder: nil, min_values: nil, max_values: nil, required: nil, default_values: nil) ⇒ Object
Add a role select to the label component.
91 92 93 |
# File 'lib/onyxcord/webhooks/modal/label_builder.rb', line 91 def role_select(custom_id:, id: nil, placeholder: nil, min_values: nil, max_values: nil, required: nil, default_values: nil) @component = OnyxCord::Webhooks::View::SelectMenuBuilder.new(custom_id, [], placeholder, min_values, max_values, nil, select_type: :role_select, id: id, required: required, default_values: default_values).to_h end |
#string_select(custom_id:, id: nil, options: [], placeholder: nil, min_values: nil, max_values: nil, required: nil) {|builder| ... } ⇒ Object Also known as:
Add a string select menu to the label component.
59 60 61 62 63 64 65 |
# File 'lib/onyxcord/webhooks/modal/label_builder.rb', line 59 def string_select(custom_id:, id: nil, options: [], placeholder: nil, min_values: nil, max_values: nil, required: nil) builder = OnyxCord::Webhooks::View::SelectMenuBuilder.new(custom_id, , placeholder, min_values, max_values, nil, select_type: :string_select, id: id, required: required) yield builder if block_given? @component = builder.to_h end |
#text_input(style:, custom_id:, id: nil, min_length: nil, max_length: nil, required: nil, value: nil, placeholder: nil) ⇒ Object
Add a text input to the label component.
35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/onyxcord/webhooks/modal/label_builder.rb', line 35 def text_input(style:, custom_id:, id: nil, min_length: nil, max_length: nil, required: nil, value: nil, placeholder: nil) @component = { id: id, style: TEXT_INPUT_STYLES[style] || style, custom_id: custom_id, type: COMPONENT_TYPES[:text_input], min_length: min_length, max_length: max_length, required: required, value: value, placeholder: placeholder }.compact end |
#user_select(custom_id:, id: nil, placeholder: nil, min_values: nil, max_values: nil, required: nil, default_values: nil) ⇒ Object
Add a user select to the label component.
78 79 80 |
# File 'lib/onyxcord/webhooks/modal/label_builder.rb', line 78 def user_select(custom_id:, id: nil, placeholder: nil, min_values: nil, max_values: nil, required: nil, default_values: nil) @component = OnyxCord::Webhooks::View::SelectMenuBuilder.new(custom_id, [], placeholder, min_values, max_values, nil, select_type: :user_select, id: id, required: required, default_values: default_values).to_h end |