From b8872d9d20c76ef351a0ec356558b1484a74f20f Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Thu, 1 Jan 2026 10:52:26 -0600 Subject: wip(desktop): progress --- packages/ui/src/components/session-review.tsx | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'packages/ui/src') diff --git a/packages/ui/src/components/session-review.tsx b/packages/ui/src/components/session-review.tsx index 9e6c633f4..e6d40341f 100644 --- a/packages/ui/src/components/session-review.tsx +++ b/packages/ui/src/components/session-review.tsx @@ -20,6 +20,10 @@ export interface SessionReviewProps { split?: boolean diffStyle?: SessionReviewDiffStyle onDiffStyleChange?: (diffStyle: SessionReviewDiffStyle) => void + open?: string[] + onOpenChange?: (open: string[]) => void + scrollRef?: (el: HTMLDivElement) => void + onScroll?: JSX.EventHandlerUnion class?: string classList?: Record classes?: { root?: string; header?: string; container?: string } @@ -33,26 +37,25 @@ export const SessionReview = (props: SessionReviewProps) => { open: props.diffs.length > 10 ? [] : props.diffs.map((d) => d.file), }) + const open = () => props.open ?? store.open const diffStyle = () => props.diffStyle ?? (props.split ? "split" : "unified") const handleChange = (open: string[]) => { + props.onOpenChange?.(open) + if (props.open !== undefined) return setStore("open", open) } const handleExpandOrCollapseAll = () => { - if (store.open.length > 0) { - setStore("open", []) - } else { - setStore( - "open", - props.diffs.map((d) => d.file), - ) - } + const next = open().length > 0 ? [] : props.diffs.map((d) => d.file) + handleChange(next) } return (
{ @@ -91,7 +94,7 @@ export const SessionReview = (props: SessionReviewProps) => { [props.classes?.container ?? ""]: !!props.classes?.container, }} > - + {(diff) => ( -- cgit v1.2.3