diff options
| author | Adam <[email protected]> | 2026-01-01 20:04:46 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-01-01 21:03:06 -0600 |
| commit | afc1825cf5610a9455d8ab22a946c91f00a6db97 (patch) | |
| tree | 500e1a810f3cefa5cc897a46e38b8ce11a235615 /packages/app/src/components | |
| parent | 6b4c433e14c2a423ae1e25151dd47ba4f0573001 (diff) | |
| download | opencode-afc1825cf5610a9455d8ab22a946c91f00a6db97.tar.gz opencode-afc1825cf5610a9455d8ab22a946c91f00a6db97.zip | |
wip(app): progress
Diffstat (limited to 'packages/app/src/components')
| -rw-r--r-- | packages/app/src/components/session/index.ts | 1 | ||||
| -rw-r--r-- | packages/app/src/components/session/session-review-tab.tsx | 86 |
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} - /> - ) -} |
