summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/nlopes/slack/dialog_text.go
blob: bf9602cce1475487fe8589c78b98c0013a369bfd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package slack

// TextInputSubtype Accepts email, number, tel, or url. In some form factors, optimized input is provided for this subtype.
type TextInputSubtype string

const (
	// InputSubtypeEmail email keyboard
	InputSubtypeEmail TextInputSubtype = "email"
	// InputSubtypeNumber numeric keyboard
	InputSubtypeNumber TextInputSubtype = "number"
	// InputSubtypeTel Phone keyboard
	InputSubtypeTel TextInputSubtype = "tel"
	// InputSubtypeURL Phone keyboard
	InputSubtypeURL TextInputSubtype = "url"
)

// TextInputElement subtype of DialogInput
//	https://api.slack.com/dialogs#option_element_attributes#text_element_attributes
type TextInputElement struct {
	DialogInput
	MaxLength int              `json:"max_length,omitempty"`
	MinLength int              `json:"min_length,omitempty"`
	Hint      string           `json:"hint,omitempty"`
	Subtype   TextInputSubtype `json:"subtype"`
	Value     string           `json:"value"`
}

// NewTextInput constructor for a `text` input
func NewTextInput(name, label, text string) *TextInputElement {
	return &TextInputElement{
		DialogInput: DialogInput{
			Type:  InputTypeText,
			Name:  name,
			Label: label,
		},
		Value: text,
	}
}

// NewTextAreaInput constructor for a `textarea` input
func NewTextAreaInput(name, label, text string) *TextInputElement {
	return &TextInputElement{
		DialogInput: DialogInput{
			Type:  InputTypeTextArea,
			Name:  name,
			Label: label,
		},
		Value: text,
	}
}