そんな中で、モーダルの入力欄を任意入力にしたい場面があったので、備忘として記載しておきます。
slack.NewInputBlockで作成した入力欄のBlockのOptionalをtrueすることで任意入力にすることができます。デフォルトがfalseで必須入力な訳ですねー。
// キーワードを指定 keywordText := slack.NewTextBlockObject(slack.PlainTextType, "キーワード", false, false) keywordPlaceholder := slack.NewTextBlockObject(slack.PlainTextType, "キーワードを入力してください", false, false) keywordElement := slack.NewPlainTextInputBlockElement(keywordPlaceholder, "keyword") keywordBlock := slack.NewInputBlock("keyword", keywordText, keywordElement) keywordBlock.Optional = true // 入力任意 // 担当者を指定 userText := slack.NewTextBlockObject(slack.PlainTextType, "担当者", false, false) userElement := slack.NewOptionsSelectBlockElement(slack.OptTypeUser, userText, "user") userBlock := slack.NewInputBlock("user", userText, userElement) userBlock.Optional = true // 入力任意 // ステータスを指定 statusText := slack.NewTextBlockObject(slack.PlainTextType, "ステータス", false, false) statusElement := slack.NewOptionsSelectBlockElement(slack.OptTypeStatic, statusText, "status", GenerateStatusBlockObjects()...) statusBlock := slack.NewInputBlock("status", statusText, statusElement) statusBlock.Optional = true // 入力任意このような感じでコードを書けば、任意入力のモーダルが生成できます。