diff --git a/apps/studio/src/components/Modals/Settings/Project/index.tsx b/apps/studio/src/components/Modals/Settings/Project/index.tsx index 2ad17b74e..0f9f772ad 100644 --- a/apps/studio/src/components/Modals/Settings/Project/index.tsx +++ b/apps/studio/src/components/Modals/Settings/Project/index.tsx @@ -35,8 +35,22 @@ const ProjectTab = observer(() => { }; const handleUpdateUrl = (url: string) => { + let port = url.split(':').pop(); + + try { + const parsedUrl = new URL(url); + port = parsedUrl.port; + } catch (error) { + console.error('Invalid URL'); + return; + } projectsManager.updatePartialProject({ url, + commands: { + ...project?.commands, + run: 'npx next dev -p ' + port, + build: 'npx next build -p ' + port, + }, }); projectsManager.editorEngine?.canvas.saveFrames( projectsManager.editorEngine?.canvas.frames.map((frame) => ({ @@ -70,6 +84,7 @@ const ProjectTab = observer(() => { id="url" value={url} onChange={(e) => handleUpdateUrl(e.target.value)} + onBlur={() => projectsManager.runner?.restart()} className="w-2/3" /> diff --git a/apps/studio/src/lib/projects/create.ts b/apps/studio/src/lib/projects/create.ts index bfa99208b..6d69cfdf0 100644 --- a/apps/studio/src/lib/projects/create.ts +++ b/apps/studio/src/lib/projects/create.ts @@ -143,10 +143,11 @@ export class CreateManager { createProject(projectPath: string) { const projectName = 'New Project'; const projectUrl = 'http://localhost:3000'; + const port = 3000; const projectCommands = { install: 'npm install', - run: 'npm run dev', - build: 'npm run build', + run: 'npx next dev -p ' + port, + build: 'npx next build -p ' + port, }; return this.projectsManager.createProject(