summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/components/session
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-01-01 20:04:46 -0600
committerAdam <[email protected]>2026-01-01 21:03:06 -0600
commitafc1825cf5610a9455d8ab22a946c91f00a6db97 (patch)
tree500e1a810f3cefa5cc897a46e38b8ce11a235615 /packages/app/src/components/session
parent6b4c433e14c2a423ae1e25151dd47ba4f0573001 (diff)
downloadopencode-afc1825cf5610a9455d8ab22a946c91f00a6db97.tar.gz
opencode-afc1825cf5610a9455d8ab22a946c91f00a6db97.zip
wip(app): progress
Diffstat (limited to 'packages/app/src/components/session')
-rw-r--r--packages/app/src/components/session/index.ts1
-rw-r--r--packages/app/src/components/session/session-review-tab.tsx86
2 files changed, 0 insertions, 87 deletions
diff --git a/packages/app/src/components/session/index.ts b/packages/app/src/components/session/index.ts
index 5e5c349d2..20124b6fd 100644
--- a/packages/app/src/components/session/index.ts
+++ b/packages/app/src/components/session/index.ts
@@ -1,6 +1,5 @@
export { SessionHeader } from "./session-header"
export { SessionContextTab } from "./session-context-tab"
-export { SessionReviewTab } from "./session-review-tab"
export { SortableTab, FileVisual } from "./session-sortable-tab"
export { SortableTerminalTab } from "./session-sortable-terminal-tab"
export { NewSessionView } from "./session-new-view"
diff --git a/packages/app/src/components/session/session-review-tab.tsx b/packages/app/src/components/session/session-review-tab.tsx
deleted file mode 100644
index c9656eb72..000000000
--- a/packages/app/src/components/session/session-review-tab.tsx
+++ /dev/null
@@ -1,86 +0,0 @@
-import { createEffect, on, onCleanup } from "solid-js"
-import { useLayout } from "@/context/layout"
-import { SessionReview } from "@opencode-ai/ui/session-review"
-import type { FileDiff } from "@opencode-ai/sdk/v2/client"
-
-interface SessionReviewTabProps {
- diffs: () => FileDiff[]
- view: () => ReturnType<ReturnType<typeof useLayout>["view"]>
- classes?: {
- root?: string
- header?: string
- container?: string
- }
-}
-
-export function SessionReviewTab(props: SessionReviewTabProps) {
- const layout = useLayout()
-
- let scroll: HTMLDivElement | undefined
- let frame: number | undefined
- let pending: { x: number; y: number } | undefined
-
- const restoreScroll = () => {
- const el = scroll
- if (!el) return
-
- const s = props.view().scroll("review")
- if (!s) return
-
- if (el.scrollTop !== s.y) el.scrollTop = s.y
- if (el.scrollLeft !== s.x) el.scrollLeft = s.x
- }
-
- const handleScroll = (event: Event & { currentTarget: HTMLDivElement }) => {
- pending = {
- x: event.currentTarget.scrollLeft,
- y: event.currentTarget.scrollTop,
- }
- if (frame !== undefined) return
-
- frame = requestAnimationFrame(() => {
- frame = undefined
-
- const next = pending
- pending = undefined
- if (!next) return
-
- props.view().setScroll("review", next)
- })
- }
-
- createEffect(
- on(
- () => props.diffs().length,
- () => {
- requestAnimationFrame(restoreScroll)
- },
- { defer: true },
- ),
- )
-
- onCleanup(() => {
- if (frame === undefined) return
- cancelAnimationFrame(frame)
- })
-
- return (
- <SessionReview
- scrollRef={(el) => {
- scroll = el
- restoreScroll()
- }}
- onScroll={handleScroll}
- open={props.view().review.open()}
- onOpenChange={props.view().review.setOpen}
- classes={{
- root: props.classes?.root ?? "pb-40",
- header: props.classes?.header ?? "px-6",
- container: props.classes?.container ?? "px-6",
- }}
- diffs={props.diffs()}
- diffStyle={layout.review.diffStyle()}
- onDiffStyleChange={layout.review.setDiffStyle}
- />
- )
-}