diff --git a/src/hooks/useAuth.tsx b/src/hooks/useAuth.tsx index 9bad9b9..f561760 100644 --- a/src/hooks/useAuth.tsx +++ b/src/hooks/useAuth.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useEffect, useRef } from "react"; +import React, { useCallback, useEffect, useMemo, useRef } from "react"; import { useAuthStore } from "../state/auth"; // ✅ Define Types @@ -131,7 +131,7 @@ const setBalance = useAuthStore((s) => s.setBalance); return res }, [address]) - return { + return useMemo(() => ({ address, publicKey, name, @@ -141,6 +141,17 @@ const setBalance = useAuthStore((s) => s.setBalance); isLoadingInitialBalance, errorMessageLoadingUser: errorLoadingUser, authenticateUser, - getBalance: manualGetBalance - }; + getBalance: manualGetBalance, + }), [ + address, + publicKey, + name, + avatarUrl, + balance, + isLoadingUser, + isLoadingInitialBalance, + errorLoadingUser, + authenticateUser, + manualGetBalance, + ]); }; diff --git a/src/hooks/useNameSearch.tsx b/src/hooks/useNameSearch.tsx index 6f40b55..da545cd 100644 --- a/src/hooks/useNameSearch.tsx +++ b/src/hooks/useNameSearch.tsx @@ -1,4 +1,4 @@ -import { useCallback, useEffect, useState } from "react"; +import { useCallback, useEffect, useMemo, useState } from "react"; interface NameListItem { @@ -46,8 +46,10 @@ export const useNameSearch = (value: string, limit = 20) => { clearTimeout(handler); }; }, [value, limit]); - return { + + return useMemo(() => ({ isLoading, results: nameList, - }; + }), [isLoading, nameList]); + }; diff --git a/src/hooks/usePublish.tsx b/src/hooks/usePublish.tsx index 3ff4d3b..5f8c037 100644 --- a/src/hooks/usePublish.tsx +++ b/src/hooks/usePublish.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useEffect, useRef, useState } from "react"; +import React, { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { usePublishStore } from "../state/publishes"; import { QortalGetMetadata, QortalMetadata } from "../types/interfaces/resources"; import { base64ToObject, retryTransaction } from "../utils/publish"; @@ -267,14 +267,24 @@ export const usePublish = ( deletePublish: deleteResource, }; - return { - isLoading, - error, - resource: publish || null, - hasResource, - refetch: refetchData, - fetchPublish, - updatePublish, - deletePublish: deleteResource, - }; + return useMemo(() => ({ + isLoading, + error, + resource: publish || null, + hasResource, + refetch: refetchData, + fetchPublish, + updatePublish, + deletePublish: deleteResource, + }), [ + isLoading, + error, + publish, + hasResource, + refetchData, + fetchPublish, + updatePublish, + deleteResource, + ]); + }; diff --git a/src/hooks/useResourceStatus.tsx b/src/hooks/useResourceStatus.tsx index 511e074..2d61abd 100644 --- a/src/hooks/useResourceStatus.tsx +++ b/src/hooks/useResourceStatus.tsx @@ -186,12 +186,13 @@ export const useResourceStatus = ({ const resourceUrl = resource ? `/arbitrary/${resource.service}/${resource.name}/${resource.identifier}` : null; - return { + return useMemo(() => ({ status: status?.status || "SEARCHING", localChunkCount: status?.localChunkCount || 0, totalChunkCount: status?.totalChunkCount || 0, percentLoaded: status?.percentLoaded || 0, isReady: status?.status === 'READY', resourceUrl, - }; + }), [status?.status, status?.localChunkCount, status?.totalChunkCount, status?.percentLoaded, resourceUrl]); + };