Skip to content

Commit

Permalink
Support setting 'URL' for NewButtonBlockElement
Browse files Browse the repository at this point in the history
  • Loading branch information
Josh Branham committed Dec 20, 2023
1 parent e715221 commit d573676
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 31 deletions.
2 changes: 1 addition & 1 deletion block_action_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
func TestNewActionBlock(t *testing.T) {

approveBtnTxt := NewTextBlockObject("plain_text", "Approve", false, false)
approveBtn := NewButtonBlockElement("", "click_me_123", approveBtnTxt)
approveBtn := NewButtonBlockElement("", "click_me_123", "", approveBtnTxt)

actionBlock := NewActionBlock("test", approveBtn)
assert.Equal(t, string(actionBlock.Type), "actions")
Expand Down
3 changes: 2 additions & 1 deletion block_element.go
Original file line number Diff line number Diff line change
Expand Up @@ -178,11 +178,12 @@ func (s *ButtonBlockElement) WithConfirm(confirm *ConfirmationBlockObject) *Butt
}

// NewButtonBlockElement returns an instance of a new button element to be used within a block
func NewButtonBlockElement(actionID, value string, text *TextBlockObject) *ButtonBlockElement {
func NewButtonBlockElement(actionID, value, url string, text *TextBlockObject) *ButtonBlockElement {
return &ButtonBlockElement{
Type: METButton,
ActionID: actionID,
Text: text,
URL: url,
Value: value,
}
}
Expand Down
5 changes: 3 additions & 2 deletions block_element_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,21 @@ func TestNewImageBlockElement(t *testing.T) {
func TestNewButtonBlockElement(t *testing.T) {

btnTxt := NewTextBlockObject("plain_text", "Next 2 Results", false, false)
btnElement := NewButtonBlockElement("test", "click_me_123", btnTxt)
btnElement := NewButtonBlockElement("test", "click_me_123", "https://foo.com", btnTxt)

assert.Equal(t, string(btnElement.Type), "button")
assert.Equal(t, btnElement.ActionID, "test")
assert.Equal(t, btnElement.Value, "click_me_123")
assert.Equal(t, btnElement.Text.Text, "Next 2 Results")
assert.Equal(t, btnElement.URL, "https://foo.com")

}

func TestWithStyleForButtonElement(t *testing.T) {

// these values are irrelevant in this test
btnTxt := NewTextBlockObject("plain_text", "Next 2 Results", false, false)
btnElement := NewButtonBlockElement("test", "click_me_123", btnTxt)
btnElement := NewButtonBlockElement("test", "click_me_123", "", btnTxt)

btnElement.WithStyle(StyleDefault)
assert.Equal(t, btnElement.Style, Style(""))
Expand Down
22 changes: 11 additions & 11 deletions examples/blocks/blocks.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,10 @@ func exampleOne() {

// Approve and Deny Buttons
approveBtnTxt := slack.NewTextBlockObject("plain_text", "Approve", false, false)
approveBtn := slack.NewButtonBlockElement("", "click_me_123", approveBtnTxt)
approveBtn := slack.NewButtonBlockElement("", "click_me_123", "", approveBtnTxt)

denyBtnTxt := slack.NewTextBlockObject("plain_text", "Deny", false, false)
denyBtn := slack.NewButtonBlockElement("", "click_me_123", denyBtnTxt)
denyBtn := slack.NewButtonBlockElement("", "click_me_123", "", denyBtnTxt)

actionBlock := slack.NewActionBlock("", approveBtn, denyBtn)

Expand Down Expand Up @@ -107,10 +107,10 @@ func exampleTwo() {

// Approve and Deny Buttons
approveBtnTxt := slack.NewTextBlockObject("plain_text", "Approve", false, false)
approveBtn := slack.NewButtonBlockElement("", "click_me_123", approveBtnTxt)
approveBtn := slack.NewButtonBlockElement("", "click_me_123", "", approveBtnTxt)

denyBtnTxt := slack.NewTextBlockObject("plain_text", "Deny", false, false)
denyBtn := slack.NewButtonBlockElement("", "click_me_123", denyBtnTxt)
denyBtn := slack.NewButtonBlockElement("", "click_me_123", "", denyBtnTxt)

actionBlock := slack.NewActionBlock("", approveBtn, denyBtn)

Expand All @@ -137,7 +137,7 @@ func exampleThree() {

// Shared Assets for example
chooseBtnText := slack.NewTextBlockObject("plain_text", "Choose", true, false)
chooseBtnEle := slack.NewButtonBlockElement("", "click_me_123", chooseBtnText)
chooseBtnEle := slack.NewButtonBlockElement("", "click_me_123", "", chooseBtnText)
divSection := slack.NewDividerBlock()

// Header Section
Expand Down Expand Up @@ -208,7 +208,7 @@ func exampleFour() {
// Shared Assets for example
divSection := slack.NewDividerBlock()
voteBtnText := slack.NewTextBlockObject("plain_text", "Vote", true, false)
voteBtnEle := slack.NewButtonBlockElement("", "click_me_123", voteBtnText)
voteBtnEle := slack.NewButtonBlockElement("", "click_me_123", "", voteBtnText)
profileOne := slack.NewImageBlockElement("https://api.slack.com/img/blocks/bkb_template_images/profile_1.png", "Michael Scott")
profileTwo := slack.NewImageBlockElement("https://api.slack.com/img/blocks/bkb_template_images/profile_2.png", "Dwight Schrute")
profileThree := slack.NewImageBlockElement("https://api.slack.com/img/blocks/bkb_template_images/profile_3.png", "Pam Beasely")
Expand Down Expand Up @@ -244,7 +244,7 @@ func exampleFour() {

// Suggestions Action
btnTxt := slack.NewTextBlockObject("plain_text", "Add a suggestion", false, false)
nextBtn := slack.NewButtonBlockElement("", "click_me_123", btnTxt)
nextBtn := slack.NewButtonBlockElement("", "click_me_123", "", btnTxt)
actionBlock := slack.NewActionBlock("", nextBtn)

// Build Message with blocks created above
Expand Down Expand Up @@ -325,7 +325,7 @@ func exampleFive() {

// Action button
btnTxt := slack.NewTextBlockObject("plain_text", "Next 2 Results", false, false)
nextBtn := slack.NewButtonBlockElement("", "click_me_123", btnTxt)
nextBtn := slack.NewButtonBlockElement("", "click_me_123", "", btnTxt)
actionBlock := slack.NewActionBlock("", nextBtn)

// Build Message with blocks created above
Expand Down Expand Up @@ -398,7 +398,7 @@ func exampleSix() {
// Next Results Button
// Suggestions Action
btnTxt := slack.NewTextBlockObject("plain_text", "Next 5 Results", false, false)
nextBtn := slack.NewButtonBlockElement("", "click_me_123", btnTxt)
nextBtn := slack.NewButtonBlockElement("", "click_me_123", "", btnTxt)
actionBlock := slack.NewActionBlock("", nextBtn)

// Build Message with blocks created above
Expand Down Expand Up @@ -429,9 +429,9 @@ func unmarshalExample() {

// Append ActionBlock for marshalling
btnTxt := slack.NewTextBlockObject("plain_text", "Add a suggestion", false, false)
nextBtn := slack.NewButtonBlockElement("", "click_me_123", btnTxt)
nextBtn := slack.NewButtonBlockElement("", "click_me_123", "", btnTxt)
approveBtnTxt := slack.NewTextBlockObject("plain_text", "Approve", false, false)
approveBtn := slack.NewButtonBlockElement("", "click_me_123", approveBtnTxt)
approveBtn := slack.NewButtonBlockElement("", "click_me_123", "", approveBtnTxt)
msgBlocks = append(msgBlocks, slack.NewActionBlock("", nextBtn, approveBtn))

// Append ContextBlock for marshalling
Expand Down
12 changes: 4 additions & 8 deletions examples/socketmode/socketmode.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,14 +127,10 @@ func main() {
},
nil,
slack.NewAccessory(
slack.NewButtonBlockElement(
"",
"somevalue",
&slack.TextBlockObject{
Type: slack.PlainTextType,
Text: "bar",
},
),
slack.NewButtonBlockElement("", "somevalue", "", &slack.TextBlockObject{
Type: slack.PlainTextType,
Text: "bar",
}),
),
),
},
Expand Down
12 changes: 4 additions & 8 deletions examples/socketmode_handler/socketmode_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -186,14 +186,10 @@ func middlewareSlashCommand(evt *socketmode.Event, client *socketmode.Client) {
},
nil,
slack.NewAccessory(
slack.NewButtonBlockElement(
"",
"somevalue",
&slack.TextBlockObject{
Type: slack.PlainTextType,
Text: "bar",
},
),
slack.NewButtonBlockElement("", "somevalue", "", &slack.TextBlockObject{
Type: slack.PlainTextType,
Text: "bar",
}),
),
),
}}
Expand Down

0 comments on commit d573676

Please sign in to comment.