diff options
| author | adamdotdevin <[email protected]> | 2025-08-15 08:39:58 -0500 |
|---|---|---|
| committer | adamdotdevin <[email protected]> | 2025-08-15 08:39:58 -0500 |
| commit | 9609c1803e68ecd753572972cb2cd531b48f1438 (patch) | |
| tree | 89de4df40402bf1021b47fc52b6a4b00d6315c1b /packages/tui | |
| parent | 6e0e87fb2ad5cc440cc5455c4e43cafc9d07aff0 (diff) | |
| download | opencode-9609c1803e68ecd753572972cb2cd531b48f1438.tar.gz opencode-9609c1803e68ecd753572972cb2cd531b48f1438.zip | |
feat: /tui/show-toast api
Diffstat (limited to 'packages/tui')
| -rw-r--r-- | packages/tui/internal/tui/tui.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/packages/tui/internal/tui/tui.go b/packages/tui/internal/tui/tui.go index 7b5fc72c5..97e5527bc 100644 --- a/packages/tui/internal/tui/tui.go +++ b/packages/tui/internal/tui/tui.go @@ -705,6 +705,45 @@ func (a Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { updated, cmd := a.executeCommand(commands.Command(command)) a = updated.(Model) cmds = append(cmds, cmd) + case "/tui/show-toast": + var body struct { + Title string `json:"title,omitempty"` + Message string `json:"message"` + Variant string `json:"variant"` + } + json.Unmarshal((msg.Body), &body) + + var toastCmd tea.Cmd + switch body.Variant { + case "info": + if body.Title != "" { + toastCmd = toast.NewInfoToast(body.Message, toast.WithTitle(body.Title)) + } else { + toastCmd = toast.NewInfoToast(body.Message) + } + case "success": + if body.Title != "" { + toastCmd = toast.NewSuccessToast(body.Message, toast.WithTitle(body.Title)) + } else { + toastCmd = toast.NewSuccessToast(body.Message) + } + case "warning": + if body.Title != "" { + toastCmd = toast.NewErrorToast(body.Message, toast.WithTitle(body.Title)) + } else { + toastCmd = toast.NewErrorToast(body.Message) + } + case "error": + if body.Title != "" { + toastCmd = toast.NewErrorToast(body.Message, toast.WithTitle(body.Title)) + } else { + toastCmd = toast.NewErrorToast(body.Message) + } + default: + slog.Error("Invalid toast variant", "variant", body.Variant) + return a, nil + } + cmds = append(cmds, toastCmd) default: break |
