class Slack::Surfaces::Modal
Modals provide focused spaces ideal for requesting and collecting data from users, or temporarily displaying dynamic and interactive information.
api.slack.com/surfaces#modals api.slack.com/reference/surfaces/views
@param title [String] title is required. Must be set as an initial argument
or using #title for detail setup
Constants
- TYPE
Attributes
blocks[R]
Public Class Methods
new( title: nil, blocks: nil, private_metadata: nil, callback_id: nil, external_id: nil, clear_on_close: nil, notify_on_close: nil )
click to toggle source
# File lib/slack/surfaces/modal.rb, line 17 def initialize( title: nil, blocks: nil, private_metadata: nil, callback_id: nil, external_id: nil, clear_on_close: nil, notify_on_close: nil ) @blocks = blocks || Slack::BlockKit::Blocks.new @private_metadata = private_metadata @callback_id = callback_id @external_id = external_id @clear_on_close = clear_on_close @notify_on_close = notify_on_close @title = Slack::BlockKit::Composition::PlainText.new(text: title) if title @close, @submit = nil end
Public Instance Methods
as_json(*)
click to toggle source
# File lib/slack/surfaces/modal.rb, line 60 def as_json(*) # rubocop:disable Metrics/MethodLength { type: TYPE, blocks: @blocks.as_json, title: @title&.as_json, close: @close&.as_json, submit: @submit&.as_json, clear_on_close: @clear_on_close, notify_on_close: @notify_on_close, private_metadata: @private_metadata, callback_id: @callback_id, external_id: @external_id }.compact end
close(text:, emoji: nil)
click to toggle source
# File lib/slack/surfaces/modal.rb, line 48 def close(text:, emoji: nil) @close = Slack::BlockKit::Composition::PlainText.new(text: text, emoji: emoji) self end
submit(text:, emoji: nil)
click to toggle source
# File lib/slack/surfaces/modal.rb, line 54 def submit(text:, emoji: nil) @submit = Slack::BlockKit::Composition::PlainText.new(text: text, emoji: emoji) self end
title(text:, emoji: nil)
click to toggle source
# File lib/slack/surfaces/modal.rb, line 42 def title(text:, emoji: nil) @title = Slack::BlockKit::Composition::PlainText.new(text: text, emoji: emoji) self end