From 6fc1cbc0ce7870d44a8473c7e4c3c234496c9094 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Sat, 27 Aug 2022 20:45:07 +0200 Subject: [PATCH] fix: Unneccessary requests made on share links --- app/components/Editor.tsx | 2 +- app/hooks/useEmbeds.ts | 13 ++++++++++--- app/scenes/Document/components/Header.tsx | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/components/Editor.tsx b/app/components/Editor.tsx index 2851b8332..1d6537bd7 100644 --- a/app/components/Editor.tsx +++ b/app/components/Editor.tsx @@ -59,7 +59,7 @@ function Editor(props: Props, ref: React.RefObject | null) { const { documents } = useStores(); const { showToast } = useToasts(); const dictionary = useDictionary(); - const embeds = useEmbeds(); + const embeds = useEmbeds(!shareId); const [ activeLinkEvent, setActiveLinkEvent, diff --git a/app/hooks/useEmbeds.ts b/app/hooks/useEmbeds.ts index 800a10881..04af89ca8 100644 --- a/app/hooks/useEmbeds.ts +++ b/app/hooks/useEmbeds.ts @@ -6,7 +6,14 @@ import Integration from "~/models/Integration"; import Logger from "~/utils/Logger"; import useStores from "./useStores"; -export default function useEmbedIntegrations() { +/** + * Hook to get all embed configuration for the current team + * + * @param loadIfMissing Should we load integration settings if they are not + * locally available + * @returns A list of embed descriptors + */ +export default function useEmbeds(loadIfMissing = false) { const { integrations } = useStores(); React.useEffect(() => { @@ -21,8 +28,8 @@ export default function useEmbedIntegrations() { } } - !integrations.isLoaded && fetchEmbedIntegrations(); - }, [integrations]); + !integrations.isLoaded && loadIfMissing && fetchEmbedIntegrations(); + }, [integrations, loadIfMissing]); return React.useMemo( () => diff --git a/app/scenes/Document/components/Header.tsx b/app/scenes/Document/components/Header.tsx index cad4b769e..1a0db73d3 100644 --- a/app/scenes/Document/components/Header.tsx +++ b/app/scenes/Document/components/Header.tsx @@ -100,7 +100,7 @@ function DocumentHeader({ }, [onSave]); const { isDeleted, isTemplate } = document; - const can = usePolicy(document); + const can = usePolicy(document?.id); const canToggleEmbeds = team?.documentEmbeds; const canEdit = can.update && !isEditing; const toc = (