|
|
|
|
@@ -39,15 +39,14 @@ const generateConfettiTransform = () => {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const noMessages = [
|
|
|
|
|
"Please kar lo na 🥺", "Main tum se bohat pyar karta hoon ❤️", "Ab to yes kar do na 🥹", "Please Jully, maan jao na ❤️", "Mere liye yes kar do 💕", "Last time bol raha hoon, yes kar do ❤️"
|
|
|
|
|
"Please kar lo na 🥺", "Main tum se bohat pyar karta hoon ❤️", "Ab to yes kar do na 🥹", "Please Bisma, maan jao na ❤️", "Mere liye yes kar do 💕", "Last time bol raha hoon, yes kar do ❤️"
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
export default function LandingPage() {
|
|
|
|
|
const [noClickCount, setNoClickCount] = useState(0);
|
|
|
|
|
const [showCelebration, setShowCelebration] = useState(false);
|
|
|
|
|
const [proposalTitle, setProposalTitle] = useState("Jully, will you marry me?");
|
|
|
|
|
const [proposalDescription, setProposalDescription] = useState("My dearest Jully, every moment with you is a treasure. You are my greatest joy, my best friend, and the love of my life. Will you make me the happiest person and say yes to forever?");
|
|
|
|
|
const [showNoButton, setShowNoButton] = useState(true);
|
|
|
|
|
const [proposalTitle, setProposalTitle] = useState("Bisma, will you marry me?");
|
|
|
|
|
const [proposalDescription, setProposalDescription] = useState("My dearest Bisma, every moment with you is a treasure. You are my greatest joy, my best friend, and the love of my life. Will you make me the happiest person and say yes to forever?");
|
|
|
|
|
|
|
|
|
|
const confettiPieces = useMemo(() => {
|
|
|
|
|
if (!showCelebration) return [];
|
|
|
|
|
@@ -79,21 +78,21 @@ export default function LandingPage() {
|
|
|
|
|
}, [showCelebration]);
|
|
|
|
|
|
|
|
|
|
const handleYes = () => {
|
|
|
|
|
setProposalTitle("I love you Jully ❤️");
|
|
|
|
|
setProposalTitle("I love you Bisma ❤️");
|
|
|
|
|
setProposalDescription(""); // Clear description on Yes
|
|
|
|
|
setShowCelebration(true);
|
|
|
|
|
setShowNoButton(false);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleNo = () => {
|
|
|
|
|
if (noClickCount < noMessages.length - 1) {
|
|
|
|
|
setNoClickCount(prev => prev + 1);
|
|
|
|
|
setProposalDescription(noMessages[noClickCount]);
|
|
|
|
|
} else {
|
|
|
|
|
// After 6 'No' clicks, remove 'No' button and prompt for 'Yes'
|
|
|
|
|
setShowNoButton(false);
|
|
|
|
|
setProposalDescription("Seriously, Jully? Just say yes! ❤️");
|
|
|
|
|
}
|
|
|
|
|
setNoClickCount(prev => {
|
|
|
|
|
const nextCount = prev + 1;
|
|
|
|
|
if (nextCount < noMessages.length) {
|
|
|
|
|
setProposalDescription(noMessages[nextCount]);
|
|
|
|
|
} else {
|
|
|
|
|
setProposalDescription("Seriously, Bisma? Just say yes! ❤️"); // Final plea
|
|
|
|
|
}
|
|
|
|
|
return nextCount;
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const getHeroButtons = () => {
|
|
|
|
|
@@ -102,8 +101,11 @@ export default function LandingPage() {
|
|
|
|
|
}
|
|
|
|
|
const buttons = [];
|
|
|
|
|
buttons.push({ text: "Yes", onClick: handleYes });
|
|
|
|
|
if (showNoButton) {
|
|
|
|
|
if (noClickCount < noMessages.length) {
|
|
|
|
|
buttons.push({ text: "No", onClick: handleNo });
|
|
|
|
|
} else {
|
|
|
|
|
// After 6 'No' clicks, show two 'Yes' buttons
|
|
|
|
|
buttons.push({ text: "Yes", onClick: handleYes });
|
|
|
|
|
}
|
|
|
|
|
return buttons;
|
|
|
|
|
};
|
|
|
|
|
@@ -123,7 +125,7 @@ export default function LandingPage() {
|
|
|
|
|
>
|
|
|
|
|
<ReactLenis root>
|
|
|
|
|
<div id="nav" data-section="nav">
|
|
|
|
|
<NavbarStyleApple navItems={[]} brandName="For Jully" />
|
|
|
|
|
<NavbarStyleApple navItems={[]} brandName="For Bisma" />
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="proposal" data-section="proposal">
|
|
|
|
|
@@ -135,13 +137,13 @@ export default function LandingPage() {
|
|
|
|
|
title={proposalTitle}
|
|
|
|
|
description={proposalDescription}
|
|
|
|
|
buttons={getHeroButtons()}
|
|
|
|
|
imageSrc={showCelebration ? "https://images.unsplash.com/photo-1621607502394-a204e5d6d3d7?q=80&w=1887&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" : "http://img.b2bpic.net/free-photo/christmas-celebration-concept_23-2150976990.jpg"}
|
|
|
|
|
imageAlt={showCelebration ? "USA-style engagement ring" : "Cute romantic couple illustration for proposal"}
|
|
|
|
|
imageSrc={showCelebration ? "https://images.unsplash.com/photo-1621607502394-a204e5d6d3d7?q=80&w=1887&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" : "https://images.unsplash.com/photo-1540026226198-4a413d9a3b2a?q=80&w=1780&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"}
|
|
|
|
|
imageAlt={showCelebration ? "USA-style engagement ring" : "Romantic abstract background"}
|
|
|
|
|
mediaAnimation="slide-up"
|
|
|
|
|
fixedMediaHeight={true}
|
|
|
|
|
avatars={[
|
|
|
|
|
{
|
|
|
|
|
src: "http://img.b2bpic.net/free-photo/medium-shot-anime-couple-hugging_23-2150970674.jpg", alt: "Jully's profile picture"
|
|
|
|
|
src: "http://img.b2bpic.net/free-photo/medium-shot-anime-couple-hugging_23-2150970674.jpg", alt: "Bisma's profile picture"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
src: "http://img.b2bpic.net/free-photo/medium-shot-anime-couple-hugging_23-2150970715.jpg", alt: "My profile picture"
|
|
|
|
|
@@ -254,4 +256,4 @@ export default function LandingPage() {
|
|
|
|
|
</ReactLenis>
|
|
|
|
|
</ThemeProvider>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|