diff options
| author | Adam <[email protected]> | 2025-12-17 03:47:44 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-12-17 03:47:49 -0600 |
| commit | 494e6fff019bb502fff88a07d6c519c063af9a02 (patch) | |
| tree | cda9a1f68c013c7a542cbc4f82c7b7b63f9fa0a1 /packages/desktop/src/pages | |
| parent | 0c7a297b1d3d9cdf8a060c4ed75160152da2b981 (diff) | |
| download | opencode-494e6fff019bb502fff88a07d6c519c063af9a02.tar.gz opencode-494e6fff019bb502fff88a07d6c519c063af9a02.zip | |
feat(desktop): share sessions
Diffstat (limited to 'packages/desktop/src/pages')
| -rw-r--r-- | packages/desktop/src/pages/layout.tsx | 26 | ||||
| -rw-r--r-- | packages/desktop/src/pages/session.tsx | 47 |
2 files changed, 4 insertions, 69 deletions
diff --git a/packages/desktop/src/pages/layout.tsx b/packages/desktop/src/pages/layout.tsx index bed8950c7..618b84840 100644 --- a/packages/desktop/src/pages/layout.tsx +++ b/packages/desktop/src/pages/layout.tsx @@ -25,9 +25,8 @@ import { SortableProvider, closestCenter, createSortable, - useDragDropContext, } from "@thisbeyond/solid-dnd" -import type { DragEvent, Transformer } from "@thisbeyond/solid-dnd" +import type { DragEvent } from "@thisbeyond/solid-dnd" import { useProviders } from "@/hooks/use-providers" import { Toast } from "@opencode-ai/ui/toast" import { useGlobalSDK } from "@/context/global-sdk" @@ -37,6 +36,7 @@ import { Header } from "@/components/header" import { useDialog } from "@opencode-ai/ui/context/dialog" import { DialogSelectProvider } from "@/components/dialog-select-provider" import { useCommand } from "@/context/command" +import { ConstrainDragXAxis } from "@/utils/solid-dnd" export default function Layout(props: ParentProps) { const [store, setStore] = createStore({ @@ -301,28 +301,6 @@ export default function Layout(props: ParentProps) { setStore("activeDraggable", undefined) } - const ConstrainDragXAxis = (): JSX.Element => { - const context = useDragDropContext() - if (!context) return <></> - const [, { onDragStart, onDragEnd, addTransformer, removeTransformer }] = context - const transformer: Transformer = { - id: "constrain-x-axis", - order: 100, - callback: (transform) => ({ ...transform, x: 0 }), - } - onDragStart((event) => { - const id = getDraggableId(event) - if (!id) return - addTransformer("draggables", id, transformer) - }) - onDragEnd((event) => { - const id = getDraggableId(event) - if (!id) return - removeTransformer("draggables", id, transformer.id) - }) - return <></> - } - const ProjectAvatar = (props: { project: Project class?: string diff --git a/packages/desktop/src/pages/session.tsx b/packages/desktop/src/pages/session.tsx index d024d5047..3415d0c4e 100644 --- a/packages/desktop/src/pages/session.tsx +++ b/packages/desktop/src/pages/session.tsx @@ -23,9 +23,8 @@ import { SortableProvider, closestCenter, createSortable, - useDragDropContext, } from "@thisbeyond/solid-dnd" -import type { DragEvent, Transformer } from "@thisbeyond/solid-dnd" +import type { DragEvent } from "@thisbeyond/solid-dnd" import type { JSX } from "solid-js" import { useSync } from "@/context/sync" import { useTerminal, type LocalPTY } from "@/context/terminal" @@ -42,6 +41,7 @@ import { AssistantMessage, UserMessage } from "@opencode-ai/sdk/v2" import { useSDK } from "@/context/sdk" import { usePrompt } from "@/context/prompt" import { extractPromptFromParts } from "@/utils/prompt" +import { ConstrainDragYAxis, getDraggableId } from "@/utils/solid-dnd" export default function Page() { const layout = useLayout() @@ -324,19 +324,6 @@ export default function Page() { if ((document.activeElement as HTMLElement)?.dataset?.component === "terminal") return if (dialog.active) return - if (event.key === "PageUp" || event.key === "PageDown") { - const scrollContainer = document.querySelector('[data-slot="session-turn-content"]') as HTMLElement - if (scrollContainer) { - event.preventDefault() - const scrollAmount = scrollContainer.clientHeight * 0.8 - scrollContainer.scrollBy({ - top: event.key === "PageUp" ? -scrollAmount : scrollAmount, - behavior: "instant", - }) - } - return - } - const focused = document.activeElement === inputRef if (focused) { if (event.key === "Escape") inputRef?.blur() @@ -519,36 +506,6 @@ export default function Page() { ) } - const ConstrainDragYAxis = (): JSX.Element => { - const context = useDragDropContext() - if (!context) return <></> - const [, { onDragStart, onDragEnd, addTransformer, removeTransformer }] = context - const transformer: Transformer = { - id: "constrain-y-axis", - order: 100, - callback: (transform) => ({ ...transform, y: 0 }), - } - onDragStart((event) => { - const id = getDraggableId(event) - if (!id) return - addTransformer("draggables", id, transformer) - }) - onDragEnd((event) => { - const id = getDraggableId(event) - if (!id) return - removeTransformer("draggables", id, transformer.id) - }) - return <></> - } - - const getDraggableId = (event: unknown): string | undefined => { - if (typeof event !== "object" || event === null) return undefined - if (!("draggable" in event)) return undefined - const draggable = (event as { draggable?: { id?: unknown } }).draggable - if (!draggable) return undefined - return typeof draggable.id === "string" ? draggable.id : undefined - } - const wide = createMemo(() => layout.review.state() === "tab" || !diffs().length) return ( |
