From d8dabe8ef29f132a0934804bae045d8f55f6805b Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 11 Mar 2026 19:57:54 +0000 Subject: [PATCH] Update src/hooks/useProducts.ts --- src/hooks/useProducts.ts | 55 ++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 33 deletions(-) diff --git a/src/hooks/useProducts.ts b/src/hooks/useProducts.ts index 53609fa..497c585 100644 --- a/src/hooks/useProducts.ts +++ b/src/hooks/useProducts.ts @@ -1,39 +1,28 @@ "use client"; -import { useEffect, useState } from "react"; -import { Product, fetchProducts } from "@/lib/api/product"; +import { useState, useEffect } from 'react'; +import { getProducts } from '@/lib/api/product'; -export function useProducts() { - const [products, setProducts] = useState([]); - const [isLoading, setIsLoading] = useState(true); - const [error, setError] = useState(null); +export const useProducts = () => { + const [products, setProducts] = useState([]); + const [isLoading, setIsLoading] = useState(true); + const [error, setError] = useState(null); - useEffect(() => { - let isMounted = true; + useEffect(() => { + const fetchData = async () => { + try { + setIsLoading(true); + const data = await getProducts(); + setProducts(data); + } catch (err) { + setError(err instanceof Error ? err.message : 'An error occurred'); + } finally { + setIsLoading(false); + } + }; - async function loadProducts() { - try { - const data = await fetchProducts(); - if (isMounted) { - setProducts(data); - } - } catch (err) { - if (isMounted) { - setError(err instanceof Error ? err : new Error("Failed to fetch products")); - } - } finally { - if (isMounted) { - setIsLoading(false); - } - } - } + fetchData(); + }, []); - loadProducts(); - - return () => { - isMounted = false; - }; - }, []); - - return { products, isLoading, error }; -} + return { products, isLoading, error }; +};