diff options
| author | Adam <[email protected]> | 2025-11-06 09:48:46 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-11-06 09:48:51 -0600 |
| commit | 6ba7c54baba355e3788e371374d26e58b60feb0d (patch) | |
| tree | a69448dcdcd8e1935b2bc3c7d2344ad78f8ced75 /packages/desktop/src/context | |
| parent | 146bae82cb584c253a42ed4565d423d9cded93a6 (diff) | |
| download | opencode-6ba7c54baba355e3788e371374d26e58b60feb0d.tar.gz opencode-6ba7c54baba355e3788e371374d26e58b60feb0d.zip | |
feat(desktop): collapsible sidebar
Diffstat (limited to 'packages/desktop/src/context')
| -rw-r--r-- | packages/desktop/src/context/local.tsx | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/packages/desktop/src/context/local.tsx b/packages/desktop/src/context/local.tsx index cef6c5555..9dacc7100 100644 --- a/packages/desktop/src/context/local.tsx +++ b/packages/desktop/src/context/local.tsx @@ -5,6 +5,7 @@ import type { FileContent, FileNode, Model, Provider, File as FileStatus } from import { createSimpleContext } from "./helper" import { useSDK } from "./sdk" import { useSync } from "./sync" +import { makePersisted } from "@solid-primitives/storage" export type LocalFile = FileNode & Partial<{ @@ -456,11 +457,45 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({ } })() + const layout = (() => { + const [store, setStore] = makePersisted( + createStore({ + sidebar: { + opened: true, + width: 240, + }, + }), + { + name: "layout", + }, + ) + + return { + sidebar: { + opened: createMemo(() => store.sidebar.opened), + open() { + setStore("sidebar", "opened", true) + }, + close() { + setStore("sidebar", "opened", false) + }, + toggle() { + setStore("sidebar", "opened", (x) => !x) + }, + width: createMemo(() => store.sidebar.width), + resize(width: number) { + setStore("sidebar", "width", width) + }, + }, + } + })() + const result = { model, agent, file, context, + layout, } return result }, |
