Merge version_4 into main
Merge version_4 into main
This commit was merged in pull request #5.
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import { useEffect, useRef } from "react";
|
||||
import BlogCardTwo from '@/components/sections/blog/BlogCardTwo';
|
||||
import ContactCenter from '@/components/sections/contact/ContactCenter';
|
||||
import FeatureBento from '@/components/sections/feature/FeatureBento';
|
||||
@@ -14,6 +15,18 @@ import TextAbout from '@/components/sections/about/TextAbout';
|
||||
import { Calendar, Database, Zap } from "lucide-react";
|
||||
|
||||
export default function LandingPage() {
|
||||
useEffect(() => {
|
||||
// Initialize persistence listener for scratch data
|
||||
const handleScratchSave = (event: any) => {
|
||||
const { pathData } = event.detail;
|
||||
const existingData = JSON.parse(localStorage.getItem('wall-scribbles') || '[]');
|
||||
existingData.push(pathData);
|
||||
localStorage.setItem('wall-scribbles', JSON.stringify(existingData));
|
||||
};
|
||||
window.addEventListener('scratch-added' as any, handleScratchSave);
|
||||
return () => window.removeEventListener('scratch-added' as any, handleScratchSave);
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="icon-arrow"
|
||||
@@ -31,12 +44,9 @@ export default function LandingPage() {
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleCentered
|
||||
navItems={[
|
||||
{
|
||||
name: "Home", id: "hero"},
|
||||
{
|
||||
name: "About", id: "about"},
|
||||
{
|
||||
name: "Scratch Wall", id: "feature"},
|
||||
{ name: "Home", id: "hero" },
|
||||
{ name: "About", id: "about" },
|
||||
{ name: "Scratch Wall", id: "feature" },
|
||||
]}
|
||||
brandName="OldWall"
|
||||
/>
|
||||
@@ -44,14 +54,13 @@ export default function LandingPage() {
|
||||
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroLogoBillboard
|
||||
background={{
|
||||
variant: "gradient-bars"}}
|
||||
background={{ variant: "gradient-bars" }}
|
||||
logoText="Mark Your Time"
|
||||
description="Leave your mark on the ancient stones. Use the sharp stone to carve your days and memories into the eternal wall."
|
||||
buttons={[
|
||||
{
|
||||
text: "Begin Scratching", onClick: () => {
|
||||
// Enabling wall interaction mode & persistence layer
|
||||
text: "Begin Scratching",
|
||||
onClick: () => {
|
||||
window.dispatchEvent(new CustomEvent('enable-scratch-wall'));
|
||||
const section = document.getElementById('feature');
|
||||
if (section) {
|
||||
@@ -77,15 +86,9 @@ export default function LandingPage() {
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
features={[
|
||||
{
|
||||
title: "Realtime Carving", description: "Dynamic scratching interaction using custom stone-cursor.", bentoComponent: "reveal-icon", icon: Zap,
|
||||
},
|
||||
{
|
||||
title: "Daily Count", description: "Mark every passing day on the wall like a prisoner.", bentoComponent: "reveal-icon", icon: Calendar,
|
||||
},
|
||||
{
|
||||
title: "Persistent Memory", description: "Your carvings persist every time you visit.", bentoComponent: "reveal-icon", icon: Database,
|
||||
},
|
||||
{ title: "Realtime Carving", description: "Dynamic scratching interaction using custom stone-cursor.", bentoComponent: "reveal-icon", icon: Zap },
|
||||
{ title: "Daily Count", description: "Mark every passing day on the wall like a prisoner.", bentoComponent: "reveal-icon", icon: Calendar },
|
||||
{ title: "Persistent Memory", description: "Your carvings persist every time you visit via local storage sync.", bentoComponent: "reveal-icon", icon: Database },
|
||||
]}
|
||||
title="Interactive Wall Canvas"
|
||||
description="Experience a realistic interface where every move leaves a mark."
|
||||
@@ -99,12 +102,9 @@ export default function LandingPage() {
|
||||
title="Wall Activity"
|
||||
tag="Live Stats"
|
||||
metrics={[
|
||||
{
|
||||
id: "m1", value: "1,204", description: "Carvings Made"},
|
||||
{
|
||||
id: "m2", value: "89", description: "Days Recorded"},
|
||||
{
|
||||
id: "m3", value: "24/7", description: "Always Active"},
|
||||
{ id: "m1", value: "1,204", description: "Carvings Made" },
|
||||
{ id: "m2", value: "89", description: "Days Recorded" },
|
||||
{ id: "m3", value: "24/7", description: "Always Active" },
|
||||
]}
|
||||
metricsAnimation="slide-up"
|
||||
/>
|
||||
@@ -117,21 +117,9 @@ export default function LandingPage() {
|
||||
gridVariant="uniform-all-items-equal"
|
||||
useInvertedBackground={false}
|
||||
testimonials={[
|
||||
{
|
||||
id: "1", name: "Alex R.", role: "User", company: "Explorer", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/brick-tiled-work-texture-background_1194-612555.jpg"},
|
||||
{
|
||||
id: "2", name: "Sarah K.", role: "Artist", company: "Creative", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/details-carved-stones-top-portico-beautiful-stone-carvings-history-heritage-ancient-civilizations-details-temple-aegean-region-turkey_166373-3608.jpg"},
|
||||
{
|
||||
id: "3", name: "Mark D.", role: "Writer", company: "Indie", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/stone-texture-background_1194-8592.jpg"},
|
||||
{
|
||||
id: "4", name: "Emma L.", role: "Traveler", company: "Global", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pebbles-hollow-metal-pattern_1252-1066.jpg"},
|
||||
{
|
||||
id: "5", name: "John P.", role: "Historian", company: "Archives", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/stone-texture-background_1194-8590.jpg"},
|
||||
{ id: "1", name: "Alex R.", role: "User", company: "Explorer", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/brick-tiled-work-texture-background_1194-612555.jpg" },
|
||||
{ id: "2", name: "Sarah K.", role: "Artist", company: "Creative", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/details-carved-stones-top-portico-beautiful-stone-carvings-history-heritage-ancient-civilizations-details-temple-aegean-region-turkey_166373-3608.jpg" },
|
||||
{ id: "3", name: "Mark D.", role: "Writer", company: "Indie", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/stone-texture-background_1194-8592.jpg" },
|
||||
]}
|
||||
title="Wall Voices"
|
||||
description="Thoughts from those who left their marks."
|
||||
@@ -146,12 +134,7 @@ export default function LandingPage() {
|
||||
title="Wall Chronicles"
|
||||
description="Read about the memories left behind."
|
||||
blogs={[
|
||||
{
|
||||
id: "b1", category: "Memory", title: "First Mark", excerpt: "The story of why we started.", imageSrc: "http://img.b2bpic.net/free-photo/stone-texture_1194-5745.jpg", authorName: "Admin", authorAvatar: "http://img.b2bpic.net/free-photo/soft-concrete-texture_1194-9007.jpg", date: "Jan 1, 2025"},
|
||||
{
|
||||
id: "b2", category: "Art", title: "Digital Grit", excerpt: "Creating the stone aesthetic.", imageSrc: "http://img.b2bpic.net/free-photo/old-wall-with-peeled-plaster-background_1252-1046.jpg", authorName: "Admin", authorAvatar: "http://img.b2bpic.net/free-photo/brick-old-building-exterior_23-2147764372.jpg", date: "Jan 5, 2025"},
|
||||
{
|
||||
id: "b3", category: "Tech", title: "Persistence", excerpt: "How we store your thoughts.", imageSrc: "http://img.b2bpic.net/free-photo/fragment-old-grungy-texture-with-chipped-paint-cracks-grey-concrete-wall-cement-surface_150588-119.jpg", authorName: "Admin", authorAvatar: "http://img.b2bpic.net/free-photo/cracked-concrete-wall_23-2148399198.jpg", date: "Jan 10, 2025"},
|
||||
{ id: "b1", category: "Memory", title: "First Mark", excerpt: "The story of why we started.", imageSrc: "http://img.b2bpic.net/free-photo/stone-texture_1194-5745.jpg", authorName: "Admin", authorAvatar: "http://img.b2bpic.net/free-photo/soft-concrete-texture_1194-9007.jpg", date: "Jan 1, 2025" },
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -159,8 +142,7 @@ export default function LandingPage() {
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactCenter
|
||||
useInvertedBackground={false}
|
||||
background={{
|
||||
variant: "gradient-bars"}}
|
||||
background={{ variant: "gradient-bars" }}
|
||||
tag="Reach Out"
|
||||
title="Contact Us"
|
||||
description="Questions about the wall?"
|
||||
|
||||
Reference in New Issue
Block a user