diff options
| author | Adam <[email protected]> | 2026-01-22 07:41:20 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-01-22 07:42:56 -0600 |
| commit | 16fad51b5ed572571ffb01159714756049b8a452 (patch) | |
| tree | ffebb90c34e367cf372b33422db98fc071f218e9 /packages/app/src/components | |
| parent | 287511c9b1320a2a8a464531c2a5f4e02cd259bf (diff) | |
| download | opencode-16fad51b5ed572571ffb01159714756049b8a452.tar.gz opencode-16fad51b5ed572571ffb01159714756049b8a452.zip | |
feat(app): add workspace startup script to projects
Diffstat (limited to 'packages/app/src/components')
| -rw-r--r-- | packages/app/src/components/dialog-edit-project.tsx | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/packages/app/src/components/dialog-edit-project.tsx b/packages/app/src/components/dialog-edit-project.tsx index 9cf7ce575..7664470f7 100644 --- a/packages/app/src/components/dialog-edit-project.tsx +++ b/packages/app/src/components/dialog-edit-project.tsx @@ -25,6 +25,7 @@ export function DialogEditProject(props: { project: LocalProject }) { name: defaultName(), color: props.project.icon?.color || "pink", iconUrl: props.project.icon?.override || "", + startup: props.project.commands?.start ?? "", saving: false, }) @@ -69,15 +70,18 @@ export function DialogEditProject(props: { project: LocalProject }) { async function handleSubmit(e: SubmitEvent) { e.preventDefault() + if (!props.project.id) return setStore("saving", true) const name = store.name.trim() === folderName() ? "" : store.name.trim() + const start = store.startup.trim() await globalSDK.client.project.update({ projectID: props.project.id, directory: props.project.worktree, name, icon: { color: store.color, override: store.iconUrl }, + commands: { start }, }) setStore("saving", false) dialog.close() @@ -215,6 +219,17 @@ export function DialogEditProject(props: { project: LocalProject }) { </div> </div> </Show> + + <TextField + multiline + label={language.t("dialog.project.edit.worktree.startup")} + description={language.t("dialog.project.edit.worktree.startup.description")} + placeholder={language.t("dialog.project.edit.worktree.startup.placeholder")} + value={store.startup} + onChange={(v) => setStore("startup", v)} + spellcheck={false} + class="max-h-40 w-full font-mono text-xs no-scrollbar" + /> </div> <div class="flex justify-end gap-2"> |
