Index: pages/forge/+Page.tsx
===================================================================
--- pages/forge/+Page.tsx	(revision 1b5c18bef56f1e5c7c01819c2ef8e8ec2b99b219)
+++ pages/forge/+Page.tsx	(revision 3a9c59cba2839f8be6bd0a5327349ee3883c2ee4)
@@ -26,5 +26,5 @@
 import ComponentDialog from '../../components/ComponentDialog';
 import ComponentDetailsDialog from '../../components/ComponentDetailsDialog';
-import {onAddNewBuild, onGetComponentDetails} from "../+Layout.telefunc";
+import {onAddNewBuild, onGetAuthState, onGetComponentDetails} from "../+Layout.telefunc";
 import {onEditBuild} from "../dashboard/user/userDashboard.telefunc";
 import {BuildSlot, INITIAL_SLOTS} from "./types/buildTypes";
@@ -157,4 +157,5 @@
     };
 
+    // fix: changed text, new catch and removed setActiveSlotId(null), so the component name doesn't disappear.
     const handleSelectComponent = async (component: any) => {
         if (!activeSlotId) return;
@@ -163,14 +164,25 @@
             let id = buildId;
             if (!id) {
-                const result = await onAddNewBuild({
-                    name: buildName.trim() || "New Build",
-                    description: description || "Work in progress"
-                });
+                let result;
+                try {
+                    result = await onAddNewBuild({
+                        name: buildName.trim() || "New Build",
+                        description: description || "Work in progress"
+                    });
+                } catch {
+                    setSnackbar({
+                        open: true,
+                        message: 'Please log in first!',
+                        severity: 'warning'
+                    });
+                    return;
+                }
+
                 id = typeof result === 'number' ? result : (result as any)?.buildId;
                 if (!id || !Number.isInteger(id) || id <= 0) {
                     setSnackbar({
                         open: true,
-                        message: 'Failed to create draft build. Please try again.',
-                        severity: 'error'
+                        message: 'Please log in first!',
+                        severity: 'warning'
                     });
                     return;
@@ -198,8 +210,7 @@
             });
         } finally {
-            setActiveSlotId(null);
-        }
-    };
-
+            // setActiveSlotId(null);
+        }
+    };
     const handleRemovePart = async (slotId: string) => {
         const slot = slots.find(s => s.id === slotId);
@@ -320,5 +331,19 @@
     };
 
+
+    const [isLoggedIn, setIsLoggedIn] = useState(false);
+    useEffect(() => {
+        onGetAuthState().then(userData => {
+            setIsLoggedIn(!!userData?.userId);
+        });
+    }, []);
+
+
     const handleSubmit = () => {
+        if (!isLoggedIn) {
+            window.location.href = '/auth/login'
+            return;
+        }
+
         if (!buildName.trim()) {
             setSnackbar({
@@ -329,4 +354,5 @@
             return;
         }
+
         if (!buildId) {
             setSnackbar({
