From fe8f6d7a3eef34e932bd43d244460d417865de88 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Fri, 24 Oct 2025 08:26:17 -0500 Subject: wip: desktop work --- packages/desktop/src/pages/index.tsx | 155 ++++++++++++++++++++--------------- 1 file changed, 91 insertions(+), 64 deletions(-) (limited to 'packages/desktop/src/pages') diff --git a/packages/desktop/src/pages/index.tsx b/packages/desktop/src/pages/index.tsx index 1542853ea..f6ea4cb90 100644 --- a/packages/desktop/src/pages/index.tsx +++ b/packages/desktop/src/pages/index.tsx @@ -1,7 +1,7 @@ import { Button, List, SelectDialog, Tooltip, IconButton, Tabs, Icon } from "@opencode-ai/ui" import { FileIcon } from "@/ui" import FileTree from "@/components/file-tree" -import { For, onCleanup, onMount, Show, Match, Switch, createSignal, createEffect } from "solid-js" +import { For, onCleanup, onMount, Show, Match, Switch, createSignal, createEffect, createMemo } from "solid-js" import { useLocal, type LocalFile, type TextSelection } from "@/context/local" import { createStore } from "solid-js/store" import { getDirectory, getFilename } from "@/utils" @@ -21,6 +21,7 @@ import type { JSX } from "solid-js" import { Code } from "@/components/code" import { useSync } from "@/context/sync" import { useSDK } from "@/context/sdk" +import { Diff } from "@/components/diff" export default function Page() { const local = useLocal() @@ -374,27 +375,36 @@ export default function Page() { onSelect={(s) => local.session.setActive(s?.id)} onHover={(s) => (!!s ? sync.session.sync(s?.id) : undefined)} > - {(session) => ( - -
-
- - {session.title} - - - {DateTime.fromMillis(session.time.updated).toRelative()} - -
-
- 2 files changed -
- +43 - -2 + {(session) => { + const diffs = createMemo(() => session.summary?.diffs ?? []) + const filesChanged = createMemo(() => diffs().length) + const additions = createMemo(() => diffs().reduce((acc, diff) => (acc ?? 0) + (diff.additions ?? 0), 0)) + const deletions = createMemo(() => diffs().reduce((acc, diff) => (acc ?? 0) + (diff.deletions ?? 0), 0)) + + return ( + +
+
+ + {session.title} + + + {DateTime.fromMillis(session.time.updated).toRelative()} + +
+
+ {`${filesChanged() || "No"} file${filesChanged() !== 1 ? "s" : ""} changed`} + +
+ {`+${additions()}`} + {`-${deletions()}`} +
+
-
- - )} + + ) + }}
@@ -521,60 +531,77 @@ export default function Page() { {(activeSession) => (
-
    - - {(message) => ( -
  • local.session.setActiveMessage(message.id)} - > -
    - - - - - - - - - -
    -
    1}> +
      + + {(message) => ( +
    • local.session.setActiveMessage(message.id)} > - {local.session.getMessageText(message)} -
    -
  • - )} -
    -
+
+ + + + + + + + + +
+
+ {local.session.getMessageText(message)} +
+ + )} + + +
- {(message) => ( -
-
-
- {local.session.getMessageText(message)} + {(message) => { + console.log(message) + return ( +
+
+
+ {local.session.getMessageText(message)} +
+
{message.summary?.text}
-
- {message.summary?.text || - local.session.getMessageText(local.session.activeAssistantMessagesWithText())} +
+ + {(diff) => ( + + )} +
-
-
- )} + ) + }}
-- cgit v1.2.3