Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1433766505 | |||
| a2f1c979fe |
@@ -11,8 +11,29 @@ import TestimonialCardSix from "@/components/sections/testimonial/TestimonialCar
|
|||||||
import FaqBase from "@/components/sections/faq/FaqBase";
|
import FaqBase from "@/components/sections/faq/FaqBase";
|
||||||
import FooterMedia from "@/components/sections/footer/FooterMedia";
|
import FooterMedia from "@/components/sections/footer/FooterMedia";
|
||||||
import { Sparkles, Zap, Brain, Target, Flame, Award, HelpCircle } from "lucide-react";
|
import { Sparkles, Zap, Brain, Target, Flame, Award, HelpCircle } from "lucide-react";
|
||||||
|
import { useState } from "react";
|
||||||
|
|
||||||
export default function LandingPage() {
|
export default function LandingPage() {
|
||||||
|
const [isGmailModalOpen, setIsGmailModalOpen] = useState(false);
|
||||||
|
const [userEmail, setUserEmail] = useState("");
|
||||||
|
const [isVoiceGuideActive, setIsVoiceGuideActive] = useState(false);
|
||||||
|
|
||||||
|
const handleGmailLogin = () => {
|
||||||
|
setIsGmailModalOpen(true);
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleVoiceGuideToggle = () => {
|
||||||
|
setIsVoiceGuideActive(!isVoiceGuideActive);
|
||||||
|
if (!isVoiceGuideActive) {
|
||||||
|
// Trigger voice guide intro
|
||||||
|
const utterance = new SpeechSynthesisUtterance(
|
||||||
|
"Welcome to LevelUp. I'm your personal voice guide. I'll help you navigate through your RPG journey and provide real-time guidance as you progress."
|
||||||
|
);
|
||||||
|
utterance.rate = 0.9;
|
||||||
|
window.speechSynthesis.speak(utterance);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ThemeProvider
|
<ThemeProvider
|
||||||
defaultButtonVariant="shift-hover"
|
defaultButtonVariant="shift-hover"
|
||||||
@@ -60,6 +81,60 @@ export default function LandingPage() {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{/* Authentication Modal */}
|
||||||
|
{isGmailModalOpen && (
|
||||||
|
<div className="fixed inset-0 bg-black/50 z-50 flex items-center justify-center">
|
||||||
|
<div className="bg-white rounded-lg p-8 max-w-md w-full mx-4 shadow-xl">
|
||||||
|
<h2 className="text-2xl font-bold mb-4">Login with Gmail</h2>
|
||||||
|
<p className="text-gray-600 mb-6">
|
||||||
|
Sign in to unlock your personal voice guide and sync your progress across devices.
|
||||||
|
</p>
|
||||||
|
<input
|
||||||
|
type="email"
|
||||||
|
placeholder="Enter your Gmail address"
|
||||||
|
value={userEmail}
|
||||||
|
onChange={(e) => setUserEmail(e.target.value)}
|
||||||
|
className="w-full px-4 py-2 border border-gray-300 rounded-lg mb-4 focus:outline-none focus:ring-2 focus:ring-blue-500"
|
||||||
|
/>
|
||||||
|
<button
|
||||||
|
onClick={() => {
|
||||||
|
// Simulate Gmail login
|
||||||
|
if (userEmail) {
|
||||||
|
setIsGmailModalOpen(false);
|
||||||
|
setUserEmail("");
|
||||||
|
alert(`Logged in as ${userEmail}`);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
className="w-full bg-blue-600 text-white py-2 rounded-lg font-semibold hover:bg-blue-700 mb-3"
|
||||||
|
>
|
||||||
|
Sign In
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
onClick={() => setIsGmailModalOpen(false)}
|
||||||
|
className="w-full bg-gray-200 text-gray-800 py-2 rounded-lg font-semibold hover:bg-gray-300"
|
||||||
|
>
|
||||||
|
Cancel
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{/* Voice Guide Control */}
|
||||||
|
<div className="fixed bottom-6 right-6 z-40">
|
||||||
|
<button
|
||||||
|
onClick={handleVoiceGuideToggle}
|
||||||
|
className={`p-4 rounded-full shadow-lg font-semibold transition-all ${
|
||||||
|
isVoiceGuideActive
|
||||||
|
? "bg-green-600 text-white hover:bg-green-700"
|
||||||
|
: "bg-gray-800 text-white hover:bg-gray-900"
|
||||||
|
}`}
|
||||||
|
aria-label="Toggle voice guide"
|
||||||
|
title={isVoiceGuideActive ? "Voice Guide ON" : "Voice Guide OFF"}
|
||||||
|
>
|
||||||
|
🎙️
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div id="features" data-section="features">
|
<div id="features" data-section="features">
|
||||||
<FeatureCardTwentyThree
|
<FeatureCardTwentyThree
|
||||||
title="Core Features"
|
title="Core Features"
|
||||||
@@ -104,16 +179,13 @@ export default function LandingPage() {
|
|||||||
"E-Rank: Foundation Builder", "D-Rank: Emerging Warrior", "C-Rank: Skilled Practitioner", "B-Rank: Advanced Master", "A-Rank: Elite Performer", "S-Rank: Legendary Status", "SS-Rank: Mythical Power", "SSS-Rank: Ascended Being"],
|
"E-Rank: Foundation Builder", "D-Rank: Emerging Warrior", "C-Rank: Skilled Practitioner", "B-Rank: Advanced Master", "A-Rank: Elite Performer", "S-Rank: Legendary Status", "SS-Rank: Mythical Power", "SSS-Rank: Ascended Being"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "2", value: "∞", title: "Infinite Growth Potential", items: [
|
id: "2", value: "∞", title: "Infinite Growth Potential", items: ["No hard level cap", "Continuous XP gain", "Compound stat growth", "Legacy progression"],
|
||||||
"No hard level cap", "Continuous XP gain", "Compound stat growth", "Legacy progression"],
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "3", value: "3x", title: "Streak Multipliers", items: [
|
id: "3", value: "3x", title: "Streak Multipliers", items: ["7-day streak: 1.5x XP", "14-day streak: 2x XP", "30-day streak: 3x XP bonus", "Consistency rewards"],
|
||||||
"7-day streak: 1.5x XP", "14-day streak: 2x XP", "30-day streak: 3x XP bonus", "Consistency rewards"],
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "4", value: "10+", title: "Quest Types", items: [
|
id: "4", value: "10+", title: "Quest Types", items: ["Daily micro-quests", "Weekly challenges", "Boss missions", "Seasonal events"],
|
||||||
"Daily micro-quests", "Weekly challenges", "Boss missions", "Seasonal events"],
|
|
||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
@@ -161,28 +233,19 @@ export default function LandingPage() {
|
|||||||
plans={[
|
plans={[
|
||||||
{
|
{
|
||||||
id: "micro", badge: "Daily Micro-Quest", badgeIcon: Zap,
|
id: "micro", badge: "Daily Micro-Quest", badgeIcon: Zap,
|
||||||
price: "50-100 XP", subtitle: "15-30 minute challenges", buttons: [
|
price: "50-100 XP", subtitle: "15-30 minute challenges", buttons: [{ text: "Start Quest" }, { text: "Skip for Now" }],
|
||||||
{ text: "Start Quest" },
|
|
||||||
{ text: "Skip for Now" },
|
|
||||||
],
|
|
||||||
features: [
|
features: [
|
||||||
"Tailored to your stats", "Difficulty scaling", "Bonus multipliers available", "Real-time progress tracking", "Instant reward gratification"],
|
"Tailored to your stats", "Difficulty scaling", "Bonus multipliers available", "Real-time progress tracking", "Instant reward gratification"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "weekly", badge: "Weekly Challenge", badgeIcon: Target,
|
id: "weekly", badge: "Weekly Challenge", badgeIcon: Target,
|
||||||
price: "500-1000 XP", subtitle: "7-day commitment challenges", buttons: [
|
price: "500-1000 XP", subtitle: "7-day commitment challenges", buttons: [{ text: "Start Challenge" }, { text: "View Details" }],
|
||||||
{ text: "Start Challenge" },
|
|
||||||
{ text: "View Details" },
|
|
||||||
],
|
|
||||||
features: [
|
features: [
|
||||||
"Major habit formation", "Streak multipliers", "Ranked difficulty levels", "Milestone checkpoints", "Community leaderboards"],
|
"Major habit formation", "Streak multipliers", "Ranked difficulty levels", "Milestone checkpoints", "Community leaderboards"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "boss", badge: "Boss Mission", badgeIcon: Flame,
|
id: "boss", badge: "Boss Mission", badgeIcon: Flame,
|
||||||
price: "2000-5000 XP", subtitle: "30+ day epic challenges", buttons: [
|
price: "2000-5000 XP", subtitle: "30+ day epic challenges", buttons: [{ text: "Accept Mission" }, { text: "Learn More" }],
|
||||||
{ text: "Accept Mission" },
|
|
||||||
{ text: "Learn More" },
|
|
||||||
],
|
|
||||||
features: [
|
features: [
|
||||||
"Life-changing goals", "Rank progression unlocks", "Exclusive rewards", "AI mentor guidance", "Permanent stat boosts"],
|
"Life-changing goals", "Rank progression unlocks", "Exclusive rewards", "AI mentor guidance", "Permanent stat boosts"],
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user