Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit0ea89a3

Browse files
authored
chore: add cleanup callbacks to someuseEffect calls (#13444)
1 parent213848e commit0ea89a3

File tree

4 files changed

+29
-10
lines changed

4 files changed

+29
-10
lines changed

‎site/src/contexts/useProxyLatency.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,10 @@ export const useProxyLatency = (
225225
// Local storage cleanup
226226
garbageCollectStoredLatencies(proxies,maxStoredLatencies);
227227
});
228+
229+
return()=>{
230+
observer.disconnect();
231+
};
228232
},[proxies,latestFetchRequest,maxStoredLatencies]);
229233

230234
return{

‎site/src/pages/TemplateVersionEditorPage/TemplateVersionEditorPage.tsx

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -245,20 +245,32 @@ const useFileTree = (templateVersion: TemplateVersion | undefined) => {
245245
fileTree:undefined,
246246
tarFile:undefined,
247247
});
248+
248249
useEffect(()=>{
250+
letstale=false;
249251
constinitializeFileTree=async(file:ArrayBuffer)=>{
250252
consttarFile=newTarReader();
251-
awaittarFile.readFile(file);
252-
constfileTree=awaitcreateTemplateVersionFileTree(tarFile);
253-
setState({ fileTree, tarFile});
253+
try{
254+
awaittarFile.readFile(file);
255+
// Ignore stale updates if this effect has been cancelled.
256+
if(stale){
257+
return;
258+
}
259+
constfileTree=createTemplateVersionFileTree(tarFile);
260+
setState({ fileTree, tarFile});
261+
}catch(error){
262+
console.error(error);
263+
displayError("Error on initializing the editor");
264+
}
254265
};
255266

256267
if(fileQuery.data){
257-
initializeFileTree(fileQuery.data).catch((reason)=>{
258-
console.error(reason);
259-
displayError("Error on initializing the editor");
260-
});
268+
voidinitializeFileTree(fileQuery.data);
261269
}
270+
271+
return()=>{
272+
stale=true;
273+
};
262274
},[fileQuery.data]);
263275

264276
returnstate;

‎site/src/pages/WorkspacePage/WorkspaceBuildProgress.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,10 @@ export const WorkspaceBuildProgress: FC<WorkspaceBuildProgressProps> = ({
9797
setProgressValue(est);
9898
setProgressText(text);
9999
};
100-
setTimeout(updateProgress,5);
100+
constupdateTimer=requestAnimationFrame(updateProgress);
101+
return()=>{
102+
cancelAnimationFrame(updateTimer);
103+
};
101104
},[progressValue,job,transitionStats]);
102105

103106
// HACK: the codersdk type generator doesn't support null values, but this

‎site/src/utils/templateVersion.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ export const getTemplateVersionFiles = async (
2323
returnfiles;
2424
};
2525

26-
exportconstcreateTemplateVersionFileTree=async(
26+
exportconstcreateTemplateVersionFileTree=(
2727
tarReader:TarReader,
28-
):Promise<FileTree>=>{
28+
):FileTree=>{
2929
letfileTree:FileTree={};
3030
for(constfileoftarReader.fileInfo){
3131
fileTree=set(

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp