Skip to content

Commit aec4e2f

Browse files
authored
fix(app): lack of memoization for api (#1166)
1 parent 4e5acfa commit aec4e2f

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

src/containers/ipfs/ipfs.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,24 +20,28 @@ function Ipfs() {
2020
const [cid, setCid] = useState<string>('');
2121

2222
const { fetchParticle, status, content } = useQueueIpfsContent(cid);
23-
const { ipfsApi, isIpfsInitialized } = useBackend();
23+
const { ipfsApi, isIpfsInitialized, isReady } = useBackend();
2424
const [ipfsDataDetails, setIpfsDatDetails] = useState<IPFSContentDetails>();
2525

2626
const { setAdviser } = useAdviser();
2727

2828
const isText = useMemo(() => !query.match(PATTERN_IPFS_HASH), [query]);
2929
useEffect(() => {
30+
if (!isReady) {
31+
return;
32+
}
33+
3034
if (!isText) {
3135
setCid(query);
3236
} else if (isIpfsInitialized) {
3337
(async () => {
3438
const cidFromQuery = (await getIpfsHash(encodeSlash(query))) as string;
35-
// console.log('Ipfs()', isIpfsInitialized, ipfsApi, ipfsApi?.addContent);
3639
await ipfsApi!.addContent(query);
40+
3741
setCid(cidFromQuery);
3842
})();
3943
}
40-
}, [isText, query, ipfsApi, isIpfsInitialized]);
44+
}, [isText, isReady, query, ipfsApi, isIpfsInitialized]);
4145

4246
useEffect(() => {
4347
(async () => {

src/contexts/backend/backend.tsx

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -213,16 +213,30 @@ function BackendProvider({ children }: { children: React.ReactNode }) {
213213
return () => channel.close();
214214
}, [dispatch, createDbApi]);
215215

216+
const ipfsApi = useMemo(
217+
() => (isIpfsInitialized ? backgroundWorkerInstance.ipfsApi : null),
218+
[isIpfsInitialized]
219+
);
220+
221+
const ipfsNode = useMemo(
222+
() =>
223+
isIpfsInitialized ? backgroundWorkerInstance.ipfsApi.getIpfsNode() : null,
224+
[isIpfsInitialized]
225+
);
226+
227+
const defferedDbApi = useMemo(
228+
() => (isDbInitialized ? backgroundWorkerInstance.defferedDbApi : null),
229+
[isDbInitialized]
230+
);
231+
216232
const valueMemo = useMemo(
217233
() =>
218234
({
219235
// backgroundWorker: backgroundWorkerInstance,
220236
cozoDbRemote: cozoDbWorkerInstance,
221-
ipfsApi: backgroundWorkerInstance.ipfsApi,
222-
defferedDbApi: backgroundWorkerInstance.defferedDbApi,
223-
ipfsNode: isIpfsInitialized
224-
? backgroundWorkerInstance.ipfsApi.getIpfsNode()
225-
: null,
237+
ipfsApi,
238+
defferedDbApi,
239+
ipfsNode,
226240
restartSync: (name: SyncEntryName) =>
227241
backgroundWorkerInstance.restartSync(name),
228242
dbApi,

0 commit comments

Comments
 (0)