From 270cb0b8b4265ac0965ac8b94a58a3bca86fa558 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Fri, 13 Mar 2026 06:27:58 -0500 Subject: chore: cleanup (#17284) --- packages/app/src/components/status-popover.tsx | 18 ++++--- packages/app/src/pages/layout.tsx | 67 +++++++++++--------------- 2 files changed, 38 insertions(+), 47 deletions(-) (limited to 'packages/app/src') diff --git a/packages/app/src/components/status-popover.tsx b/packages/app/src/components/status-popover.tsx index 7048808c8..61facb84e 100644 --- a/packages/app/src/components/status-popover.tsx +++ b/packages/app/src/components/status-popover.tsx @@ -86,15 +86,17 @@ const useServerHealth = (servers: Accessor) => { const useDefaultServerKey = ( get: (() => string | Promise | null | undefined) | undefined, ) => { - const [url, setUrl] = createSignal() - const [tick, setTick] = createSignal(0) + const [state, setState] = createStore({ + url: undefined as string | undefined, + tick: 0, + }) createEffect(() => { - tick() + state.tick let dead = false const result = get?.() if (!result) { - setUrl(undefined) + setState("url", undefined) onCleanup(() => { dead = true }) @@ -104,7 +106,7 @@ const useDefaultServerKey = ( if (result instanceof Promise) { void result.then((next) => { if (dead) return - setUrl(next ? normalizeServerUrl(next) : undefined) + setState("url", next ? normalizeServerUrl(next) : undefined) }) onCleanup(() => { dead = true @@ -112,7 +114,7 @@ const useDefaultServerKey = ( return } - setUrl(normalizeServerUrl(result)) + setState("url", normalizeServerUrl(result)) onCleanup(() => { dead = true }) @@ -120,11 +122,11 @@ const useDefaultServerKey = ( return { key: () => { - const u = url() + const u = state.url if (!u) return return ServerConnection.key({ type: "http", http: { url: u } }) }, - refresh: () => setTick((value) => value + 1), + refresh: () => setState("tick", (value) => value + 1), } } diff --git a/packages/app/src/pages/layout.tsx b/packages/app/src/pages/layout.tsx index 9b964b4b5..c1088622a 100644 --- a/packages/app/src/pages/layout.tsx +++ b/packages/app/src/pages/layout.tsx @@ -1,16 +1,4 @@ -import { - batch, - createEffect, - createMemo, - createSignal, - For, - on, - onCleanup, - onMount, - ParentProps, - Show, - untrack, -} from "solid-js" +import { batch, createEffect, createMemo, For, on, onCleanup, onMount, ParentProps, Show, untrack } from "solid-js" import { useNavigate, useParams } from "@solidjs/router" import { useLayout, LocalProject } from "@/context/layout" import { useGlobalSync } from "@/context/global-sync" @@ -145,6 +133,10 @@ export default function Layout(props: ParentProps) { hoverProject: undefined as string | undefined, scrollSessionKey: undefined as string | undefined, nav: undefined as HTMLElement | undefined, + sortNow: Date.now(), + sizing: false, + peek: undefined as LocalProject | undefined, + peeked: false, }) const editor = createInlineEditorController() @@ -163,14 +155,13 @@ export default function Layout(props: ParentProps) { } const isBusy = (directory: string) => !!state.busyWorkspaces[workspaceKey(directory)] const navLeave = { current: undefined as number | undefined } - const [sortNow, setSortNow] = createSignal(Date.now()) - const [sizing, setSizing] = createSignal(false) + const sortNow = () => state.sortNow let sizet: number | undefined let sortNowInterval: ReturnType | undefined const sortNowTimeout = setTimeout( () => { - setSortNow(Date.now()) - sortNowInterval = setInterval(() => setSortNow(Date.now()), 60_000) + setState("sortNow", Date.now()) + sortNowInterval = setInterval(() => setState("sortNow", Date.now()), 60_000) }, 60_000 - (Date.now() % 60_000), ) @@ -196,7 +187,7 @@ export default function Layout(props: ParentProps) { }) onMount(() => { - const stop = () => setSizing(false) + const stop = () => setState("sizing", false) window.addEventListener("pointerup", stop) window.addEventListener("pointercancel", stop) window.addEventListener("blur", stop) @@ -234,8 +225,6 @@ export default function Layout(props: ParentProps) { }, 300) } - const [peek, setPeek] = createSignal(undefined) - const [peeked, setPeeked] = createSignal(false) let peekt: number | undefined const hoverProjectData = createMemo(() => { @@ -251,17 +240,17 @@ export default function Layout(props: ParentProps) { clearTimeout(peekt) peekt = undefined } - setPeek(p) - setPeeked(true) + setState("peek", p) + setState("peeked", true) return } - setPeeked(false) - if (peek() === undefined) return + setState("peeked", false) + if (state.peek === undefined) return if (peekt !== undefined) clearTimeout(peekt) peekt = window.setTimeout(() => { peekt = undefined - setPeek(undefined) + setState("peek", undefined) }, 180) }) @@ -2245,7 +2234,7 @@ export default function Layout(props: ParentProps) { >
{sidebarContent()}
-
setSizing(true)}> +
setState("sizing", true)}> { - setSizing(true) + setState("sizing", true) if (sizet !== undefined) clearTimeout(sizet) - sizet = window.setTimeout(() => setSizing(false), 120) + sizet = window.setTimeout(() => setState("sizing", false), 120) layout.sidebar.resize(w) }} onCollapse={layout.sidebar.close} @@ -2300,7 +2289,7 @@ export default function Layout(props: ParentProps) { "xl:inset-y-0 xl:right-0 xl:left-[var(--main-left)]": true, "z-20": true, "transition-[left] duration-200 ease-[cubic-bezier(0.22,1,0.36,1)] will-change-[left] motion-reduce:transition-none": - !sizing(), + !state.sizing, }} style={{ "--main-left": layout.sidebar.opened() ? `${Math.max(layout.sidebar.width(), 244)}px` : "4rem", @@ -2320,11 +2309,11 @@ export default function Layout(props: ParentProps) {
{ @@ -2336,19 +2325,19 @@ export default function Layout(props: ParentProps) { arm() }} > - - + +
-- cgit v1.2.3