diff --git a/packages/app/src/settings/workspaces/project-dialog.tsx b/packages/app/src/settings/workspaces/project-dialog.tsx index 6c8f06e67262..7d8232c48578 100644 --- a/packages/app/src/settings/workspaces/project-dialog.tsx +++ b/packages/app/src/settings/workspaces/project-dialog.tsx @@ -11,7 +11,8 @@ import { useLanguage } from "@/runtime/i18n/language" import { getProjectAvatarVariant, type LocalProject } from "@/shell/state/layout" import { ServerConnection } from "@/runtime/server/registry" import { LocationProvider } from "@/workspaces/location" -import { displayName, getProjectAvatarSource } from "@/shell/layout/helpers" +import { displayName } from "@/shell/layout/helpers" +import { ProjectIcon } from "@/shell/layout/project-icon" import { createEditProjectModel } from "./project-model" import { ProjectSettingsExtensions } from "./project-extensions" import { SettingsServerDataScope } from "@/settings/server-scope" @@ -57,11 +58,7 @@ function ProjectSettingsDialog(props: { project: LocalProject; server: ServerCon
- + {projectName()} @@ -114,14 +111,14 @@ function ProjectSettingsDialog(props: { project: LocalProject; server: ServerCon onDragLeave={model.dragLeave} onClick={model.iconClick} > - { const ProjectRow: Component<{ project: ProjectItem; server: ServerConnection.Any }> = (props) => { const name = () => displayName(props.project) - const color = () => getProjectAvatarVariant(props.project.icon?.color) return (
openProjectSettings(props.project, props.server)} >
- + {name()}
diff --git a/packages/app/src/shell/layout/project-icon.tsx b/packages/app/src/shell/layout/project-icon.tsx new file mode 100644 index 000000000000..e7218ce42b12 --- /dev/null +++ b/packages/app/src/shell/layout/project-icon.tsx @@ -0,0 +1,24 @@ +import { ProjectAvatar, type ProjectAvatarProps } from "@opencode-ai/ui/project-avatar" +import { splitProps } from "solid-js" +import { displayName, getProjectAvatarSource } from "@/shell/layout/helpers" +import { getProjectAvatarVariant, type LocalProject } from "@/shell/state/layout" + +type ProjectIconProps = Omit & { + project: LocalProject + fallback?: string + icon?: LocalProject["icon"] +} + +export function ProjectIcon(props: ProjectIconProps) { + const [local, rest] = splitProps(props, ["project", "fallback", "icon"]) + const icon = () => local.icon ?? local.project.icon + + return ( + + ) +}