diff options
| author | Brendan Allan <[email protected]> | 2026-04-22 17:09:00 +0800 |
|---|---|---|
| committer | Aiden Cline <[email protected]> | 2026-04-23 00:25:37 -0400 |
| commit | d884ab73d5516d301a740b2bdea174f6b485d6dc (patch) | |
| tree | 948ff240c9ffb99919d8c3be1c7c48d8091f4da1 /packages/app/src/components | |
| parent | 71d196d3cd06d0efef7a319f43955c7cefc36e09 (diff) | |
| download | opencode-d884ab73d5516d301a740b2bdea174f6b485d6dc.tar.gz opencode-d884ab73d5516d301a740b2bdea174f6b485d6dc.zip | |
fix: consolidate project avatar source logic (#23819)
Diffstat (limited to 'packages/app/src/components')
| -rw-r--r-- | packages/app/src/components/dialog-edit-project.tsx | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/packages/app/src/components/dialog-edit-project.tsx b/packages/app/src/components/dialog-edit-project.tsx index 621d56646..8eb12daf5 100644 --- a/packages/app/src/components/dialog-edit-project.tsx +++ b/packages/app/src/components/dialog-edit-project.tsx @@ -12,6 +12,7 @@ import { type LocalProject, getAvatarColors } from "@/context/layout" import { getFilename } from "@opencode-ai/shared/util/path" import { Avatar } from "@opencode-ai/ui/avatar" import { useLanguage } from "@/context/language" +import { getProjectAvatarSource } from "@/pages/layout/sidebar-items" const AVATAR_COLOR_KEYS = ["pink", "mint", "orange", "purple", "cyan", "lime"] as const @@ -144,7 +145,11 @@ export function DialogEditProject(props: { project: LocalProject }) { }} > <Show - when={store.iconOverride || (!store.color && props.project.icon?.url)} + when={getProjectAvatarSource(props.project.id, { + color: store.color, + url: props.project.icon?.url, + override: store.iconOverride, + })} fallback={ <div class="size-full flex items-center justify-center"> <Avatar @@ -155,11 +160,13 @@ export function DialogEditProject(props: { project: LocalProject }) { </div> } > - <img - src={store.iconOverride || props.project.icon?.url} - alt={language.t("dialog.project.edit.icon.alt")} - class="size-full object-cover" - /> + {(src) => ( + <img + src={src()} + alt={language.t("dialog.project.edit.icon.alt")} + class="size-full object-cover" + /> + )} </Show> </div> <div @@ -216,6 +223,7 @@ export function DialogEditProject(props: { project: LocalProject }) { store.color !== color, }} onClick={() => { + if (store.color === color && !props.project.icon?.url) return setStore("color", store.color === color ? undefined : color) }} > |
