diff --git a/app/home/LeafletList.tsx b/app/home/LeafletList.tsx index 6da8a3eb..03fa9748 100644 --- a/app/home/LeafletList.tsx +++ b/app/home/LeafletList.tsx @@ -7,7 +7,6 @@ import { Fact, PermissionToken, ReplicacheProvider } from "src/replicache"; import { LeafletPreview } from "./LeafletPreview"; import { useIdentityData } from "components/IdentityProvider"; import type { Attribute } from "src/replicache/attributes"; -import { getIdentityData } from "actions/getIdentityData"; import { callRPC } from "app/api/rpc/client"; import { StaticLeafletDataContext } from "components/PageSWRDataProvider"; @@ -20,7 +19,7 @@ export function LeafletList(props: { fallbackData: [], }); let { identity } = useIdentityData(); - let { data: initialFacts, mutate } = useSWR( + let { data: initialFacts } = useSWR( "home-leaflet-data", async () => { if (identity) { @@ -34,9 +33,6 @@ export function LeafletList(props: { }, { fallbackData: props.initialFacts }, ); - useEffect(() => { - mutate(); - }, [localLeaflets.length, mutate]); let leaflets: Array< PermissionToken & { leaflets_in_publications?: Array<{ diff --git a/app/home/storage.ts b/app/home/storage.ts index 32020a98..79820c41 100644 --- a/app/home/storage.ts +++ b/app/home/storage.ts @@ -15,11 +15,19 @@ let defaultValue: HomeDocsStorage = { docs: [], }; const key = "homepageDocs-v1"; +let tokenCache = new Map(); export function getHomeDocs() { let homepageDocs: HomeDocsStorage = JSON.parse( window.localStorage.getItem(key) || JSON.stringify(defaultValue), ); - return homepageDocs.docs; + return homepageDocs.docs.map((d) => { + let cachedToken = tokenCache.get(d.token.id); + if (!cachedToken) { + cachedToken = d.token; + tokenCache.set(d.token.id, d.token); + } + return { ...d, token: cachedToken }; + }); } export function addDocToHome(doc: PermissionToken) {