From b22cec12b425ac4737d2e9e8b19466292feed4b9 Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Fri, 25 Oct 2024 16:14:17 +0200 Subject: [PATCH] Memoize metadata hook data --- .../reader/services/ReaderSettingsMetadata.ts | 15 ++++++++++++--- .../settings/services/ServerSettingsMetadata.ts | 7 ++++--- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/modules/reader/services/ReaderSettingsMetadata.ts b/src/modules/reader/services/ReaderSettingsMetadata.ts index fb62cf02..fde0cca1 100644 --- a/src/modules/reader/services/ReaderSettingsMetadata.ts +++ b/src/modules/reader/services/ReaderSettingsMetadata.ts @@ -6,6 +6,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +import { useMemo } from 'react'; import { requestManager } from '@/lib/requests/RequestManager.ts'; import { requestUpdateMangaMetadata, @@ -45,10 +46,18 @@ export const useDefaultReaderSettings = (): { } => { const request = requestManager.useGetGlobalMeta({ notifyOnNetworkStatusChange: true }); const { data, loading } = request; - const metadata = convertFromGqlMeta(data?.metas.nodes); - const settings = getReaderSettingsWithDefaultValueFallback(metadata); + const metadata = useMemo(() => convertFromGqlMeta(data?.metas.nodes), [data?.metas.nodes]); + const settings = useMemo(() => getReaderSettingsWithDefaultValueFallback(metadata), [metadata]); - return { metadata, settings, loading, request }; + return useMemo( + () => ({ + metadata, + settings, + loading, + request, + }), + [metadata, settings, loading, request], + ); }; /** diff --git a/src/modules/settings/services/ServerSettingsMetadata.ts b/src/modules/settings/services/ServerSettingsMetadata.ts index 789c51bc..d3ffded7 100644 --- a/src/modules/settings/services/ServerSettingsMetadata.ts +++ b/src/modules/settings/services/ServerSettingsMetadata.ts @@ -6,6 +6,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +import { useMemo } from 'react'; import { requestManager } from '@/lib/requests/RequestManager.ts'; import { requestUpdateServerMetadata } from '@/modules/metadata/services/MetadataUpdater.ts'; import { jsonSaveParse } from '@/lib/HelperFunctions.ts'; @@ -60,10 +61,10 @@ export const useMetadataServerSettings = (): { } => { const request = requestManager.useGetGlobalMeta({ notifyOnNetworkStatusChange: true }); const { data, loading } = request; - const metadata = convertFromGqlMeta(data?.metas.nodes); - const settings = getMetadataServerSettingsWithDefaultFallback(metadata); + const metadata = useMemo(() => convertFromGqlMeta(data?.metas.nodes), [data?.metas.nodes]); + const settings = useMemo(() => getMetadataServerSettingsWithDefaultFallback(metadata), [metadata]); - return { metadata, settings, loading, request }; + return useMemo(() => ({ metadata, settings, loading, request }), [metadata, settings, loading, request]); }; export const getMetadataServerSettings = async (): Promise => {