@@ -6,6 +6,7 @@ import { Icon } from "@opencode-ai/ui/icon"
66import { createMemo , createSignal , For , Show } from "solid-js"
77import { createStore } from "solid-js/store"
88import { useGlobalSDK } from "@/context/global-sdk"
9+ import { useGlobalSync } from "@/context/global-sync"
910import { type LocalProject , getAvatarColors } from "@/context/layout"
1011import { getFilename } from "@opencode-ai/util/path"
1112import { Avatar } from "@opencode-ai/ui/avatar"
@@ -16,6 +17,7 @@ const AVATAR_COLOR_KEYS = ["pink", "mint", "orange", "purple", "cyan", "lime"] a
1617export function DialogEditProject ( props : { project : LocalProject } ) {
1718 const dialog = useDialog ( )
1819 const globalSDK = useGlobalSDK ( )
20+ const globalSync = useGlobalSync ( )
1921 const language = useLanguage ( )
2022
2123 const folderName = createMemo ( ( ) => getFilename ( props . project . worktree ) )
@@ -71,17 +73,28 @@ export function DialogEditProject(props: { project: LocalProject }) {
7173 async function handleSubmit ( e : SubmitEvent ) {
7274 e . preventDefault ( )
7375
74- if ( ! props . project . id ) return
75-
7676 setStore ( "saving" , true )
7777 const name = store . name . trim ( ) === folderName ( ) ? "" : store . name . trim ( )
7878 const start = store . startup . trim ( )
79- await globalSDK . client . project . update ( {
80- projectID : props . project . id ,
81- directory : props . project . worktree ,
79+
80+ if ( props . project . id && props . project . id !== "global" ) {
81+ await globalSDK . client . project . update ( {
82+ projectID : props . project . id ,
83+ directory : props . project . worktree ,
84+ name,
85+ icon : { color : store . color , override : store . iconUrl } ,
86+ commands : { start } ,
87+ } )
88+ globalSync . project . icon ( props . project . worktree , store . iconUrl || undefined )
89+ setStore ( "saving" , false )
90+ dialog . close ( )
91+ return
92+ }
93+
94+ globalSync . project . meta ( props . project . worktree , {
8295 name,
83- icon : { color : store . color , override : store . iconUrl } ,
84- commands : { start } ,
96+ icon : { color : store . color , override : store . iconUrl || undefined } ,
97+ commands : { start : start || undefined } ,
8598 } )
8699 setStore ( "saving" , false )
87100 dialog . close ( )
0 commit comments