Update routing and URL handling for opportunities and dev-link

Consolidate dev-link routes to redirect to opportunities with an ecosystem filter, and update URL parameter handling in OpportunitiesHub.tsx to preserve existing query parameters.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 9203795e-937a-4306-b81d-b4d5c78c240e
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: 05574cd0-d046-4714-966b-aa44b58b4ce8
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
This commit is contained in:
sirpiglr 2025-12-13 02:27:42 +00:00
parent ee1e052094
commit 0c45a4130c
3 changed files with 27 additions and 9 deletions

View file

@ -503,7 +503,7 @@ const App = () => (
{/* Dev-Link routes - now redirect to Nexus Opportunities with ecosystem filter */}
<Route path="/dev-link" element={<Navigate to="/opportunities?ecosystem=roblox" replace />} />
<Route
path="/dev-link/waitlist"
path="/dev-link/*"
element={<Navigate to="/opportunities?ecosystem=roblox" replace />}
/>

View file

@ -48,13 +48,30 @@ export default function OpportunitiesHub() {
setOpportunities(result.data);
setTotalPages(result.pagination.pages);
// Update URL params
const params = new URLSearchParams();
if (selectedArm) params.set("arm", selectedArm);
if (selectedEcosystem && selectedEcosystem !== "all") params.set("ecosystem", selectedEcosystem);
if (search) params.set("search", search);
if (page > 1) params.set("page", String(page));
setSearchParams(params);
// Update URL params (preserve other params like UTM tracking)
const params = new URLSearchParams(searchParams);
// Update known filter params
if (selectedArm) {
params.set("arm", selectedArm);
} else {
params.delete("arm");
}
if (selectedEcosystem && selectedEcosystem !== "all") {
params.set("ecosystem", selectedEcosystem);
} else {
params.delete("ecosystem");
}
if (search) {
params.set("search", search);
} else {
params.delete("search");
}
if (page > 1) {
params.set("page", String(page));
} else {
params.delete("page");
}
setSearchParams(params, { replace: true });
} catch (error) {
console.error("Failed to fetch opportunities:", error);
setOpportunities([]);

View file

@ -15,7 +15,7 @@ Do not make changes to the file `server/index.ts`.
## System Architecture
AeThex is built as a full-stack web application utilizing React 18 with TypeScript for the frontend, Vite 6 as the build tool, and Express.js for the backend. Supabase (PostgreSQL) serves as the primary database. Styling is handled with Tailwind CSS, and UI components leverage Radix UI. TanStack Query is used for state management, and React Router DOM for routing.
The application features a multi-realm system including Nexus, GameForge, Foundation, Labs, Corp, Staff, and Dev-Link (7 total), each with specific functionalities. Key capabilities include community features (feed, posts, comments), a Creator Network with profile passports and achievements, and a Nexus Marketplace for opportunities and contracts.
The application features a multi-realm system including Nexus, GameForge, Foundation, Labs, Corp, and Staff (6 realms), each with specific functionalities. Dev-Link has been merged into Nexus as an ecosystem filter. Key capabilities include community features (feed, posts, comments), a Creator Network with profile passports and achievements, and a Nexus Marketplace for opportunities and contracts.
### Discord Integration Architecture
Discord functionality is split between two deployments:
@ -70,6 +70,7 @@ This ensures the Foundation's user-facing URLs display `aethex.foundation` in th
- **Landing Page Styling Alignment**: Updated hero CTAs and featured realm button to use shared Button component with asChild prop for consistent styling and ripple effects. Fixed Button component to support ripple animation for both native buttons and asChild elements. Removed unused backgroundGradient variable. Custom landing page cards (featured-card, stats-strip, hero-intro) intentionally use advanced CSS effects while still leveraging design tokens (--aethex-*, --foreground, --background, --muted, etc.).
- **Get Started Page Enhancement**: Comprehensive onboarding page (`/get-started`) with: Stats/Social Proof section (animated counters: 12k+ builders, 500+ projects, 7 realms, 10 AI agents), Video Demo placeholder, 3-step guided signup flow, Platform Features section (6 cards: XP & Leveling, AI Agents, Creator Passports, Community, Badges, Security), Realms Overview (all 7 realms with descriptions and feature tags), Testimonials section (4 community quotes), and FAQ section (6 expandable questions). AnimatedCounter uses proper useRef cleanup for requestAnimationFrame.
- **Axiom Model Code Cleanup**: Removed orphaned page files in `foundation/`, `gameforge/`, and `labs/` folders (20+ files) that were dead code since all routes redirect to external domains. Cleaned up unused imports from App.tsx. Routes continue to redirect: `/foundation/*` → aethex.foundation, `/gameforge/*` → aethex.foundation/gameforge, `/labs/*` → aethex.studio.
- **Dev-Link Merged into Nexus**: Dev-Link realm eliminated as standalone. Roblox and other platform communities now accessible via ecosystem filter tabs in Nexus Opportunities Hub. Filter tabs: [All] [Roblox] [Unity] [Web] [Audio] [Design]. Routes `/dev-link/*` redirect to `/opportunities?ecosystem=roblox`. Deleted 8 Dev-Link page files and updated App.tsx routes.
## External Dependencies
- **Supabase**: Used for database (PostgreSQL), authentication, and real-time features.