From f589fc2327dd807a82ce6f756231fdb8eb43dd59 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Wed, 24 Sep 2025 12:40:54 -0500 Subject: feat: fuzzy file open --- packages/app/src/pages/index.tsx | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) (limited to 'packages/app/src/pages') diff --git a/packages/app/src/pages/index.tsx b/packages/app/src/pages/index.tsx index 9133f40d8..acb756621 100644 --- a/packages/app/src/pages/index.tsx +++ b/packages/app/src/pages/index.tsx @@ -20,6 +20,7 @@ import type { LocalFile } from "@/context/local" import SessionList from "@/components/session-list" import SessionTimeline from "@/components/session-timeline" import { createStore } from "solid-js/store" +import { getDirectory, getFilename } from "@/utils" export default function Page() { const sdk = useSDK() @@ -30,6 +31,7 @@ export default function Page() { prompt: "", dragging: undefined as "left" | "right" | undefined, modelSelectOpen: false, + fileSelectOpen: false, }) let inputRef: HTMLInputElement | undefined = undefined @@ -47,12 +49,12 @@ export default function Page() { const handleKeyDown = (e: KeyboardEvent) => { if (e.getModifierState(MOD) && e.shiftKey && e.key.toLowerCase() === "p") { e.preventDefault() - setStore("modelSelectOpen", true) + // TODO: command palette return } if (e.getModifierState(MOD) && e.key.toLowerCase() === "p") { e.preventDefault() - setStore("modelSelectOpen", true) + setStore("fileSelectOpen", true) return } @@ -554,14 +556,32 @@ export default function Page() { )} - filter={{ - keys: ["provider.name", "name", "id"], - }} + filter={["provider.name", "name", "id"]} groupBy={(x) => x.provider.name} onClose={() => setStore("modelSelectOpen", false)} onSelect={(x) => local.model.set(x ? { modelID: x.id, providerID: x.provider.id } : undefined)} /> + + x} + render={(i) => ( +
+
+ + {getFilename(i)} + + {getDirectory(i)} + +
+
+
+ )} + onClose={() => setStore("fileSelectOpen", false)} + onSelect={(x) => (x ? local.file.open(x, { pin: true }) : undefined)} + /> +
) } -- cgit v1.2.3