diff options
| -rw-r--r-- | packages/desktop/src/pages/layout.tsx | 8 | ||||
| -rw-r--r-- | packages/desktop/src/pages/session.tsx | 6 | ||||
| -rw-r--r-- | packages/ui/src/components/diff-changes.tsx | 18 | ||||
| -rw-r--r-- | packages/ui/src/components/message-part.tsx | 2 |
4 files changed, 17 insertions, 17 deletions
diff --git a/packages/desktop/src/pages/layout.tsx b/packages/desktop/src/pages/layout.tsx index afec9ee3c..22f0a50de 100644 --- a/packages/desktop/src/pages/layout.tsx +++ b/packages/desktop/src/pages/layout.tsx @@ -1,5 +1,5 @@ import { Button, Tooltip, DiffChanges } from "@opencode-ai/ui" -import { createMemo, ParentProps } from "solid-js" +import { createMemo, ParentProps, Show } from "solid-js" import { getFilename } from "@/utils" import { DateTime } from "luxon" import { useSync } from "@/context/sync" @@ -25,8 +25,6 @@ export default function Layout(props: ParentProps) { </A> <VList data={sync.data.session} class="no-scrollbar"> {(session) => { - const diffs = createMemo(() => session.summary?.diffs ?? []) - const filesChanged = createMemo(() => diffs().length) const updated = createMemo(() => DateTime.fromMillis(session.time.updated)) return ( <A @@ -57,8 +55,8 @@ export default function Layout(props: ParentProps) { </span> </div> <div class="flex justify-between items-center self-stretch"> - <span class="text-12-regular text-text-weak">{`${filesChanged() || "No"} file${filesChanged() !== 1 ? "s" : ""} changed`}</span> - <DiffChanges diff={diffs()} /> + <span class="text-12-regular text-text-weak">{`${session.summary?.files || "No"} file${session.summary?.files !== 1 ? "s" : ""} changed`}</span> + <Show when={session.summary}>{(summary) => <DiffChanges changes={summary()} />}</Show> </div> </div> </Tooltip> diff --git a/packages/desktop/src/pages/session.tsx b/packages/desktop/src/pages/session.tsx index 9c633f4f7..36eed718a 100644 --- a/packages/desktop/src/pages/session.tsx +++ b/packages/desktop/src/pages/session.tsx @@ -362,7 +362,7 @@ export default function Page() { <Spinner class="text-text-base shrink-0 w-[18px] aspect-square" /> </Match> <Match when={true}> - <DiffChanges diff={message.summary?.diffs ?? []} variant="bars" /> + <DiffChanges changes={message.summary?.diffs ?? []} variant="bars" /> </Match> </Switch> <div @@ -490,13 +490,13 @@ export default function Page() { </div> </div> <div class="shrink-0 flex gap-4 items-center justify-end"> - <DiffChanges diff={diff} /> + <DiffChanges changes={diff} /> <Icon name="chevron-grabber-vertical" size="small" /> </div> </div> </Accordion.Trigger> </Accordion.Header> - <Accordion.Content> + <Accordion.Content class="max-h-[300px] overflow-y-auto no-scrollbar"> <Diff before={{ name: diff.file!, diff --git a/packages/ui/src/components/diff-changes.tsx b/packages/ui/src/components/diff-changes.tsx index e6c04f519..5b2b7362e 100644 --- a/packages/ui/src/components/diff-changes.tsx +++ b/packages/ui/src/components/diff-changes.tsx @@ -1,18 +1,20 @@ -import type { FileDiff } from "@opencode-ai/sdk" import { createMemo, For, Match, Show, Switch } from "solid-js" -export function DiffChanges(props: { diff: FileDiff | FileDiff[]; variant?: "default" | "bars" }) { +export function DiffChanges(props: { + changes: { additions: number; deletions: number } | { additions: number; deletions: number }[] + variant?: "default" | "bars" +}) { const variant = () => props.variant ?? "default" const additions = createMemo(() => - Array.isArray(props.diff) - ? props.diff.reduce((acc, diff) => acc + (diff.additions ?? 0), 0) - : props.diff.additions, + Array.isArray(props.changes) + ? props.changes.reduce((acc, diff) => acc + (diff.additions ?? 0), 0) + : props.changes.additions, ) const deletions = createMemo(() => - Array.isArray(props.diff) - ? props.diff.reduce((acc, diff) => acc + (diff.deletions ?? 0), 0) - : props.diff.deletions, + Array.isArray(props.changes) + ? props.changes.reduce((acc, diff) => acc + (diff.deletions ?? 0), 0) + : props.changes.deletions, ) const total = createMemo(() => (additions() ?? 0) + (deletions() ?? 0)) diff --git a/packages/ui/src/components/message-part.tsx b/packages/ui/src/components/message-part.tsx index 01a58025a..38870b5a3 100644 --- a/packages/ui/src/components/message-part.tsx +++ b/packages/ui/src/components/message-part.tsx @@ -364,7 +364,7 @@ ToolRegistry.register({ </div> <div data-slot="actions"> <Show when={props.metadata.filediff}> - <DiffChanges diff={props.metadata.filediff} /> + <DiffChanges changes={props.metadata.filediff} /> </Show> </div> </div> |
