diff --git a/src/hooks/useProduct.ts b/src/hooks/useProduct.ts index 3407f3a..4569f67 100644 --- a/src/hooks/useProduct.ts +++ b/src/hooks/useProduct.ts @@ -1,45 +1,36 @@ -"use client"; +import { useState, useEffect } from "react"; -import { useEffect, useState } from "react"; -import { Product, fetchProduct } from "@/lib/api/product"; - -export function useProduct(productId: string) { - const [product, setProduct] = useState(null); - const [isLoading, setIsLoading] = useState(true); - const [error, setError] = useState(null); - - useEffect(() => { - let isMounted = true; - - async function loadProduct() { - if (!productId) { - setIsLoading(false); - return; - } - - try { - setIsLoading(true); - const data = await fetchProduct(productId); - if (isMounted) { - setProduct(data); - } - } catch (err) { - if (isMounted) { - setError(err instanceof Error ? err : new Error("Failed to fetch product")); - } - } finally { - if (isMounted) { - setIsLoading(false); - } - } - } - - loadProduct(); - - return () => { - isMounted = false; - }; - }, [productId]); - - return { product, isLoading, error }; +interface Product { + id: string; + name: string; + price: string; + imageSrc: string; + imageAlt?: string; } + +export const useProduct = (productId: string) => { + const [product, setProduct] = useState(null); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + useEffect(() => { + const loadProduct = async () => { + try { + setLoading(true); + // Mock implementation - replace with actual API call + const mockProduct: Product = { + id: productId, + name: "Sample Product", price: "$99.99", imageSrc: "/placeholder.jpg", imageAlt: "Sample Product"}; + setProduct(mockProduct); + } catch (err) { + setError(err instanceof Error ? err.message : "Failed to load product"); + } finally { + setLoading(false); + } + }; + + loadProduct(); + }, [productId]); + + return { product, loading, error }; +};