summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authoradamdottv <[email protected]>2025-05-29 10:17:48 -0500
committeradamdottv <[email protected]>2025-05-29 14:04:48 -0500
commitfce9e79d38f20d6e83a8e21c51372006a53d30d4 (patch)
treeb4913459b12c0618830b44483fbe90581a14ee7b
parent6759674c0f3205155a0737b929a3fd0346a752c4 (diff)
downloadopencode-fce9e79d38f20d6e83a8e21c51372006a53d30d4.tar.gz
opencode-fce9e79d38f20d6e83a8e21c51372006a53d30d4.zip
wip: refactoring tui
-rw-r--r--internal/tui/app/app.go8
-rw-r--r--internal/tui/app/bridge.go6
-rw-r--r--internal/tui/components/chat/message.go6
-rw-r--r--internal/tui/components/chat/messages.go3
-rw-r--r--internal/tui/tui.go2
5 files changed, 12 insertions, 13 deletions
diff --git a/internal/tui/app/app.go b/internal/tui/app/app.go
index e573352f3..1c251b92a 100644
--- a/internal/tui/app/app.go
+++ b/internal/tui/app/app.go
@@ -25,7 +25,7 @@ type App struct {
Events *client.Client
State map[string]any
Session *client.SessionInfo
- Messages []client.SessionMessage
+ Messages []client.MessageInfo
CurrentSessionOLD *session.Session
SessionsOLD SessionService
@@ -133,12 +133,12 @@ func (a *App) SendChatMessage(ctx context.Context, text string, attachments []me
// return "", fmt.Errorf("attachments not supported yet")
}
- part := client.SessionMessagePart{}
- part.FromSessionMessagePartText(client.SessionMessagePartText{
+ part := client.MessagePart{}
+ part.FromMessagePartText(client.MessagePartText{
Type: "text",
Text: text,
})
- parts := []client.SessionMessagePart{part}
+ parts := []client.MessagePart{part}
go a.Client.PostSessionChatWithResponse(ctx, client.PostSessionChatJSONRequestBody{
SessionID: a.Session.Id,
diff --git a/internal/tui/app/bridge.go b/internal/tui/app/bridge.go
index b8af35fa5..b646ca455 100644
--- a/internal/tui/app/bridge.go
+++ b/internal/tui/app/bridge.go
@@ -70,12 +70,12 @@ func (a *AgentServiceBridge) Run(ctx context.Context, sessionID string, text str
// return "", fmt.Errorf("attachments not supported yet")
}
- part := client.SessionMessagePart{}
- part.FromSessionMessagePartText(client.SessionMessagePartText{
+ part := client.MessagePart{}
+ part.FromMessagePartText(client.MessagePartText{
Type: "text",
Text: text,
})
- parts := []client.SessionMessagePart{part}
+ parts := []client.MessagePart{part}
go a.client.PostSessionChatWithResponse(ctx, client.PostSessionChatJSONRequestBody{
SessionID: sessionID,
diff --git a/internal/tui/components/chat/message.go b/internal/tui/components/chat/message.go
index c23644638..679041d8d 100644
--- a/internal/tui/components/chat/message.go
+++ b/internal/tui/components/chat/message.go
@@ -76,7 +76,7 @@ func renderMessage(msg string, isUser bool, isFocused bool, width int, info ...s
return rendered
}
-func renderUserMessage(msg client.SessionMessage, isFocused bool, width int, position int) uiMessage {
+func renderUserMessage(msg client.MessageInfo, isFocused bool, width int) uiMessage {
// var styledAttachments []string
t := theme.CurrentTheme()
baseStyle := styles.BaseStyle()
@@ -118,8 +118,8 @@ func renderUserMessage(msg client.SessionMessage, isFocused bool, width int, pos
}
switch part.(type) {
- case client.SessionMessagePartText:
- textPart := part.(client.SessionMessagePartText)
+ case client.MessagePartText:
+ textPart := part.(client.MessagePartText)
content = renderMessage(textPart.Text, true, isFocused, width, info...)
}
}
diff --git a/internal/tui/components/chat/messages.go b/internal/tui/components/chat/messages.go
index 652f831d3..5fe355071 100644
--- a/internal/tui/components/chat/messages.go
+++ b/internal/tui/components/chat/messages.go
@@ -185,12 +185,12 @@ func formatTimeDifference(unixTime1, unixTime2 int64) string {
func (m *messagesCmp) renderView() {
m.uiMessages = make([]uiMessage, 0)
- pos := 0
baseStyle := styles.BaseStyle()
if m.width == 0 {
return
}
+
for _, msg := range m.app.Messages {
switch msg.Role {
case client.User:
@@ -202,7 +202,6 @@ func (m *messagesCmp) renderView() {
msg,
msg.Id == m.currentMsgID,
m.width,
- pos,
)
m.uiMessages = append(m.uiMessages, userMsg)
m.cachedContent[msg.Id] = cacheItem{
diff --git a/internal/tui/tui.go b/internal/tui/tui.go
index b0950c2b3..745fdc61e 100644
--- a/internal/tui/tui.go
+++ b/internal/tui/tui.go
@@ -292,7 +292,7 @@ func (a appModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
sessionId := parts[2]
if sessionId == a.app.Session.Id {
messageId := parts[3]
- var message client.SessionMessage
+ var message client.MessageInfo
bytes, _ := json.Marshal(msg.Content)
if err := json.Unmarshal(bytes, &message); err != nil {
status.Error(err.Error())