summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src
diff options
context:
space:
mode:
authoradamelmore <[email protected]>2026-01-24 12:36:42 -0600
committeradamelmore <[email protected]>2026-01-24 12:41:50 -0600
commit1080f37f9c86d8ad20de8f26136ea6e874ae39a9 (patch)
tree35c6bd696d0b87e7a20efe021268e4f2145ea51b /packages/app/src
parentd90b4c9ebd648333aed27d372656b17597f629db (diff)
downloadopencode-1080f37f9c86d8ad20de8f26136ea6e874ae39a9.tar.gz
opencode-1080f37f9c86d8ad20de8f26136ea6e874ae39a9.zip
fix(app): don't use findLast
Diffstat (limited to 'packages/app/src')
-rw-r--r--packages/app/src/components/session-context-usage.tsx3
-rw-r--r--packages/app/src/components/session/session-context-tab.tsx5
-rw-r--r--packages/app/src/pages/session.tsx9
3 files changed, 10 insertions, 7 deletions
diff --git a/packages/app/src/components/session-context-usage.tsx b/packages/app/src/components/session-context-usage.tsx
index 64133af72..00f300828 100644
--- a/packages/app/src/components/session-context-usage.tsx
+++ b/packages/app/src/components/session-context-usage.tsx
@@ -4,6 +4,7 @@ import { ProgressCircle } from "@opencode-ai/ui/progress-circle"
import { Button } from "@opencode-ai/ui/button"
import { useParams } from "@solidjs/router"
import { AssistantMessage } from "@opencode-ai/sdk/v2/client"
+import { findLast } from "@opencode-ai/util/array"
import { useLayout } from "@/context/layout"
import { useSync } from "@/context/sync"
@@ -36,7 +37,7 @@ export function SessionContextUsage(props: SessionContextUsageProps) {
const context = createMemo(() => {
const locale = language.locale()
- const last = messages().findLast((x) => {
+ const last = findLast(messages(), (x) => {
if (x.role !== "assistant") return false
const total = x.tokens.input + x.tokens.output + x.tokens.reasoning + x.tokens.cache.read + x.tokens.cache.write
return total > 0
diff --git a/packages/app/src/components/session/session-context-tab.tsx b/packages/app/src/components/session/session-context-tab.tsx
index 57648c380..4c672af3e 100644
--- a/packages/app/src/components/session/session-context-tab.tsx
+++ b/packages/app/src/components/session/session-context-tab.tsx
@@ -5,6 +5,7 @@ import { DateTime } from "luxon"
import { useSync } from "@/context/sync"
import { useLayout } from "@/context/layout"
import { checksum } from "@opencode-ai/util/encode"
+import { findLast } from "@opencode-ai/util/array"
import { Icon } from "@opencode-ai/ui/icon"
import { Accordion } from "@opencode-ai/ui/accordion"
import { StickyAccordionHeader } from "@opencode-ai/ui/sticky-accordion-header"
@@ -26,7 +27,7 @@ export function SessionContextTab(props: SessionContextTabProps) {
const language = useLanguage()
const ctx = createMemo(() => {
- const last = props.messages().findLast((x) => {
+ const last = findLast(props.messages(), (x) => {
if (x.role !== "assistant") return false
const total = x.tokens.input + x.tokens.output + x.tokens.reasoning + x.tokens.cache.read + x.tokens.cache.write
return total > 0
@@ -81,7 +82,7 @@ export function SessionContextTab(props: SessionContextTabProps) {
})
const systemPrompt = createMemo(() => {
- const msg = props.visibleUserMessages().findLast((m) => !!m.system)
+ const msg = findLast(props.visibleUserMessages(), (m) => !!m.system)
const system = msg?.system
if (!system) return
const trimmed = system.trim()
diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx
index 71ab03331..5bf337bfa 100644
--- a/packages/app/src/pages/session.tsx
+++ b/packages/app/src/pages/session.tsx
@@ -40,6 +40,7 @@ import { useTerminal, type LocalPTY } from "@/context/terminal"
import { useLayout } from "@/context/layout"
import { Terminal } from "@/components/terminal"
import { checksum, base64Encode, base64Decode } from "@opencode-ai/util/encode"
+import { findLast } from "@opencode-ai/util/array"
import { getFilename } from "@opencode-ai/util/path"
import { useDialog } from "@opencode-ai/ui/context/dialog"
import { DialogSelectFile } from "@/components/dialog-select-file"
@@ -748,7 +749,7 @@ export default function Page() {
}
const revert = info()?.revert?.messageID
// Find the last user message that's not already reverted
- const message = userMessages().findLast((x) => !revert || x.id < revert)
+ const message = findLast(userMessages(), (x) => !revert || x.id < revert)
if (!message) return
await sdk.client.session.revert({ sessionID, messageID: message.id })
// Restore the prompt from the reverted message
@@ -758,7 +759,7 @@ export default function Page() {
prompt.set(restored)
}
// Navigate to the message before the reverted one (which will be the new last visible message)
- const priorMessage = userMessages().findLast((x) => x.id < message.id)
+ const priorMessage = findLast(userMessages(), (x) => x.id < message.id)
setActiveMessage(priorMessage)
},
},
@@ -780,14 +781,14 @@ export default function Page() {
await sdk.client.session.unrevert({ sessionID })
prompt.reset()
// Navigate to the last message (the one that was at the revert point)
- const lastMsg = userMessages().findLast((x) => x.id >= revertMessageID)
+ const lastMsg = findLast(userMessages(), (x) => x.id >= revertMessageID)
setActiveMessage(lastMsg)
return
}
// Partial redo - move forward to next message
await sdk.client.session.revert({ sessionID, messageID: nextMessage.id })
// Navigate to the message before the new revert point
- const priorMsg = userMessages().findLast((x) => x.id < nextMessage.id)
+ const priorMsg = findLast(userMessages(), (x) => x.id < nextMessage.id)
setActiveMessage(priorMsg)
},
},