summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/components
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-01-06 08:18:17 -0600
committerAdam <[email protected]>2026-01-06 08:19:17 -0600
commitb88bcd49fdea0955f2efc8f09a3614c188d22107 (patch)
tree8ab04d7a9d2b892cd884eab5ab3bb5da9187191a /packages/app/src/components
parent3f463bc9168abd907be9ae582e161ff89c3a27c9 (diff)
downloadopencode-b88bcd49fdea0955f2efc8f09a3614c188d22107.tar.gz
opencode-b88bcd49fdea0955f2efc8f09a3614c188d22107.zip
fix(app): code splitting for web load perf gains
Diffstat (limited to 'packages/app/src/components')
-rw-r--r--packages/app/src/components/session/session-header.tsx7
-rw-r--r--packages/app/src/components/terminal.tsx9
2 files changed, 11 insertions, 5 deletions
diff --git a/packages/app/src/components/session/session-header.tsx b/packages/app/src/components/session/session-header.tsx
index e70e0790c..4958ad2c3 100644
--- a/packages/app/src/components/session/session-header.tsx
+++ b/packages/app/src/components/session/session-header.tsx
@@ -244,8 +244,13 @@ export function SessionHeader() {
}
return shareURL
},
+ { initialValue: "" },
+ )
+ return (
+ <Show when={url.latest}>
+ {(shareUrl) => <TextField value={shareUrl()} readOnly copyable class="w-72" />}
+ </Show>
)
- return <Show when={url()}>{(url) => <TextField value={url()} readOnly copyable class="w-72" />}</Show>
})}
</Popover>
</Show>
diff --git a/packages/app/src/components/terminal.tsx b/packages/app/src/components/terminal.tsx
index a298e3f76..18c77653e 100644
--- a/packages/app/src/components/terminal.tsx
+++ b/packages/app/src/components/terminal.tsx
@@ -1,4 +1,4 @@
-import { Ghostty, Terminal as Term, FitAddon } from "ghostty-web"
+import type { Ghostty, Terminal as Term, FitAddon } from "ghostty-web"
import { ComponentProps, createEffect, createSignal, onCleanup, onMount, splitProps } from "solid-js"
import { useSDK } from "@/context/sdk"
import { SerializeAddon } from "@/addons/serialize"
@@ -106,14 +106,15 @@ export const Terminal = (props: TerminalProps) => {
}
onMount(async () => {
- ghostty = await Ghostty.load()
+ const mod = await import("ghostty-web")
+ ghostty = await mod.Ghostty.load()
const socket = new WebSocket(
sdk.url + `/pty/${local.pty.id}/connect?directory=${encodeURIComponent(sdk.directory)}`,
)
ws = socket
- const t = new Term({
+ const t = new mod.Terminal({
cursorBlink: true,
fontSize: 14,
fontFamily: "IBM Plex Mono, monospace",
@@ -142,7 +143,7 @@ export const Terminal = (props: TerminalProps) => {
return false
})
- fitAddon = new FitAddon()
+ fitAddon = new mod.FitAddon()
serializeAddon = new SerializeAddon()
t.loadAddon(serializeAddon)
t.loadAddon(fitAddon)