summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-10 17:30:53 -0600
committerAdam <[email protected]>2025-12-10 17:31:13 -0600
commit56540f83125d8ec3fd6f26ac7edca7471c2aca3f (patch)
tree1514a2ffcabb259863c2396cdc227ae3af3b8549
parent89d51ad5962543978968164e6e08f73444af4cc0 (diff)
downloadopencode-56540f83125d8ec3fd6f26ac7edca7471c2aca3f.tar.gz
opencode-56540f83125d8ec3fd6f26ac7edca7471c2aca3f.zip
wip(desktop): progress
-rw-r--r--packages/desktop/src/components/prompt-input.tsx6
-rw-r--r--packages/desktop/src/context/layout.tsx12
2 files changed, 9 insertions, 9 deletions
diff --git a/packages/desktop/src/components/prompt-input.tsx b/packages/desktop/src/components/prompt-input.tsx
index 0672dfc85..22f2c1642 100644
--- a/packages/desktop/src/components/prompt-input.tsx
+++ b/packages/desktop/src/components/prompt-input.tsx
@@ -621,6 +621,12 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
</div>
)}
</List>
+ <Button variant="ghost" class="w-full justify-start">
+ <div class="flex items-center gap-2">
+ <Icon name="plus-small" />
+ <div class="text-text-strong">View all providers</div>
+ </div>
+ </Button>
</div>
</div>
</div>
diff --git a/packages/desktop/src/context/layout.tsx b/packages/desktop/src/context/layout.tsx
index 1de8550cb..5530ad28f 100644
--- a/packages/desktop/src/context/layout.tsx
+++ b/packages/desktop/src/context/layout.tsx
@@ -48,9 +48,10 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext(
open: undefined as undefined | "provider" | "model",
},
})
+ const usedColors = new Set<string>()
function pickAvailableColor() {
- const available = PASTEL_COLORS.filter((c) => !colors().has(c))
+ const available = PASTEL_COLORS.filter((c) => !usedColors.has(c))
if (available.length === 0) return PASTEL_COLORS[Math.floor(Math.random() * PASTEL_COLORS.length)]
return available[Math.floor(Math.random() * available.length)]
}
@@ -69,6 +70,7 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext(
function colorize(project: Project & { expanded: boolean }) {
if (project.icon?.color) return project
const color = pickAvailableColor()
+ usedColors.add(color)
project.icon = { ...project.icon, color }
globalSdk.client.project.update({ projectID: project.id, icon: { color } })
return project
@@ -76,14 +78,6 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext(
const enriched = createMemo(() => store.projects.flatMap(enrich))
const list = createMemo(() => enriched().flatMap(colorize))
- const colors = createMemo(
- () =>
- new Set(
- list()
- .map((p) => p.icon?.color)
- .filter(Boolean),
- ),
- )
async function loadProjectSessions(directory: string) {
const [, setStore] = globalSync.child(directory)