diff --git a/app/page.tsx b/app/page.tsx index e08ae35..6b379ac 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,8 +1,8 @@ import { ShowCase } from "@/components/ShowCase"; import { About } from "@/components/About"; -import { ProductsGrid } from "@/components/ProductsGrid"; import { FAQ } from "@/components/FAQ"; import { ContactForm } from "@/components/ContactForm"; +import { ProductsGrid } from "@/components/productSection/ProductsGrid"; const HERO_IMAGES = [ "/product/product.jpg", diff --git a/components/ProductCard.tsx b/components/productSection/ProductCard.tsx similarity index 100% rename from components/ProductCard.tsx rename to components/productSection/ProductCard.tsx diff --git a/components/ProductModal.tsx b/components/productSection/ProductModal.tsx similarity index 92% rename from components/ProductModal.tsx rename to components/productSection/ProductModal.tsx index a2f473a..e768c08 100644 --- a/components/ProductModal.tsx +++ b/components/productSection/ProductModal.tsx @@ -15,7 +15,7 @@ interface ProductModalProps { export function ProductModal({ product, onClose }: ProductModalProps) { const { t } = useLanguage(); - const setProductName = useProductStore((state)=>state.setProductName); + const setProductName = useProductStore((state) => state.setProductName); return ( @@ -50,7 +50,7 @@ export function ProductModal({ product, onClose }: ProductModalProps) { {/* Content */}
-
+
{/* 3D Viewer / Gallery */}
{onClose(); setProductName(product.nameKey)}} + onClick={() => { + onClose(); + setProductName(product.nameKey); + }} whileHover={{ scale: 1.05 }} whileTap={{ scale: 0.95 }} className="w-full px-6 py-3 bg-blue-600 text-white rounded-lg font-semibold hover:bg-blue-700 transition-colors" diff --git a/components/ProductViewer.tsx b/components/productSection/ProductViewer.tsx similarity index 100% rename from components/ProductViewer.tsx rename to components/productSection/ProductViewer.tsx diff --git a/components/ProductsGrid.tsx b/components/productSection/ProductsGrid.tsx similarity index 100% rename from components/ProductsGrid.tsx rename to components/productSection/ProductsGrid.tsx index fe5b1b9..3262ad3 100644 --- a/components/ProductsGrid.tsx +++ b/components/productSection/ProductsGrid.tsx @@ -2,14 +2,14 @@ import { useState } from "react"; import { motion } from "framer-motion"; -import { ProductCard } from "./ProductCard"; import { getAllProducts } from "@/lib/products"; import type { Product } from "@/lib/products"; -import { ProductModal } from "./ProductModal"; import Image from "next/image"; import { useLanguage } from "@/context/language-context"; import Link from "next/link"; import { ChevronsRight } from "lucide-react"; +import { ProductCard } from "./ProductCard"; +import { ProductModal } from "./ProductModal"; // hello everyone diff --git a/components/productsPage/products.tsx b/components/productsPage/products.tsx index d0b6f6f..7a02310 100644 --- a/components/productsPage/products.tsx +++ b/components/productsPage/products.tsx @@ -2,9 +2,9 @@ import { useEffect, useState } from "react"; import EmptyState from "./emptyData"; import { GET } from "@/lib/allProducts"; -import { ProductModal } from "../ProductModal"; +import { ProductModal } from "../productSection/ProductModal"; import { motion } from "framer-motion"; -import { ProductCard } from "../ProductCard"; +import { ProductCard } from "../productSection/ProductCard"; const itemVariants = { hidden: { opacity: 0, y: 20 }, @@ -14,13 +14,13 @@ const itemVariants = { export default function Products() { const [allProducts, setAllProducts] = useState(null); const [selectedProduct, setSelectedProduct] = useState(null); + const all = GET(); useEffect(() => { - const all = GET(); all && Array.isArray(all) && all.length > 0 ? setAllProducts(all) : setAllProducts([]); setAllProducts; - }, []); + }, [all]); const handleViewDetails = (slug: string) => { const product = allProducts.find((p: any) => p.slug === slug); if (product) {