diff --git a/src/App.jsx b/src/App.jsx index 514b53d..20dc15b 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -26,6 +26,7 @@ function App() { } /> } /> } /> + } /> diff --git a/src/assets/create.jpg b/src/assets/create.jpg new file mode 100644 index 0000000..a3e6de8 Binary files /dev/null and b/src/assets/create.jpg differ diff --git a/src/assets/girl.jpg b/src/assets/girl.jpg deleted file mode 100644 index b71f3a5..0000000 Binary files a/src/assets/girl.jpg and /dev/null differ diff --git a/src/assets/transact.jpg b/src/assets/transact.jpg index a3e6de8..b71f3a5 100644 Binary files a/src/assets/transact.jpg and b/src/assets/transact.jpg differ diff --git a/src/content/blog/communicate.md b/src/content/home/communicate.md similarity index 100% rename from src/content/blog/communicate.md rename to src/content/home/communicate.md diff --git a/src/content/blog/create.md b/src/content/home/create.md similarity index 96% rename from src/content/blog/create.md rename to src/content/home/create.md index d1212c2..92df504 100644 --- a/src/content/blog/create.md +++ b/src/content/home/create.md @@ -2,7 +2,7 @@ title: "Create" description: "Build documents, videos, and creative assets collaboratively with AI assistance" icon: "Zap" -image: "heart.jpg" +image: "create.jpg" order: 2 slug: "create" diff --git a/src/content/blog/develop.md b/src/content/home/develop.md similarity index 100% rename from src/content/blog/develop.md rename to src/content/home/develop.md diff --git a/src/content/blog/discover.md b/src/content/home/discover.md similarity index 100% rename from src/content/blog/discover.md rename to src/content/home/discover.md diff --git a/src/content/blog/share.md b/src/content/home/share.md similarity index 100% rename from src/content/blog/share.md rename to src/content/home/share.md diff --git a/src/content/blog/transact.md b/src/content/home/transact.md similarity index 100% rename from src/content/blog/transact.md rename to src/content/home/transact.md diff --git a/src/pages/BlogPost.jsx b/src/pages/BlogPost.jsx index 45dc17f..dc98a18 100644 --- a/src/pages/BlogPost.jsx +++ b/src/pages/BlogPost.jsx @@ -44,7 +44,12 @@ const BlogPost = () => { contentType = 'freezone'; currentSlug = pathSegments[1]; basePath = '../content/freezone/'; - } else { + } else if (pathSegments[0] === 'home' && pathSegments.length >= 2) { + contentType = 'home'; + currentSlug = pathSegments[1]; + basePath = '../content/home/'; + } + else { setError('Invalid URL path for content.'); setLoading(false); return; @@ -108,6 +113,8 @@ const BlogPost = () => { return '/technology'; case 'freezone': return '/freezone'; + case 'home': + return '/'; // Or a more specific home content listing page if it exists default: return '/'; } diff --git a/src/pages/Home.jsx b/src/pages/Home.jsx index 8778b54..27ac75f 100644 --- a/src/pages/Home.jsx +++ b/src/pages/Home.jsx @@ -1,7 +1,7 @@ import React, { useEffect, useState } from 'react'; import { motion } from 'framer-motion'; import { Link } from 'react-router-dom'; -import { Shield, Brain, Users, Lock, Zap, Heart } from 'lucide-react'; +import { Shield, Brain, Users, Lock, Zap, Heart, MessageSquare, Lightbulb, Globe, Code, Share2, DollarSign } from 'lucide-react'; import HeroSection from '../components/HeroSection'; import Section from '../components/Section'; import FeatureCard from '../components/FeatureCard'; @@ -17,108 +17,51 @@ import transactImage from '../assets/transact.jpg'; // Digital transaction import developImage from '../assets/develop.jpg'; // Development scene import communicateImage from '../assets/communicate.jpg'; // Communication scene -// Use Vite's import.meta.glob to import all capability markdown files -const capabilityModules = import.meta.glob('../blogs/capability_*.md', { as: 'raw', eager: true }); +// Use Vite's import.meta.glob to import all home content markdown files and images +const homeModules = import.meta.glob('../content/home/*.md', { as: 'raw', eager: true }); +const imageModules = import.meta.glob('../assets/*.jpg', { eager: true, import: 'default' }); +const iconComponents = { + Shield, Brain, Users, Lock, Zap, Heart, MessageSquare, Lightbulb, Globe, Code, Share2, DollarSign +}; const Home = () => { - const [capabilities, setCapabilities] = useState([]); + const [homeContent, setHomeContent] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { - const loadCapabilities = async () => { + const loadHomeContent = async () => { try { - const loadedCapabilities = []; + const loadedHomeContent = []; - for (const path in capabilityModules) { - const content = capabilityModules[path]; + for (const path in homeModules) { + const content = homeModules[path]; const { data: frontmatter } = matter(content); - // Map icon strings to actual components - const iconMap = { - 'Brain': , - 'Zap': , - 'Shield': , - 'Users': , - 'Lock': , - 'Heart': - }; + const IconComponent = iconComponents[frontmatter.iconname]; + const imagePath = `../assets/${frontmatter.image}`; // Construct full path + const importedImage = imageModules[imagePath]; - // Map image paths to actual imports - const imageMap = { - '/src/assets/communicate.jpg': communicateImage, - '/src/assets/heart.jpg': heartTechImage, - '/src/assets/discover.jpg': networkImage, - '/src/assets/develop.jpg': developImage, - '/src/assets/share.jpg': privacyImage, - '/src/assets/transact.jpg': transactImage - }; - - loadedCapabilities.push({ - icon: iconMap[frontmatter.icon] || , + loadedHomeContent.push({ + icon: IconComponent ? : , // Default icon title: frontmatter.title, description: frontmatter.description, - image: imageMap[frontmatter.image] || heartTechImage, + image: importedImage, order: frontmatter.order || 999, slug: frontmatter.slug || frontmatter.title.toLowerCase().replace(/\s+/g, '-') }); } // Sort by order - loadedCapabilities.sort((a, b) => a.order - b.order); - setCapabilities(loadedCapabilities); + loadedHomeContent.sort((a, b) => a.order - b.order); + setHomeContent(loadedHomeContent); } catch (error) { - console.error('Error loading capabilities:', error); - // Fallback to static data if loading fails - setCapabilities([ - { - icon: , - title: "Communicate", - description: "Secure messaging, voice, and video chat — all managed privately by your Personal Agent", - image: communicateImage, - slug: "communicate" - }, - { - icon: , - title: "Create", - description: "Build documents, videos, and creative assets collaboratively with AI assistance", - image: heartTechImage, - slug: "create" - }, - { - icon: , - title: "Discover", - description: "Browse and search using authentic sources and AI assistance while maintaining privacy", - image: networkImage, - slug: "discover" - }, - { - icon: , - title: "Develop", - description: "Build and deploy applications faster with local AI and secure storage", - image: developImage, - slug: "develop" - }, - { - icon: , - title: "Share", - description: "Distribute content without central platforms — sovereignly and securely", - image: privacyImage, - slug: "share" - }, - { - icon: , - title: "Transact", - description: "Send and receive digital value safely and without intermediaries", - image: transactImage, - slug: "transact" - } - ]); + console.error('Error loading home content:', error); } finally { setLoading(false); } }; - loadCapabilities(); + loadHomeContent(); }, []); const benefits = [ @@ -289,13 +232,13 @@ const Home = () => { )) ) : ( - capabilities.map((capability, index) => ( - + homeContent.map((item, index) => ( +