From 1455976689e6975d66914e350dc2c1d32070ade7 Mon Sep 17 00:00:00 2001 From: Aaron Iker Date: Thu, 8 Jan 2026 03:03:26 +0100 Subject: [PATCH] fix: avatar not loaded fallback --- .../src/components/dialog-edit-project.tsx | 32 +++++----- packages/app/src/components/project-icon.tsx | 58 +++++++++++++++++++ packages/ui/src/components/avatar.css | 2 +- 3 files changed, 73 insertions(+), 19 deletions(-) create mode 100644 packages/app/src/components/project-icon.tsx diff --git a/packages/app/src/components/dialog-edit-project.tsx b/packages/app/src/components/dialog-edit-project.tsx index 27ce3903cd..8d389cef7c 100644 --- a/packages/app/src/components/dialog-edit-project.tsx +++ b/packages/app/src/components/dialog-edit-project.tsx @@ -3,11 +3,12 @@ import { useDialog } from "@opencode-ai/ui/context/dialog" import { Dialog } from "@opencode-ai/ui/dialog" import { TextField } from "@opencode-ai/ui/text-field" import { Icon } from "@opencode-ai/ui/icon" +import { Avatar } from "@opencode-ai/ui/avatar" import { createMemo, createSignal, For, Show } from "solid-js" import { createStore } from "solid-js/store" import { useGlobalSDK } from "@/context/global-sdk" import { type LocalProject, getAvatarColors } from "@/context/layout" -import { Avatar } from "@opencode-ai/ui/avatar" +import { ProjectIcon, isValidImageFile } from "@/components/project-icon" const AVATAR_COLOR_KEYS = ["pink", "mint", "orange", "purple", "cyan", "lime"] as const @@ -33,9 +34,11 @@ export function DialogEditProject(props: { project: LocalProject }) { const [dragOver, setDragOver] = createSignal(false) function handleFileSelect(file: File) { - if (!file.type.startsWith("image/")) return + if (!isValidImageFile(file)) return const reader = new FileReader() - reader.onload = (e) => setStore("iconUrl", e.target?.result as string) + reader.onload = (e) => { + setStore("iconUrl", e.target?.result as string) + } reader.readAsDataURL(file) } @@ -98,7 +101,7 @@ export function DialogEditProject(props: { project: LocalProject }) {
document.getElementById("icon-upload")?.click()} > - - -
- } - > - Project icon - +