Skip to content

Commit cb16dba

Browse files
committed
fix: remove dependency array bug for useWatchVersionLogs
1 parent 80022fa commit cb16dba

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
import { watchBuildLogsByTemplateVersionId } from "api/api";
22
import type { ProvisionerJobLog, TemplateVersion } from "api/typesGenerated";
3+
import { useEffectEvent } from "hooks/hookPolyfills";
34
import { useEffect, useState } from "react";
45

56
export const useWatchVersionLogs = (
67
templateVersion: TemplateVersion | undefined,
78
options?: { onDone: () => Promise<unknown> },
89
) => {
9-
const [logs, setLogs] = useState<ProvisionerJobLog[] | undefined>();
10+
const [logs, setLogs] = useState<ProvisionerJobLog[]>();
1011
const templateVersionId = templateVersion?.id;
11-
const templateVersionStatus = templateVersion?.job.status;
12-
13-
// biome-ignore lint/correctness/useExhaustiveDependencies: consider refactoring
14-
useEffect(() => {
12+
const [cachedVersionId, setCachedVersionId] = useState(templateVersionId);
13+
if (cachedVersionId !== templateVersionId) {
14+
setCachedVersionId(templateVersionId);
1515
setLogs(undefined);
16-
}, [templateVersionId]);
16+
}
1717

18+
const templateVersionStatus = templateVersion?.job.status;
19+
const stableOnDone = useEffectEvent(() => options?.onDone());
1820
useEffect(() => {
1921
if (!templateVersionId || !templateVersionStatus) {
2022
return;
@@ -31,16 +33,14 @@ export const useWatchVersionLogs = (
3133
onMessage: (log) => {
3234
setLogs((logs) => (logs ? [...logs, log] : [log]));
3335
},
34-
onDone: options?.onDone,
36+
onDone: stableOnDone,
3537
onError: (error) => {
3638
console.error(error);
3739
},
3840
});
3941

40-
return () => {
41-
socket.close();
42-
};
43-
}, [options?.onDone, templateVersionId, templateVersionStatus]);
42+
return () => socket.close();
43+
}, [stableOnDone, templateVersionId, templateVersionStatus]);
4444

4545
return logs;
4646
};

0 commit comments

Comments
 (0)