From 3a4fffcec4d8a47e7bd0df7a14b3ba29966dc5c6 Mon Sep 17 00:00:00 2001 From: keyhan Date: Fri, 15 May 2026 19:30:30 +0330 Subject: [PATCH] Reorder deploy wizard: env vars on step 1, app storage on step 3. Move Environment Variables to Basic Info and Application Data Storage to Resources so users configure them earlier and later in the flow. Co-authored-by: Cursor --- frontend/src/app/dashboard/deploy/page.tsx | 240 +++++++++++---------- 1 file changed, 121 insertions(+), 119 deletions(-) diff --git a/frontend/src/app/dashboard/deploy/page.tsx b/frontend/src/app/dashboard/deploy/page.tsx index 8bc2eb3..4d86285 100644 --- a/frontend/src/app/dashboard/deploy/page.tsx +++ b/frontend/src/app/dashboard/deploy/page.tsx @@ -1153,6 +1153,74 @@ export default function DeployPage() { )} )} + + {/* Environment Variables */} +
+ +
+ setEnvKey(e.target.value)} + /> + setEnvVal(e.target.value)} + /> + +
+
+ {envFile ? ( +
+
+ + {envFile.name} +
+ +
+ ) : ( + + )} + { + const file = e.target.files?.[0]; + if (file) handleEnvFileSelect(file); + if (envFileInputRef.current) envFileInputRef.current.value = ''; + }} + /> +
+ {Object.entries(form.envVars || {}).map(([key, value]) => ( +
+ + {key} = {value} + + +
+ ))} +
)} @@ -1929,68 +1997,6 @@ export default function DeployPage() { - {/* App Storage Size (all app types) */} -
-
- -

- {form.runtime === 'wordpress' ? 'Upload Storage (wp-content)' - : form.runtime === 'laravel' ? 'Storage Directory' - : 'Application Data Storage'} -

-
-

- {form.runtime === 'wordpress' - ? 'This space is used for uploads, plugins, themes, and other WordPress files.' - : form.runtime === 'laravel' - ? 'This space is used for uploads, logs, cache, and other Laravel storage files.' - : 'This space is used for persistent application data, uploads, and files.'} -

-
-
- - { - const val = Math.max(1, Math.min(100, parseInt(e.target.value, 10) || 2)); - setForm({ ...form, appStorageSize: String(val) }); - }} - className="w-16 text-center py-2 border-x border-gray-300 text-sm font-semibold focus:outline-none" - /> - -
- GB - {wpContentFile && form.runtime === 'wordpress' && ( - - Suggested based on wp-content ({(wpContentFile.size / (1024 * 1024 * 1024)).toFixed(2)} GB) - - )} -
-

Minimum 1GB • Recommended: 2GB or more

-
)} @@ -2287,73 +2293,69 @@ export default function DeployPage() { )} - {/* Environment Variables */} -
- -
- setEnvKey(e.target.value)} - /> - setEnvVal(e.target.value)} - /> - + {/* App Storage Size (all app types) */} +
+
+ +

+ {form.runtime === 'wordpress' ? 'Upload Storage (wp-content)' + : form.runtime === 'laravel' ? 'Storage Directory' + : 'Application Data Storage'} +

-
- {envFile ? ( -
-
- - {envFile.name} -
+

+ {form.runtime === 'wordpress' + ? 'This space is used for uploads, plugins, themes, and other WordPress files.' + : form.runtime === 'laravel' + ? 'This space is used for uploads, logs, cache, and other Laravel storage files.' + : 'This space is used for persistent application data, uploads, and files.'} +

+
+
+ + { + const val = Math.max(1, Math.min(100, parseInt(e.target.value, 10) || 2)); + setForm({ ...form, appStorageSize: String(val) }); + }} + className="w-16 text-center py-2 border-x border-gray-300 text-sm font-semibold focus:outline-none" + />
- ) : ( - - )} - { - const file = e.target.files?.[0]; - if (file) handleEnvFileSelect(file); - if (envFileInputRef.current) envFileInputRef.current.value = ''; - }} - /> -
- {Object.entries(form.envVars || {}).map(([key, value]) => ( -
- - {key} = {value} - - + GB + {wpContentFile && form.runtime === 'wordpress' && ( + + Suggested based on wp-content ({(wpContentFile.size / (1024 * 1024 * 1024)).toFixed(2)} GB) + + )}
- ))} +

Minimum 1GB • Recommended: 2GB or more

+
)}