From ee1e0520943be78b4de5db6fd97b382b38eb6513 Mon Sep 17 00:00:00 2001 From: sirpiglr <49359077-sirpiglr@users.noreply.replit.com> Date: Sat, 13 Dec 2025 02:25:57 +0000 Subject: [PATCH] Remove Dev-Link pages and redirect to Nexus opportunities Removes all pages and components related to Dev-Link, updating routes in App.tsx to redirect /dev-link and /dev-link/waitlist to /opportunities?ecosystem=roblox. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 9203795e-937a-4306-b81d-b4d5c78c240e Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Event-Id: a73e905c-11b2-4d95-8ad7-db01d93e9347 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7c94b7a0-29c7-4f2e-94ef-44b2153872b7/9203795e-937a-4306-b81d-b4d5c78c240e/aPpJgbb Replit-Helium-Checkpoint-Created: true --- client/App.tsx | 12 +- client/pages/DevLink.tsx | 198 --------- client/pages/DevLinkProfile.tsx | 324 --------------- client/pages/DevLinkProfiles.tsx | 97 ----- client/pages/dashboards/DevLinkDashboard.tsx | 404 ------------------- client/pages/devlink/DevLinkAbout.tsx | 180 --------- client/pages/devlink/DevLinkJobs.tsx | 186 --------- client/pages/devlink/DevLinkProfiles.tsx | 191 --------- client/pages/devlink/DevLinkTeams.tsx | 145 ------- 9 files changed, 5 insertions(+), 1732 deletions(-) delete mode 100644 client/pages/DevLink.tsx delete mode 100644 client/pages/DevLinkProfile.tsx delete mode 100644 client/pages/DevLinkProfiles.tsx delete mode 100644 client/pages/dashboards/DevLinkDashboard.tsx delete mode 100644 client/pages/devlink/DevLinkAbout.tsx delete mode 100644 client/pages/devlink/DevLinkJobs.tsx delete mode 100644 client/pages/devlink/DevLinkProfiles.tsx delete mode 100644 client/pages/devlink/DevLinkTeams.tsx diff --git a/client/App.tsx b/client/App.tsx index 201c51e5..b2e8335b 100644 --- a/client/App.tsx +++ b/client/App.tsx @@ -27,8 +27,6 @@ import GameForge from "./pages/GameForge"; import Foundation from "./pages/Foundation"; import Corp from "./pages/Corp"; import Staff from "./pages/Staff"; -import DevLink from "./pages/DevLink"; -import DevLinkProfiles from "./pages/DevLinkProfiles"; import Nexus from "./pages/Nexus"; import Arms from "./pages/Arms"; import ExternalRedirect from "./components/ExternalRedirect"; @@ -94,7 +92,6 @@ import Investors from "./pages/Investors"; import NexusDashboard from "./pages/dashboards/NexusDashboard"; import LabsDashboard from "./pages/dashboards/LabsDashboard"; import GameForgeDashboard from "./pages/dashboards/GameForgeDashboard"; -import DevLinkDashboard from "./pages/dashboards/DevLinkDashboard"; import StaffDashboard from "./pages/dashboards/StaffDashboard"; import Roadmap from "./pages/Roadmap"; import Trust from "./pages/Trust"; @@ -211,9 +208,10 @@ const App = () => ( path="/dashboard/gameforge" element={} /> + {/* Dev-Link dashboard redirects to Nexus dashboard */} } + element={} /> ( } /> - {/* Dev-Link routes */} - } /> + {/* Dev-Link routes - now redirect to Nexus Opportunities with ecosystem filter */} + } /> } + element={} /> {/* Client Hub routes */} diff --git a/client/pages/DevLink.tsx b/client/pages/DevLink.tsx deleted file mode 100644 index b28a88bb..00000000 --- a/client/pages/DevLink.tsx +++ /dev/null @@ -1,198 +0,0 @@ -import Layout from "@/components/Layout"; -import { Button } from "@/components/ui/button"; -import { Badge } from "@/components/ui/badge"; -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; -import { Users, Briefcase, Star, Zap } from "lucide-react"; -import { useNavigate } from "react-router-dom"; -import { useEffect, useState, useRef } from "react"; -import LoadingScreen from "@/components/LoadingScreen"; -import { useArmToast } from "@/hooks/use-arm-toast"; - -export default function DevLink() { - const navigate = useNavigate(); - const armToast = useArmToast(); - const [isLoading, setIsLoading] = useState(true); - const toastShownRef = useRef(false); - - useEffect(() => { - const timer = setTimeout(() => { - setIsLoading(false); - if (!toastShownRef.current) { - armToast.system("Dev-Link platform loaded"); - toastShownRef.current = true; - } - }, 900); - - return () => clearTimeout(timer); - }, [armToast]); - - if (isLoading) { - return ( - - ); - } - return ( - -
- {/* Animated backgrounds */} -
-
-
-
-
- -
- {/* Hero Section */} -
-
-
- - Dev-Link - Dev-Link - - -

- LinkedIn for Roblox -

- -

- Connect with Roblox developers, showcase your portfolio, find - collaborators, and land your next opportunity. The - professional network built by Roblox creators, for Roblox - creators. -

- - -
-
-
- - {/* Features Grid */} -
-
-
- - - - Network - - -

- Connect with thousands of Roblox developers worldwide and - expand your opportunities. -

-
-
- - - - - - Opportunities - - - -

- Discover jobs, collaborations, and projects tailored to - your skills and interests. -

-
-
- - - - - Portfolio - - -

- Showcase your best work and build your professional - reputation in the community. -

-
-
- - - - - Collaborate - - -

- Team up with other creators to build amazing games and - experiences together. -

-
-
-
-
-
- - {/* CTA Section */} -
-
-

- Your Roblox Career Starts Here -

-

- Join the professional community for Roblox developers. Connect, - showcase, and grow. -

- - - {/* Creator Network CTAs */} -
-

- Explore our creator community: -

-
- - -
-
-
-
-
-
- - ); -} diff --git a/client/pages/DevLinkProfile.tsx b/client/pages/DevLinkProfile.tsx deleted file mode 100644 index f16a28b7..00000000 --- a/client/pages/DevLinkProfile.tsx +++ /dev/null @@ -1,324 +0,0 @@ -import Layout from "@/components/Layout"; -import { Button } from "@/components/ui/button"; -import { Badge } from "@/components/ui/badge"; -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; -import { useParams, useNavigate } from "react-router-dom"; -import { useEffect, useState } from "react"; -import { - Github, - Globe, - Mail, - ArrowLeft, - ExternalLink, - MessageSquare, - Share2, - MapPin, - Trophy, - Briefcase, -} from "lucide-react"; -import { supabase } from "@/lib/supabase"; - -interface DevProfile { - id: string; - user_id: string; - full_name: string; - avatar_url?: string; - bio?: string; - skills: string[]; - experience_level: "beginner" | "intermediate" | "advanced" | "expert"; - looking_for?: string; - portfolio_url?: string; - github_url?: string; - email?: string; - city?: string; - country?: string; - created_at: string; -} - -export default function DevLinkProfile() { - const { profileId } = useParams<{ profileId: string }>(); - const navigate = useNavigate(); - const [profile, setProfile] = useState(null); - const [loading, setLoading] = useState(true); - const [error, setError] = useState(null); - - useEffect(() => { - const fetchProfile = async () => { - if (!profileId) { - setError("Profile not found"); - setLoading(false); - return; - } - - try { - const { data, error: fetchError } = await supabase - .from("profiles") - .select("*") - .eq("id", profileId) - .single(); - - if (fetchError) throw fetchError; - - const devProfile: DevProfile = { - id: data.id, - user_id: data.user_id, - full_name: data.full_name || "Anonymous Developer", - avatar_url: data.avatar_url, - bio: data.bio, - skills: data.interests || [], - experience_level: data.experience_level || "intermediate", - looking_for: data.looking_for, - portfolio_url: data.portfolio_url, - github_url: data.github_url, - email: data.email, - city: data.city, - country: data.country, - created_at: data.created_at, - }; - - setProfile(devProfile); - } catch (err) { - console.error("Error fetching profile:", err); - setError("Failed to load profile"); - } finally { - setLoading(false); - } - }; - - fetchProfile(); - }, [profileId]); - - const getExperienceColor = (level: string) => { - const colors: Record = { - beginner: "bg-blue-500/20 text-blue-300 border-blue-400/40", - intermediate: "bg-cyan-500/20 text-cyan-300 border-cyan-400/40", - advanced: "bg-violet-500/20 text-violet-300 border-violet-400/40", - expert: "bg-amber-500/20 text-amber-300 border-amber-400/40", - }; - return colors[level] || colors.intermediate; - }; - - if (loading) { - return ( - -
-
-

Loading profile...

-
- - ); - } - - if (error || !profile) { - return ( - -
-
-
-

- {error || "Profile not found"} -

- -
-
- - ); - } - - return ( - -
- {/* Animated backgrounds */} -
-
-
-
-
- -
- {/* Header */} -
-
-
- Dev-Link - -
- - {/* Profile Card */} - - -
- {profile.avatar_url && ( - {profile.full_name} - )} -
-
-
- - {profile.full_name} - - - {profile.experience_level} Developer - -
-
- - -
-
- - {(profile.city || profile.country) && ( -
- - - {profile.city && profile.country - ? `${profile.city}, ${profile.country}` - : profile.city || profile.country} - -
- )} -
-
-
- - - {/* Bio */} - {profile.bio && ( -
-

- About -

-

- {profile.bio} -

-
- )} - - {/* Looking For */} - {profile.looking_for && ( -
-

- Currently Looking For -

-

- - {profile.looking_for} -

-
- )} - - {/* Skills */} - {profile.skills && profile.skills.length > 0 && ( -
-

- Skills -

-
- {profile.skills.map((skill) => ( - - {skill} - - ))} -
-
- )} - - {/* Links */} - {(profile.github_url || - profile.portfolio_url || - profile.email) && ( -
-

- Connect -

-
- {profile.github_url && ( - - - GitHub - - - )} - {profile.portfolio_url && ( - - - Portfolio - - - )} - {profile.email && ( - - - Email - - )} -
-
- )} - - {/* Member Since */} -
-

- Member since{" "} - {new Date(profile.created_at).toLocaleDateString()} -

-
-
-
-
-
-
-
- - ); -} diff --git a/client/pages/DevLinkProfiles.tsx b/client/pages/DevLinkProfiles.tsx deleted file mode 100644 index 016442ab..00000000 --- a/client/pages/DevLinkProfiles.tsx +++ /dev/null @@ -1,97 +0,0 @@ -import Layout from "@/components/Layout"; -import { Button } from "@/components/ui/button"; -import { useNavigate, useLocation } from "react-router-dom"; -import { ExternalLink } from "lucide-react"; - -export default function DevLinkProfiles() { - const navigate = useNavigate(); - const location = useLocation(); - const isWaitlist = location.pathname.includes("/waitlist"); - - return ( - -
- {/* Animated backgrounds */} -
-
-
-
-
- -
- {/* Header */} -
-
- - -
-
-

- {isWaitlist ? "Dev-Link Waitlist" : "Browse Profiles"} -

-

- {isWaitlist - ? "Join the professional network for Roblox developers. Sign up for early access!" - : "Explore talented Roblox developers in our community."} -

-
-
-
-
- - {/* Iframe Container */} -
-
-
-