summaryrefslogtreecommitdiffhomepage
path: root/packages/tui
diff options
context:
space:
mode:
authoradamdotdevin <[email protected]>2025-08-15 08:39:58 -0500
committeradamdotdevin <[email protected]>2025-08-15 08:39:58 -0500
commit9609c1803e68ecd753572972cb2cd531b48f1438 (patch)
tree89de4df40402bf1021b47fc52b6a4b00d6315c1b /packages/tui
parent6e0e87fb2ad5cc440cc5455c4e43cafc9d07aff0 (diff)
downloadopencode-9609c1803e68ecd753572972cb2cd531b48f1438.tar.gz
opencode-9609c1803e68ecd753572972cb2cd531b48f1438.zip
feat: /tui/show-toast api
Diffstat (limited to 'packages/tui')
-rw-r--r--packages/tui/internal/tui/tui.go39
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