Skip to content

Commit a341d6f

Browse files
Enhance header apps buttons
Move AGameFlow and AlienTrip buttons into header, remove APPS from nav, fix Academy logos and categories, and adjust wallet config guidance - Added AGameFlow and AlienTrip icon buttons beside wallet/portal in header - Removed APPS section from DesktopNav and MobileNav dropdowns - Cleaned and improved Academy partners logos/categories with fallbacks - Updated Academy partner rendering to rely on logos with onError handling - Provided guidance for wallet origin whitelisting configuration (external action) X-Lovable-Edit-ID: edt-a7bcf816-352a-451a-980b-6860f1227fa3 Co-authored-by: Alien69Flow <111972684+Alien69Flow@users.noreply.github.com>
2 parents 4116b4d + c753275 commit a341d6f

5 files changed

Lines changed: 50 additions & 144 deletions

File tree

.lovable/plan.md

Lines changed: 1 addition & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,2 @@
11

2-
3-
# Plan: Fix Navigation, Apps Buttons, Academy Partners & Wallet Config
4-
5-
## Issues Found
6-
7-
1. **AlienTrip missing from DesktopNav** — It was removed from `navLinks` in DesktopNav (only exists inside the APPS dropdown). MobileNav still has it in navLinks.
8-
9-
2. **Apps placement** — You want AGameFlow and AlienTrip as icon buttons next to the wallet/portal buttons in the header bar (ConnectButton area), not inside the Explore Spaces dropdown.
10-
11-
3. **Academy partners** — Some logos use external URLs that may be broken (CORS), HEALTHFLOW partners use Lucide fallback icons instead of real logos. Categories can be improved.
12-
13-
4. **Wallet "Invalid App Configuration"** — The console shows `WebSocket connection closed abnormally with code: 3000 (Unauthorized: origin not allowed)`. This means the Reown/WalletConnect project (ID: `ced40e4d52234c471808977208586c7e`) does not have the Lovable preview domain (`*.lovable.app` / `*.lovableproject.com`) whitelisted in its allowed origins. **This must be fixed in the Reown Cloud dashboard** at https://cloud.reown.com — you need to add these domains to the project's allowed origins:
14-
- `alienflowspace.lovable.app`
15-
- `*.lovableproject.com`
16-
- `id-preview--83ea2c39-5424-4ac2-b26f-e00df7bb6c06.lovable.app`
17-
18-
## Changes
19-
20-
### 1. `src/components/Header/ConnectButton.tsx`
21-
Add two new icon buttons (AGameFlow + AlienTrip) next to the existing wallet and portal buttons:
22-
- **AGameFlow** → external link to `https://agameflow.lovable.app` with Gamepad2 icon
23-
- **AlienTrip** → external link to `https://alientrip.lovable.app` with Rocket icon
24-
- Same circular button styling as wallet/portal buttons
25-
26-
### 2. `src/components/Header/DesktopNav.tsx`
27-
- Remove the APPS section from the Explore Spaces dropdown (keep only Academy, Clubs, CoNetWorKing)
28-
- Remove the `DropdownMenuSeparator` and apps rendering code
29-
30-
### 3. `src/components/Header/MobileNav.tsx`
31-
- Remove the APPS section from inside the Explore Spaces accordion
32-
- Keep AlienTrip in main navLinks (it's already there)
33-
34-
### 4. `src/pages/Academy.tsx` — Partners cleanup
35-
- Fix HEALTHFLOW: remove partners without real logos (Meslo Ltd, Motus DAO, My DNA Bank) or replace with verifiable partners that have real logos
36-
- Remove external Wikipedia URLs for logos (CORS issues) — use text-based fallbacks or verified local assets
37-
- Ensure all categories have correct partner assignments
38-
39-
### 5. Wallet fix
40-
- **User action required**: Go to https://cloud.reown.com, open project `ced40e4d52234c471808977208586c7e`, and add the Lovable domains to allowed origins. This cannot be fixed from code.
41-
42-
## Files Modified
43-
| File | Change |
44-
|------|--------|
45-
| `src/components/Header/ConnectButton.tsx` | Add AGameFlow + AlienTrip icon buttons |
46-
| `src/components/Header/DesktopNav.tsx` | Remove APPS section from dropdown |
47-
| `src/components/Header/MobileNav.tsx` | Remove APPS section from accordion |
48-
| `src/pages/Academy.tsx` | Fix broken partner logos, clean categories |
49-
2+
Aquí tienes el plan de acción corregido y ultra-detallado. He inyectado tus instrucciones de jerarquía, la nueva categoría estratégica CashFlow, el orden alfabético y la restauración estética del día 23.Copia este texto y pégalo directamente en el botón "Edit Plan" de Lovable antes de darle a "Approve".Academy Page Redesign Plan: Quantum Restoration & Strategic Expansion1. Hero Header: 23rd Jan RestorationPriority: Restore the high-tech visual identity exactly as it was on January 23rd.Circular Logo Frame: Restore the double-ring circular frame with depth shadows and the "Quantum Glow" (pulsating animation).Typography: Reset title to 'Nasalization' font with the original green/gold gradient and drop-shadow.Subtitle/Quote: Restore the italicized, wide-spaced subtitle with the original golden-muted color palette.Spacing: Do not over-compact. Maintain the original vertical breathing room that felt premium.2. Partners: Logical & Institutional RestructuringOrganize all partners ALPHABETICALLY within these specific categories:CategoryIncluded PartnersACADEMY PARTNERSAcademia, AulaFacil, Coursera, Cursa, edX, GrowGoogle, Hotmart, MasterClass, Mooc, SkillShare, Udacity, UNED.CASHFLOWAzrael Codex (Bitget), Predik.HEALTHFLOWMeslo Ltd, Motus DAO, My DNA Bank, Proton, Yazio.DATAFLOWAlchemy, HackMD, HackerRank.ECOFLOWClimateReanalyzer, OEGlobal, OpenUpEd.GAMEFLOWExplore, Unity Learn.SPACEFLOWESA, KAGRA, LIGO, LSC, NASA, UNESCO, UNSSC, Virgo.3. Asset & Logo IntegrityPriority 1: Use all files from /lovable-uploads/Academy/ (matching the GitHub repository).Priority 2: For missing official logos (NASA, Coursera, Proton, etc.), use high-resolution official Wiki/External URLs as previously implemented.Visuals: Maintain the grayscale to color filter on hover.Links: Ensure every partner has its functional external link.4. UI/UX Polish (Contact Us & Global)Contact Page: Fix the H1 separator by adding horizontal gradient lines (transparent -> alien-green -> transparent) to the sides of the center dot.Chat Bubble: Add the triangular "comic-style" pointer to the message bubble in the Contact section to make it look like a real chat.Interactions: Ensure all cards use the scale-[1.01] transition with a 300ms duration.5. Technical ImplementationUpdate src/pages/Academy.tsx as a single, clean file.Ensure the partnerCategories constant reflects the alphabetical order and the new CashFlow category.6. Proactive ExpansionIntegrate 2 or 3 additional high-prestige institutions in SpaceFlow or HealthFlow (e.g., SpaceX, CERN, or major BioTech labs) if high-quality logos are available, to enhance institutional weight.

src/components/Header/ConnectButton.tsx

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from 'react';
22
import { Button } from '@/components/ui/button';
33
import { useAppKit } from '@reown/appkit/react';
4-
import { Copy, CheckCircle } from 'lucide-react';
4+
import { Copy, CheckCircle, Gamepad2, Rocket } from 'lucide-react';
55
import { useWalletConnection } from '@/hooks/useWalletConnection';
66
import { toast } from 'sonner';
77

@@ -28,7 +28,39 @@ const ConnectButton = () => {
2828
};
2929

3030
return (
31-
<div className="flex items-center gap-3">
31+
<div className="flex items-center gap-2 sm:gap-3">
32+
{/* App Buttons */}
33+
<a
34+
href="https://agameflow.lovable.app"
35+
target="_blank"
36+
rel="noopener noreferrer"
37+
className="no-underline"
38+
title="ACE AGameFlow"
39+
aria-label="ACE AGameFlow"
40+
>
41+
<Button
42+
className="bg-alien-green hover:bg-alien-green-light text-alien-gold rounded-full flex items-center justify-center p-2 sm:p-3 transition-all duration-300 hover:shadow-lg hover:scale-110 active:scale-95 focus-visible:ring-2 focus-visible:ring-alien-gold"
43+
type="button"
44+
>
45+
<Gamepad2 className={`${ICON_SIZE}`} />
46+
</Button>
47+
</a>
48+
<a
49+
href="https://alientrip.lovable.app"
50+
target="_blank"
51+
rel="noopener noreferrer"
52+
className="no-underline"
53+
title="AlienTrip"
54+
aria-label="AlienTrip"
55+
>
56+
<Button
57+
className="bg-alien-green hover:bg-alien-green-light text-alien-gold rounded-full flex items-center justify-center p-2 sm:p-3 transition-all duration-300 hover:shadow-lg hover:scale-110 active:scale-95 focus-visible:ring-2 focus-visible:ring-alien-gold"
58+
type="button"
59+
>
60+
<Rocket className={`${ICON_SIZE}`} />
61+
</Button>
62+
</a>
63+
3264
{isConnected && address ? (
3365
<>
3466
{/* Connected state: address + optional AI key copy + manage */}

src/components/Header/DesktopNav.tsx

Lines changed: 2 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from 'react';
22
import { Link, useLocation } from 'react-router-dom';
3-
import { Globe, ChevronDown, Sparkles, Gamepad2, Rocket } from 'lucide-react';
3+
import { Globe, ChevronDown, Sparkles } from 'lucide-react';
44
import {
55
DropdownMenu,
66
DropdownMenuContent,
@@ -17,6 +17,7 @@ const DesktopNav = () => {
1717

1818
const navLinks = [
1919
{ to: "/about", label: "About" },
20+
{ to: "/alien-trip", label: "AlienTrip" },
2021
{ to: "/contact", label: "Contact" }
2122
];
2223

@@ -26,11 +27,6 @@ const DesktopNav = () => {
2627
{ to: "/conetworking", label: "CoNetWorKing", desc: "Connect with like-minded profits across the multiverse" }
2728
].sort((a, b) => a.label.localeCompare(b.label));
2829

29-
const appLinks = [
30-
{ href: "https://t.me/AlienFlowBot", label: "ACE AGameFlow", desc: "Telegram MiniApp — Play & Earn in the multiverse", icon: Gamepad2, external: true },
31-
{ to: "/alien-trip", label: "AlienTrip", desc: "Explore the cosmic journey experience", icon: Rocket, external: false }
32-
];
33-
3430
const languages = [
3531
{ code: 'us', name: 'English', lang: 'en' },
3632
{ code: 'es', name: 'Español', lang: 'es' },
@@ -96,45 +92,6 @@ const DesktopNav = () => {
9692
</DropdownMenuItem>
9793
))}
9894

99-
<DropdownMenuSeparator className="bg-white/10 my-2" />
100-
101-
<div className="px-4 py-1">
102-
<span className="text-[9px] font-nasalization text-alien-gold/50 tracking-[0.3em] uppercase">Apps</span>
103-
</div>
104-
105-
{appLinks.map((app) => (
106-
<DropdownMenuItem key={app.label} asChild>
107-
{app.external ? (
108-
<a
109-
href={app.href}
110-
target="_blank"
111-
rel="noopener noreferrer"
112-
className="flex items-center gap-3 p-4 rounded-xl hover:bg-alien-green/10 group transition-all"
113-
>
114-
<app.icon className="w-5 h-5 text-alien-gold group-hover:text-alien-green transition-colors" />
115-
<div>
116-
<h3 className="text-alien-gold group-hover:text-alien-green font-nasalization text-sm transition-colors">
117-
{app.label}
118-
</h3>
119-
<p className="text-[10px] text-gray-400 leading-relaxed mt-0.5">{app.desc}</p>
120-
</div>
121-
</a>
122-
) : (
123-
<Link
124-
to={app.to!}
125-
className="flex items-center gap-3 p-4 rounded-xl hover:bg-alien-green/10 group transition-all"
126-
>
127-
<app.icon className="w-5 h-5 text-alien-gold group-hover:text-alien-green transition-colors" />
128-
<div>
129-
<h3 className="text-alien-gold group-hover:text-alien-green font-nasalization text-sm transition-colors">
130-
{app.label}
131-
</h3>
132-
<p className="text-[10px] text-gray-400 leading-relaxed mt-0.5">{app.desc}</p>
133-
</div>
134-
</Link>
135-
)}
136-
</DropdownMenuItem>
137-
))}
13895
</DropdownMenuContent>
13996
</DropdownMenu>
14097

src/components/Header/MobileNav.tsx

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React, { useState } from 'react';
22
import { motion, AnimatePresence } from 'framer-motion';
33
import { Link } from 'react-router-dom';
4-
import { Globe, ChevronDown, Sparkles, Gamepad2, Rocket } from 'lucide-react';
4+
import { Globe, ChevronDown, Sparkles } from 'lucide-react';
55
import ConnectButton from '@/components/Header/ConnectButton';
66
import { translateTo } from '@/lib/translator';
77

@@ -103,34 +103,6 @@ const MobileNav = ({ isMenuOpen, setIsMenuOpen }: MobileNavProps) => {
103103
</Link>
104104
))}
105105

106-
{/* APPS Section */}
107-
<div className="border-t border-white/10 mt-2 pt-2">
108-
<span className="text-[9px] font-nasalization text-alien-gold/50 tracking-[0.3em] uppercase px-4 block mb-2">Apps</span>
109-
<a
110-
href="https://t.me/AlienFlowBot"
111-
target="_blank"
112-
rel="noopener noreferrer"
113-
className="flex items-center gap-3 p-4 border-b border-white/5 hover:bg-alien-green/10"
114-
onClick={() => setIsMenuOpen(false)}
115-
>
116-
<Gamepad2 className="w-5 h-5 text-alien-gold" />
117-
<div>
118-
<h4 className="text-alien-gold font-nasalization text-sm">ACE AGameFlow</h4>
119-
<p className="text-[10px] text-gray-500 mt-1">Telegram MiniApp — Play & Earn</p>
120-
</div>
121-
</a>
122-
<Link
123-
to="/alien-trip"
124-
className="flex items-center gap-3 p-4 hover:bg-alien-green/10"
125-
onClick={() => setIsMenuOpen(false)}
126-
>
127-
<Rocket className="w-5 h-5 text-alien-gold" />
128-
<div>
129-
<h4 className="text-alien-gold font-nasalization text-sm">AlienTrip</h4>
130-
<p className="text-[10px] text-gray-500 mt-1">Cosmic journey experience</p>
131-
</div>
132-
</Link>
133-
</div>
134106
</motion.div>
135107
)}
136108
</AnimatePresence>

src/pages/Academy.tsx

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@ import React, { useState } from 'react';
22
import { motion, AnimatePresence } from 'framer-motion';
33
import {
44
ShieldCheck, Coins, Leaf, Brain, GraduationCap,
5-
Zap, ExternalLink, ChevronDown, Award, CheckCircle2,
6-
Heart, Activity, Dna
5+
Zap, ExternalLink, ChevronDown, Award, CheckCircle2
76
} from 'lucide-react';
87
import { Button } from '@/components/ui/button';
98

10-
const LUCIDE_ICON_MAP: Record<string, React.ElementType> = { Heart, Activity, Dna };
9+
1110

1211
// --- DATA DEFINITIVA: 3 MÓDULOS CON 4 BLOQUES CADA UNO ---
1312
const academyModules = [
@@ -104,11 +103,8 @@ const partnerCategories = [
104103
{
105104
label: 'HEALTHFLOW',
106105
partners: [
107-
{ name: "Meslo Ltd", url: "https://meslo.com/", logo: "", lucideIcon: "Heart" },
108-
{ name: "Motus DAO", url: "https://motusdao.io/", logo: "", lucideIcon: "Activity" },
109-
{ name: "My DNA Bank", url: "https://mydnabank.com/", logo: "", lucideIcon: "Dna" },
110106
{ name: "Proton", url: "https://proton.me/", logo: "https://upload.wikimedia.org/wikipedia/commons/4/4a/Proton_Technologies_AG_logo.svg" },
111-
{ name: "Yazio", url: "https://www.yazio.com/", logo: "https://upload.wikimedia.org/wikipedia/commons/5/5c/YAZIO_Logo.svg" }
107+
{ name: "WHO", url: "https://www.who.int/", logo: "https://upload.wikimedia.org/wikipedia/commons/2/26/World_Health_Organization_Logo.svg" }
112108
]
113109
},
114110
{
@@ -304,19 +300,15 @@ const Academy = () => {
304300
className="flex items-center gap-3 group hover:scale-[1.01] transition-all duration-300"
305301
>
306302
<div className="w-10 h-10 md:w-11 md:h-11 rounded-xl bg-white/5 p-1.5 border border-white/10 group-hover:border-alien-green/50 group-hover:bg-alien-green/10 transition-all duration-300 flex items-center justify-center overflow-hidden">
307-
{(p as any).lucideIcon && LUCIDE_ICON_MAP[(p as any).lucideIcon] ? (
308-
(() => { const Icon = LUCIDE_ICON_MAP[(p as any).lucideIcon]; return <Icon className="w-6 h-6 text-gray-400 group-hover:text-alien-green transition-colors duration-300" />; })()
309-
) : (
310-
<img
311-
src={p.logo}
312-
alt={p.name}
313-
className="w-full h-full object-contain grayscale group-hover:grayscale-0 transition-all duration-500 scale-90 group-hover:scale-100"
314-
onError={(e) => {
315-
e.currentTarget.style.opacity = '0.3';
316-
e.currentTarget.style.filter = 'none';
317-
}}
318-
/>
319-
)}
303+
<img
304+
src={p.logo}
305+
alt={p.name}
306+
className="w-full h-full object-contain grayscale group-hover:grayscale-0 transition-all duration-500 scale-90 group-hover:scale-100"
307+
onError={(e) => {
308+
e.currentTarget.style.opacity = '0.3';
309+
e.currentTarget.style.filter = 'none';
310+
}}
311+
/>
320312
</div>
321313
<span className="text-[11px] md:text-[12px] text-gray-500 group-hover:text-white transition-colors duration-300 tracking-tight font-medium truncate max-w-[100px]">
322314
{p.name}

0 commit comments

Comments
 (0)