@@ -45,36 +40,44 @@ export default function LandingPage() {
description="Giving Every Paw a Second Chance at a Loving Home."
buttons={[
{ text: "Adopt a Friend", href: "#adopt" },
- { text: "Support Our Mission", href: "#contact" },
+ { text: "Support Our Mission", href: "/contact" },
]}
- buttonAnimation="bounce-effect"
+ buttonAnimation="slide-up"
imageSrc="https://img.b2bpic.net/free-photo/elegant-fashion-girls-summer-park_1157-21448.jpg"
imageAlt="Happy dog and cat in a loving home environment"
showDimOverlay={false}
ariaLabel="Hero section for Paw Paradise pet shelter"
/>
-
-
+
@@ -85,19 +88,24 @@ export default function LandingPage() {
products={[
{
id: "dog1", brand: "Golden Retriever Mix", name: "Buddy", price: "Adoptable", rating: 5,
- reviewCount: "150+ Happy Homes", imageSrc: "https://img.b2bpic.net/free-photo/woman-interacting-with-rescue-dogs-shelter_23-2148682952.jpg", imageAlt: "A friendly golden retriever mix dog"},
+ reviewCount: "150+ Happy Homes", imageSrc: "https://img.b2bpic.net/free-photo/woman-interacting-with-rescue-dogs-shelter_23-2148682952.jpg", imageAlt: "A friendly golden retriever mix dog"
+ },
{
id: "cat1", brand: "Domestic Shorthair", name: "Luna", price: "Adoptable", rating: 4,
- reviewCount: "120+ Happy Homes", imageSrc: "https://img.b2bpic.net/free-photo/woman-interacting-with-rescue-dogs-shelter_23-2148682952.jpg", imageAlt: "A playful domestic shorthair cat"},
+ reviewCount: "120+ Happy Homes", imageSrc: "https://img.b2bpic.net/free-photo/woman-interacting-with-rescue-dogs-shelter_23-2148682952.jpg", imageAlt: "A playful domestic shorthair cat"
+ },
{
id: "rabbit1", brand: "Dutch Rabbit", name: "Hopper", price: "Adoptable", rating: 5,
- reviewCount: "30+ Happy Homes", imageSrc: "https://img.b2bpic.net/free-photo/dog-sitting-near-girl_8353-5282.jpg", imageAlt: "A cute Dutch rabbit"},
+ reviewCount: "30+ Happy Homes", imageSrc: "https://img.b2bpic.net/free-photo/dog-sitting-near-girl_8353-5282.jpg", imageAlt: "A cute Dutch rabbit"
+ },
{
id: "bird1", brand: "Cockatiel", name: "Sky", price: "Adoptable", rating: 4,
- reviewCount: "20+ Happy Homes", imageSrc: "https://img.b2bpic.net/free-photo/lots-cute-rescue-dogs-shelter-waiting-be-adopted_23-2148682950.jpg", imageAlt: "A colorful cockatiel bird"},
+ reviewCount: "20+ Happy Homes", imageSrc: "https://img.b2bpic.net/free-photo/lots-cute-rescue-dogs-shelter-waiting-be-adopted_23-2148682950.jpg", imageAlt: "A colorful cockatiel bird"
+ },
{
id: "hamster1", brand: "Syrian Hamster", name: "Squeaky", price: "Adoptable", rating: 5,
- reviewCount: "10+ Happy Homes", imageSrc: "https://img.b2bpic.net/free-photo/smiley-woman-playing-with-cute-dog-up-adoption_23-2148682991.jpg", imageAlt: "A tiny Syrian hamster"},
+ reviewCount: "10+ Happy Homes", imageSrc: "https://img.b2bpic.net/free-photo/smiley-woman-playing-with-cute-dog-up-adoption_23-2148682991.jpg", imageAlt: "A tiny Syrian hamster"
+ },
]}
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
@@ -105,49 +113,6 @@ export default function LandingPage() {
useInvertedBackground={false}
ariaLabel="Available pets for adoption"
className="py-12 md:py-20"
- cardClassName="bg-card rounded-soft overflow-hidden group-hover:scale-105 transition-transform duration-300"
- imageClassName="aspect-video object-cover"
- cardBrandClassName="text-foreground/70 text-sm mt-3"
- cardNameClassName="text-foreground text-xl font-medium"
- cardPriceClassName="text-primary-cta text-2xl font-semibold"
- cardRatingClassName="flex items-center gap-1 text-accent"
- textBoxTitleClassName="text-4xl md:text-5xl font-semibold text-foreground leading-tight"
- textBoxDescriptionClassName="text-lg text-foreground/80 mt-4"
- />
-
-
-
@@ -157,16 +122,20 @@ export default function LandingPage() {
testimonials={[
{
id: "1", name: "Sarah Johnson", role: "New Pet Parent", company: "Paw Paradise Adopter", rating: 5,
- imageSrc: "https://img.b2bpic.net/free-photo/young-woman-shopping-clothes_23-2149187303.jpg", imageAlt: "Portrait of Sarah Johnson"},
+ imageSrc: "https://img.b2bpic.net/free-photo/young-woman-shopping-clothes_23-2149187303.jpg", imageAlt: "Portrait of Sarah Johnson"
+ },
{
id: "2", name: "Michael Chen", role: "Volunteer", company: "Paw Paradise", rating: 5,
- imageSrc: "https://img.b2bpic.net/free-photo/older-woman-with-thumb-up_1149-1162.jpg", imageAlt: "Portrait of Michael Chen"},
+ imageSrc: "https://img.b2bpic.net/free-photo/older-woman-with-thumb-up_1149-1162.jpg", imageAlt: "Portrait of Michael Chen"
+ },
{
id: "3", name: "Emily Rodriguez", role: "Foster Parent", company: "Paw Paradise Community", rating: 5,
- imageSrc: "https://img.b2bpic.net/free-photo/smiling-man-sitting-cafe-table-gesturing_1262-1141.jpg", imageAlt: "Portrait of Emily Rodriguez"},
+ imageSrc: "https://img.b2bpic.net/free-photo/smiling-man-sitting-cafe-table-gesturing_1262-1141.jpg", imageAlt: "Portrait of Emily Rodriguez"
+ },
{
id: "4", name: "David Kim", role: "Donor", company: "Animal Welfare Advocate", rating: 5,
- imageSrc: "https://img.b2bpic.net/free-photo/portrait-woman-happy-after-shopping_23-2148660676.jpg", imageAlt: "Portrait of David Kim"},
+ imageSrc: "https://img.b2bpic.net/free-photo/portrait-woman-happy-after-shopping_23-2148660676.jpg", imageAlt: "Portrait of David Kim"
+ },
]}
kpiItems={[
{ value: "500+", label: "Pets Adopted" },
@@ -178,92 +147,6 @@ export default function LandingPage() {
useInvertedBackground={false}
ariaLabel="Testimonials from happy adopters and supporters"
className="py-12 md:py-20"
- textBoxTitleClassName="text-4xl md:text-5xl font-semibold text-foreground leading-tight"
- textBoxDescriptionClassName="text-lg text-foreground/80 mt-4"
- cardClassName="bg-card rounded-soft overflow-hidden group-hover:scale-105 transition-transform duration-300"
- overlayClassName="p-6 bg-gradient-to-t from-black/60 to-transparent absolute inset-0 flex flex-col justify-end text-white"
- nameClassName="text-xl font-medium"
- roleClassName="text-sm text-white/70"
- companyClassName="text-xs text-white/50"
- ratingClassName="flex items-center gap-1 text-yellow-400 text-lg"
- />
-
-
-
-
-
-
-
-
-
diff --git a/src/app/shop/[id]/page.tsx b/src/app/shop/[id]/page.tsx
index e73d2ee..c0454bf 100644
--- a/src/app/shop/[id]/page.tsx
+++ b/src/app/shop/[id]/page.tsx
@@ -1,179 +1,16 @@
"use client";
-import { use, useCallback } from "react";
-import { useRouter } from "next/navigation";
-import ReactLenis from "lenis/react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleApple from "@/components/navbar/NavbarStyleApple/NavbarStyleApple";
import FooterBase from '@/components/sections/footer/FooterBase';
-import ProductDetailCard from "@/components/ecommerce/productDetail/ProductDetailCard";
-import ProductCart from "@/components/ecommerce/cart/ProductCart";
-import { useProductDetail } from "@/hooks/useProductDetail";
-import { useCart } from "@/hooks/useCart";
-import { useCheckout } from "@/hooks/useCheckout";
-interface ProductPageProps {
- params: Promise<{ id: string }>;
-}
-
-export default function ProductPage({ params }: ProductPageProps) {
- const { id } = use(params);
- const router = useRouter();
-
- const {
- product,
- isLoading,
- images,
- meta,
- variants,
- quantityVariant,
- selectedQuantity,
- createCartItem,
- } = useProductDetail(id);
-
- const {
- items: cartItems,
- isOpen: cartOpen,
- setIsOpen: setCartOpen,
- addItem,
- updateQuantity,
- removeItem,
- total: cartTotal,
- getCheckoutItems,
- } = useCart();
-
- const { buyNow, checkout, isLoading: isCheckoutLoading } = useCheckout();
-
- const handleAddToCart = useCallback(() => {
- const item = createCartItem();
- if (item) {
- addItem(item);
- }
- }, [createCartItem, addItem]);
-
- const handleBuyNow = useCallback(() => {
- if (product) {
- buyNow(product, selectedQuantity);
- }
- }, [product, selectedQuantity, buyNow]);
-
- const handleCheckout = useCallback(async () => {
- if (cartItems.length === 0) return;
-
- const currentUrl = new URL(window.location.href);
- currentUrl.searchParams.set("success", "true");
-
- await checkout(getCheckoutItems(), { successUrl: currentUrl.toString() });
- }, [cartItems, checkout, getCheckoutItems]);
-
- if (isLoading) {
- return (
-