diff-changes.tsx 868 B

1234567891011121314151617181920
  1. import { FileDiff } from "@opencode-ai/sdk"
  2. import { createMemo, Show } from "solid-js"
  3. export function DiffChanges(props: { diff: FileDiff | FileDiff[] }) {
  4. const additions = createMemo(() =>
  5. Array.isArray(props.diff) ? props.diff.reduce((acc, diff) => acc + (diff.additions ?? 0), 0) : props.diff.additions,
  6. )
  7. const deletions = createMemo(() =>
  8. Array.isArray(props.diff) ? props.diff.reduce((acc, diff) => acc + (diff.deletions ?? 0), 0) : props.diff.deletions,
  9. )
  10. const total = createMemo(() => additions() + deletions())
  11. return (
  12. <Show when={total() > 0}>
  13. <div class="flex gap-2 justify-end items-center">
  14. <span class="text-12-mono text-right text-text-diff-add-base">{`+${additions()}`}</span>
  15. <span class="text-12-mono text-right text-text-diff-delete-base">{`-${deletions()}`}</span>
  16. </div>
  17. </Show>
  18. )
  19. }