|
|
@@ -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 (
|