1
0
mirror of https://github.com/mrusme/neonmodem.git synced 2024-12-04 14:46:37 -05:00

Implemented cmd package

This commit is contained in:
マリウス 2023-01-02 13:23:38 -05:00
parent cb16c4cd60
commit 0847aee30e
No known key found for this signature in database
GPG Key ID: 272ED814BF63261F

57
ui/cmd/cmd.go Normal file
View File

@ -0,0 +1,57 @@
package cmd
import tea "github.com/charmbracelet/bubbletea"
type CallType int8
const (
WinOpen CallType = iota
WinFocus
WinBlur
ViewFocus
ViewBlur
ViewRefreshData
)
type Arg struct {
Name string
Value interface{}
}
type Command struct {
Call CallType
Target string
Args map[string]interface{}
}
func New(
call CallType,
target string,
args ...Arg,
) *Command {
cmd := new(Command)
cmd.Call = call
cmd.Target = target
cmd.Args = make(map[string]interface{})
for _, arg := range args {
cmd.Args[arg.Name] = arg.Value
}
return cmd
}
func (cmd *Command) Tea() tea.Cmd {
return func() tea.Msg {
return *cmd
}
}
func (cmd *Command) GetArg(name string) interface{} {
if iface, ok := cmd.Args[name]; ok {
return iface
}
return nil
}