Files
houston-be/pkg/slack/houston/design/incident_title.go

41 lines
1.5 KiB
Go
Raw Normal View History

package houston
import (
"github.com/slack-go/slack"
"gorm.io/gorm"
)
func BuildIncidentUpdateTitleModal(db *gorm.DB, channel slack.Channel, title string) slack.ModalViewRequest {
titleText := slack.NewTextBlockObject("plain_text", "Set Title of Incident", false, false)
closeText := slack.NewTextBlockObject("plain_text", "Close", false, false)
submitText := slack.NewTextBlockObject("plain_text", "Submit", false, false)
headerText := slack.NewTextBlockObject("mrkdwn", "Title", false, false)
headerSection := slack.NewSectionBlock(headerText, nil, nil)
incidentTitleText := slack.NewTextBlockObject("plain_text", "Incident Title", false, false)
incidentTitlePlaceholder := slack.NewTextBlockObject("plain_text", "Write something", false, false)
incidentTitleElement := slack.NewPlainTextInputBlockElement(incidentTitlePlaceholder, "incident_title")
incidentTitleElement.InitialValue = title
incidentBelowText := slack.NewTextBlockObject("plain_text", "The title to set for the incident.", false, false)
incidentTitle := slack.NewInputBlock("Incident title", incidentTitleText, incidentBelowText, incidentTitleElement)
blocks := slack.Blocks{
BlockSet: []slack.Block{
headerSection,
incidentTitle,
},
}
return slack.ModalViewRequest{
Type: slack.ViewType("modal"),
Title: titleText,
Close: closeText,
Submit: submitText,
Blocks: blocks,
PrivateMetadata: channel.ID,
CallbackID: "setIncidentTitle",
}
}