Compare commits
18 Commits
version_2_
...
version_3_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6e42f1b457 | ||
| c302c1c502 | |||
| e1e7ea0803 | |||
| ed0dad5b37 | |||
| 9fb22866ba | |||
| 9848e4145c | |||
| 1356930036 | |||
| 6d40960a81 | |||
| 7e2496df8f | |||
| 0028067dcb | |||
| a4ed2a0f23 | |||
| 7abcb06318 | |||
| 52db58be45 | |||
| 476c73d835 | |||
| 7823caa101 | |||
| 7aa1d5e449 | |||
| 87bcca1af1 | |||
| 925ef781a6 |
@@ -14,7 +14,8 @@ import JourneysSection from './HomePage/sections/Journeys';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
|
||||
import ReviewsSection from './HomePage/sections/Reviews';export default function HomePage(): React.JSX.Element {
|
||||
import ReviewsSection from './HomePage/sections/Reviews';
|
||||
import NewsletterSection from './HomePage/sections/Newsletter';export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<StyleProvider siteBackground="none" heroBackground="none" buttonVariant="default">
|
||||
<SiteBackgroundSlot />
|
||||
@@ -31,6 +32,7 @@ import ReviewsSection from './HomePage/sections/Reviews';export default function
|
||||
<ReviewsSection />
|
||||
|
||||
<ContactSection />
|
||||
<NewsletterSection />
|
||||
</StyleProvider>
|
||||
);
|
||||
}
|
||||
|
||||
55
src/pages/HomePage/sections/Newsletter.tsx
Normal file
55
src/pages/HomePage/sections/Newsletter.tsx
Normal file
@@ -0,0 +1,55 @@
|
||||
import { useState } from "react"
|
||||
import { motion } from "motion/react"
|
||||
import TextAnimation from "@/components/ui/TextAnimation"
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal"
|
||||
import Input from "@/components/ui/Input"
|
||||
import Button from "@/components/ui/Button"
|
||||
import Tag from "@/components/ui/Tag"
|
||||
|
||||
export default function Newsletter() {
|
||||
const [email, setEmail] = useState("")
|
||||
|
||||
const handleSubmit = (e: React.FormEvent) => {
|
||||
e.preventDefault()
|
||||
// Handle submit
|
||||
setEmail("")
|
||||
}
|
||||
|
||||
return (
|
||||
<section className="relative w-full py-24 bg-background" data-webild-section="newsletter">
|
||||
<div className="w-content-width mx-auto">
|
||||
<ScrollReveal variant="fade">
|
||||
<div className="flex flex-col items-center text-center max-w-2xl mx-auto">
|
||||
<Tag text="Newsletter" className="mb-6" />
|
||||
<TextAnimation
|
||||
text="Join Our Mailing List"
|
||||
variant="fade-blur"
|
||||
tag="h2"
|
||||
className="text-4xl md:text-5xl font-bold text-foreground mb-6"
|
||||
gradientText={false}
|
||||
/>
|
||||
<p className="text-lg text-accent mb-10">
|
||||
Sign up for our newsletter to receive exclusive offers, seasonal menus, and updates directly to your inbox.
|
||||
</p>
|
||||
|
||||
<form onSubmit={handleSubmit} className="w-full flex flex-col sm:flex-row gap-4">
|
||||
<Input
|
||||
type="email"
|
||||
placeholder="Enter your email address"
|
||||
value={email}
|
||||
onChange={(e) => setEmail(e.target.value)}
|
||||
required
|
||||
className="flex-1"
|
||||
/>
|
||||
<Button
|
||||
text="Subscribe"
|
||||
variant="primary"
|
||||
className="w-full sm:w-auto"
|
||||
/>
|
||||
</form>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
</section>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user