From 5cd239b70fcd5815733ab9be894ee597214154ee Mon Sep 17 00:00:00 2001 From: bender Date: Tue, 3 Mar 2026 05:00:31 +0000 Subject: [PATCH] Update src/hooks/useProduct.ts --- src/hooks/useProduct.ts | 59 +++++++++++------------------------------ 1 file changed, 16 insertions(+), 43 deletions(-) diff --git a/src/hooks/useProduct.ts b/src/hooks/useProduct.ts index 3407f3a..20a9f37 100644 --- a/src/hooks/useProduct.ts +++ b/src/hooks/useProduct.ts @@ -1,45 +1,18 @@ -"use client"; +import { useCallback } from "react"; +import { fetchProducts } from "@/lib/api/product"; -import { useEffect, useState } from "react"; -import { Product, fetchProduct } from "@/lib/api/product"; +export const useProduct = () => { + const getProducts = useCallback(async () => { + try { + const products = await fetchProducts(); + return products; + } catch (error) { + console.error("Error fetching products:", error); + return []; + } + }, []); -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 }; -} + return { + getProducts, + }; +};