ctrlret: replaced return types of controllers from tea.Cmd to tea.Msg
This dramatically cuts downs the number of closures.
This commit is contained in:
parent
931b11cd0d
commit
5b6bf1f0ae
17 changed files with 472 additions and 562 deletions
|
|
@ -39,26 +39,24 @@ func (c *SSMController) Fetch() tea.Cmd {
|
|||
}
|
||||
}
|
||||
|
||||
func (c *SSMController) ChangePrefix(newPrefix string) tea.Cmd {
|
||||
return func() tea.Msg {
|
||||
res, err := c.service.List(context.Background(), newPrefix)
|
||||
if err != nil {
|
||||
return events.Error(err)
|
||||
}
|
||||
func (c *SSMController) ChangePrefix(newPrefix string) tea.Msg {
|
||||
res, err := c.service.List(context.Background(), newPrefix)
|
||||
if err != nil {
|
||||
return events.Error(err)
|
||||
}
|
||||
|
||||
c.mutex.Lock()
|
||||
defer c.mutex.Unlock()
|
||||
c.prefix = newPrefix
|
||||
c.mutex.Lock()
|
||||
defer c.mutex.Unlock()
|
||||
c.prefix = newPrefix
|
||||
|
||||
return NewParameterListMsg{
|
||||
Prefix: c.prefix,
|
||||
Parameters: res,
|
||||
}
|
||||
return NewParameterListMsg{
|
||||
Prefix: c.prefix,
|
||||
Parameters: res,
|
||||
}
|
||||
}
|
||||
|
||||
func (c *SSMController) Clone(param models.SSMParameter) tea.Cmd {
|
||||
return events.PromptForInput("New key: ", func(value string) tea.Cmd {
|
||||
func (c *SSMController) Clone(param models.SSMParameter) tea.Msg {
|
||||
return events.PromptForInput("New key: ", func(value string) tea.Msg {
|
||||
return func() tea.Msg {
|
||||
ctx := context.Background()
|
||||
if err := c.service.Clone(ctx, param, value); err != nil {
|
||||
|
|
@ -78,23 +76,21 @@ func (c *SSMController) Clone(param models.SSMParameter) tea.Cmd {
|
|||
})
|
||||
}
|
||||
|
||||
func (c *SSMController) DeleteParameter(param models.SSMParameter) tea.Cmd {
|
||||
return events.Confirm("delete parameter? ", func() tea.Cmd {
|
||||
return func() tea.Msg {
|
||||
ctx := context.Background()
|
||||
if err := c.service.Delete(ctx, param); err != nil {
|
||||
return events.Error(err)
|
||||
}
|
||||
func (c *SSMController) DeleteParameter(param models.SSMParameter) tea.Msg {
|
||||
return events.Confirm("delete parameter? ", func() tea.Msg {
|
||||
ctx := context.Background()
|
||||
if err := c.service.Delete(ctx, param); err != nil {
|
||||
return events.Error(err)
|
||||
}
|
||||
|
||||
res, err := c.service.List(context.Background(), c.prefix)
|
||||
if err != nil {
|
||||
return events.Error(err)
|
||||
}
|
||||
res, err := c.service.List(context.Background(), c.prefix)
|
||||
if err != nil {
|
||||
return events.Error(err)
|
||||
}
|
||||
|
||||
return NewParameterListMsg{
|
||||
Prefix: c.prefix,
|
||||
Parameters: res,
|
||||
}
|
||||
return NewParameterListMsg{
|
||||
Prefix: c.prefix,
|
||||
Parameters: res,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,17 +32,17 @@ func NewModel(controller *controllers.SSMController, cmdController *commandctrl.
|
|||
|
||||
cmdController.AddCommands(&commandctrl.CommandContext{
|
||||
Commands: map[string]commandctrl.Command{
|
||||
"clone": func(args []string) tea.Cmd {
|
||||
"clone": func(args []string) tea.Msg {
|
||||
if currentParam := ssmList.CurrentParameter(); currentParam != nil {
|
||||
return controller.Clone(*currentParam)
|
||||
}
|
||||
return events.SetError(errors.New("no parameter selected"))
|
||||
return events.Error(errors.New("no parameter selected"))
|
||||
},
|
||||
"delete": func(args []string) tea.Cmd {
|
||||
"delete": func(args []string) tea.Msg {
|
||||
if currentParam := ssmList.CurrentParameter(); currentParam != nil {
|
||||
return controller.DeleteParameter(*currentParam)
|
||||
}
|
||||
return events.SetError(errors.New("no parameter selected"))
|
||||
return events.Error(errors.New("no parameter selected"))
|
||||
},
|
||||
},
|
||||
})
|
||||
|
|
@ -75,7 +75,7 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||
switch msg.String() {
|
||||
// TEMP
|
||||
case ":":
|
||||
return m, m.cmdController.Prompt()
|
||||
return m, func() tea.Msg { return m.cmdController.Prompt() }
|
||||
// END TEMP
|
||||
|
||||
case "ctrl+c", "q":
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue