From 16638b2f0b2a78472089467e9c5e41df428a23ea Mon Sep 17 00:00:00 2001 From: selvi Date: Wed, 30 Jul 2025 21:07:27 +0530 Subject: [PATCH] home page project updated --- app/(homes)/home-1/page.jsx | 2 + components/footers/Footer1.jsx | 5 +- components/homes/home-1/project.jsx | 146 ++++++++++++++++++++++++++++ public/assets/css/main.css | 14 +++ public/assets/scss/_section.scss | 15 +++ 5 files changed, 180 insertions(+), 2 deletions(-) create mode 100644 components/homes/home-1/project.jsx diff --git a/app/(homes)/home-1/page.jsx b/app/(homes)/home-1/page.jsx index 4420c4e..4c0e1de 100644 --- a/app/(homes)/home-1/page.jsx +++ b/app/(homes)/home-1/page.jsx @@ -14,6 +14,7 @@ import Services from "@/components/homes/home-1/Services"; import Skills from "@/components/homes/home-1/Skills"; import Team from "@/components/homes/home-1/Team"; import Testimonials from "@/components/homes/home-1/Testimonials"; +import ProjectsData from "@/components/homes/home-1/project"; export const metadata = { title: "Home 1 || Xbuild - Constriction nextjs Template", description: "Xbuild - Constriction nextjs Template", @@ -28,6 +29,7 @@ export default function Home1() { + {/* */} diff --git a/components/footers/Footer1.jsx b/components/footers/Footer1.jsx index c16d7aa..05a7dea 100644 --- a/components/footers/Footer1.jsx +++ b/components/footers/Footer1.jsx @@ -2,6 +2,7 @@ import Link from "next/link"; import Image from "next/image"; import { services2 } from "@/data/services"; +import { allProducts } from "@/utlis/constant.utils"; import { footerLinks } from "@/data/menu"; import { Gallery, Item } from "react-photoswipe-gallery"; import { galleryImages } from "@/data/gallery"; @@ -116,9 +117,9 @@ export default function Footer1() {
Our Products
    - {services2.map((elm, i) => ( + {allProducts.map((elm, i) => (
  • - + {elm.title} diff --git a/components/homes/home-1/project.jsx b/components/homes/home-1/project.jsx new file mode 100644 index 0000000..1ed86e7 --- /dev/null +++ b/components/homes/home-1/project.jsx @@ -0,0 +1,146 @@ +"use client"; +import { useState } from "react"; +import { projectsData } from "@/data/projects"; +import React from "react"; +import Image from "next/image"; +import AnimatedText from "@/components/common/AnimatedText"; +import Link from "next/link"; +import Lightbox from "yet-another-react-lightbox"; +import "yet-another-react-lightbox/styles.css"; + +const tabOptions = [ + { key: "desiccated", label: "Coconut Milk Extraction" }, + { key: "virgin", label: "Coconut Dryer Projects" }, + { key: "pare", label: "Coconut Pulverizing & Grinding" }, +]; + +export default function ProjectsHomePreview() { + const [activeTab, setActiveTab] = useState("desiccated"); + const [lightboxOpen, setLightboxOpen] = useState(false); + const [lightboxImages, setLightboxImages] = useState([]); + const [currentImageIndex, setCurrentImageIndex] = useState(0); + + // Filter and limit projects based on tab + const filteredProjects = projectsData + .filter( + (project) => + project.category && + project.category.toLowerCase().includes(activeTab) + ) + .slice(0, 6); // Limit to 6 per tab + + // Get all image URLs from filtered projects + const imageList = filteredProjects.map((project) => project.images[0]); + + // Handle lightbox opening + const handleImageClick = (imageSrc) => { + const index = imageList.findIndex((img) => img === imageSrc); + const slides = imageList.map((img) => ({ src: img })); + setLightboxImages(slides); + setCurrentImageIndex(index >= 0 ? index : 0); + setLightboxOpen(true); + }; + + return ( +
    +
    + {/* Section Title */} +
    +
    + + Our Global Footprint + +
    +

    + +
    + +

    + + {/* Tabs */} +
    + {tabOptions.map((tab) => ( + + ))} +
    +
    + + {/* Project Cards */} +
    + {filteredProjects.map((project) => ( +
    +
    +
    handleImageClick(project.images[0])} + > + {project.title} +
    +
    +
    + ))} +
    + + {/* Lightbox */} + {lightboxOpen && ( + setLightboxOpen(false)} + slides={lightboxImages} + index={currentImageIndex} + /> + )} + + {/* View More Button */} +
    + + View More Projects + + +
    +
    +
    + ); +} diff --git a/public/assets/css/main.css b/public/assets/css/main.css index 8273b74..0a22a8d 100644 --- a/public/assets/css/main.css +++ b/public/assets/css/main.css @@ -5857,6 +5857,20 @@ background-color: #0b2273; } } +.section-padding3 { + padding: 0 0 120px; +} +@media (max-width: 1199px) { + .section-padding2 { + padding: 0 0 100px ; + } +} +@media (max-width: 991px) { + .section-padding2 { + padding: 0 0 80px; + } +} + .service-section { position: relative; z-index: 9; diff --git a/public/assets/scss/_section.scss b/public/assets/scss/_section.scss index f3464ae..94789a5 100644 --- a/public/assets/scss/_section.scss +++ b/public/assets/scss/_section.scss @@ -102,5 +102,20 @@ padding: 80px 0 0; } } + +.section-padding3 { + padding: 0 0 120px; +} +@media (max-width: 1199px) { + .section-padding2 { + padding: 0 0 100px ; + } +} +@media (max-width: 991px) { + .section-padding2 { + padding: 0 0 80px; + } +} + //>>>>> Basic Css End <<<<