@@ -15,7 +15,7 @@ import { selectBboxRect, selectSelectedEntityIdentifier } from 'features/control
15
15
import type { CanvasRasterLayerState } from 'features/controlLayers/store/types' ;
16
16
import { imageNameToImageObject } from 'features/controlLayers/store/util' ;
17
17
import type { PropsWithChildren } from 'react' ;
18
- import { createContext , memo , useContext , useMemo } from 'react' ;
18
+ import { createContext , memo , useContext , useEffect , useMemo } from 'react' ;
19
19
import { getImageDTOSafe } from 'services/api/endpoints/images' ;
20
20
import { queueApi } from 'services/api/endpoints/queue' ;
21
21
import type { S } from 'services/api/types' ;
@@ -94,7 +94,16 @@ export const StagingAreaContextProvider = memo(({ children, sessionId }: PropsWi
94
94
95
95
return _stagingAreaAppApi ;
96
96
} , [ sessionId , socket , store ] ) ;
97
- const value = useMemo ( ( ) => new StagingAreaApi ( sessionId , stagingAreaAppApi ) , [ sessionId , stagingAreaAppApi ] ) ;
97
+ const value = useMemo ( ( ) => {
98
+ return new StagingAreaApi ( sessionId , stagingAreaAppApi ) ;
99
+ } , [ sessionId , stagingAreaAppApi ] ) ;
100
+
101
+ useEffect ( ( ) => {
102
+ const api = value ;
103
+ return ( ) => {
104
+ api . cleanup ( ) ;
105
+ } ;
106
+ } , [ value ] ) ;
98
107
99
108
return < StagingAreaContext . Provider value = { value } > { children } </ StagingAreaContext . Provider > ;
100
109
} ) ;
0 commit comments