From 84e8eea52e11e3d16d407c13b9a7d41d6ff6a56f Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Fri, 19 Sep 2025 09:55:46 -0500 Subject: [PATCH] wip: desktop cleanup --- packages/app/src/pages/index.tsx | 88 ++++++++++++-------------------- 1 file changed, 33 insertions(+), 55 deletions(-) diff --git a/packages/app/src/pages/index.tsx b/packages/app/src/pages/index.tsx index b040cf3f..50c72978 100644 --- a/packages/app/src/pages/index.tsx +++ b/packages/app/src/pages/index.tsx @@ -2,7 +2,7 @@ import { FileIcon, Icon, IconButton, Logo, Tooltip } from "@/ui" import { Tabs } from "@/ui/tabs" import { Select } from "@/components/select" import FileTree from "@/components/file-tree" -import { createSignal, For, Match, onCleanup, onMount, Show, Switch } from "solid-js" +import { For, Match, onCleanup, onMount, Show, Switch } from "solid-js" import { useLocal, useSDK } from "@/context" import { Code } from "@/components/code" import { @@ -18,15 +18,17 @@ import type { DragEvent, Transformer } from "@thisbeyond/solid-dnd" import type { LocalFile } from "@/context/local" import SessionList from "@/components/session-list" import SessionTimeline from "@/components/session-timeline" +import { createStore } from "solid-js/store" export default function Page() { const sdk = useSDK() const local = useLocal() - const [clickTimer, setClickTimer] = createSignal() - const [activeItem, setActiveItem] = createSignal(undefined) - const [inputValue, setInputValue] = createSignal("") - const [isDragging, setIsDragging] = createSignal<"left" | "right" | undefined>(undefined) - const [leftScrolled, setLeftScrolled] = createSignal(false) + const [store, setStore] = createStore({ + clickTimer: undefined as number | undefined, + activeItem: undefined as string | undefined, + prompt: "", + dragging: undefined as "left" | "right" | undefined, + }) let inputRef: HTMLInputElement | undefined = undefined @@ -78,20 +80,20 @@ export default function Page() { } const resetClickTimer = () => { - if (!clickTimer()) return - clearTimeout(clickTimer()) - setClickTimer(undefined) + if (!store.clickTimer) return + clearTimeout(store.clickTimer) + setStore("clickTimer", undefined) } const startClickTimer = () => { const newClickTimer = setTimeout(() => { - setClickTimer(undefined) + setStore("clickTimer", undefined) }, 300) - setClickTimer(newClickTimer as unknown as number) + setStore("clickTimer", newClickTimer as unknown as number) } const handleFileClick = async (file: LocalFile) => { - if (clickTimer()) { + if (store.clickTimer) { resetClickTimer() local.file.update(file.path, { ...file, pinned: true }) } else { @@ -109,7 +111,7 @@ export default function Page() { } const onDragStart = (event: any) => { - setActiveItem(event.draggable.id as string) + setStore("activeItem", event.draggable.id as string) } const onDragOver = (event: DragEvent) => { @@ -125,12 +127,12 @@ export default function Page() { } const onDragEnd = () => { - setActiveItem(undefined) + setStore("activeItem", undefined) } const handleLeftDragStart = (e: MouseEvent) => { e.preventDefault() - setIsDragging("left") + setStore("dragging", "left") const startX = e.clientX const startWidth = local.layout.leftWidth() @@ -141,7 +143,7 @@ export default function Page() { } const handleMouseUp = () => { - setIsDragging(undefined) + setStore("dragging", undefined) document.removeEventListener("mousemove", handleMouseMove) document.removeEventListener("mouseup", handleMouseUp) } @@ -152,7 +154,7 @@ export default function Page() { const handleRightDragStart = (e: MouseEvent) => { e.preventDefault() - setIsDragging("right") + setStore("dragging", "right") const startX = e.clientX const startWidth = local.layout.rightWidth() @@ -163,7 +165,7 @@ export default function Page() { } const handleMouseUp = () => { - setIsDragging(undefined) + setStore("dragging", undefined) document.removeEventListener("mousemove", handleMouseMove) document.removeEventListener("mouseup", handleMouseUp) } @@ -174,8 +176,8 @@ export default function Page() { const handleSubmit = async (e: SubmitEvent) => { e.preventDefault() - const prompt = inputValue() - setInputValue("") + const prompt = store.prompt + setStore("prompt", "") inputRef?.blur() const session = @@ -238,24 +240,8 @@ export default function Page() { - setLeftScrolled(e.currentTarget.scrollTop > 0)} - > + - -
- -
No changes yet
@@ -268,9 +254,9 @@ export default function Page() { onMouseDown={(e) => handleLeftDragStart(e)} >
@@ -302,16 +288,6 @@ export default function Page() {
)} -
-
handleRightDragStart(e)} >
@@ -443,9 +421,9 @@ export default function Page() { - {activeItem() && + {store.activeItem && (() => { - const draggedFile = local.file.node(activeItem()!) + const draggedFile = local.file.node(store.activeItem!) return (
setInputValue(e.currentTarget.value)} + value={store.prompt} + onInput={(e) => setStore("prompt", e.currentTarget.value)} placeholder="It all starts with a prompt..." class="w-full p-1 pb-4 text-text font-light placeholder-text-muted/70 text-sm focus:outline-none" />