summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/components
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-01-22 07:41:20 -0600
committerAdam <[email protected]>2026-01-22 07:42:56 -0600
commit16fad51b5ed572571ffb01159714756049b8a452 (patch)
treeffebb90c34e367cf372b33422db98fc071f218e9 /packages/app/src/components
parent287511c9b1320a2a8a464531c2a5f4e02cd259bf (diff)
downloadopencode-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.tsx15
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">