Update subs for Tea v0.2.1. That is to say, remove the their arguments.

This commit is contained in:
Christian Rocha 2020-05-04 18:54:26 -04:00
parent 6c2e144255
commit da64445a0e
No known key found for this signature in database
GPG Key ID: D6CC7A16E5878018
3 changed files with 31 additions and 15 deletions

View File

@ -154,14 +154,24 @@ func updateInputs(msg tea.Msg, m Model) Model {
}
func subscriptions(model tea.Model) tea.Subs {
m, ok := model.(Model)
if !ok {
return nil
}
// It's a little hacky, but we're using the subscription from one
// input element to handle the blinking for all elements. It doesn't
// have to be this way, we're just feeling a bit lazy at the moment.
inputSub, err := input.MakeSub(m.nameInput)
if err != nil {
return nil
}
return tea.Subs{
// It's a little hacky, but we're using the subscription from one
// input element to handle the blinking for all elements. It doesn't
// have to be this way, we're just feeling a bit lazy at the moment.
"blink": func(model tea.Model) tea.Msg {
m, _ := model.(Model)
return input.Blink(m.nameInput)
},
"blink": inputSub,
}
}

View File

@ -86,12 +86,16 @@ func View(model Model) string {
return str
}
// Sub is the subscription that allows the spinner to spin
func Sub(model tea.Model) tea.Msg {
// GetSub creates the subscription that allows the spinner to spin. Remember
// that you need to execute this function in order to get the subscription
// you'll need.
func MakeSub(model tea.Model) (tea.Sub, error) {
m, ok := model.(Model)
if !ok {
return assertionErr
return nil, assertionErr
}
time.Sleep(time.Second / time.Duration(m.FPS))
return TickMsg{}
return func() tea.Msg {
time.Sleep(time.Second / time.Duration(m.FPS))
return TickMsg{}
}, nil
}

View File

@ -230,13 +230,15 @@ func cursorView(s string, m Model) string {
String()
}
// Blink is the subscription that lets us know when to alternate the blinking
// of the cursor.
func Blink(model tea.Model) tea.Msg {
// MakeSub return a subscription that lets us know when to alternate the
// blinking of the cursor.
func MakeSub(model tea.Model) (tea.Sub, error) {
m, ok := model.(Model)
if !ok {
return ErrMsg(errors.New("could not assert given model to the model we expected; make sure you're passing as input model"))
return nil, errors.New("could not assert given model to the model we expected; make sure you're passing as input model")
}
time.Sleep(m.BlinkSpeed)
return CursorBlinkMsg{}
return func() tea.Msg {
time.Sleep(m.BlinkSpeed)
return CursorBlinkMsg{}
}, nil
}