@@ -103,7 +103,6 @@ export const ShareVideo = forwardRef<
103103}
104104} , [ transcriptContent , transcriptError ] ) ;
105105
106- // Handle subtitle URL creation
107106useEffect ( ( ) => {
108107if (
109108data . transcriptionStatus === "COMPLETE" &&
@@ -113,51 +112,48 @@ export const ShareVideo = forwardRef<
113112const vttContent = formatTranscriptAsVTT ( transcriptData ) ;
114113const blob = new Blob ( [ vttContent ] , { type : "text/vtt" } ) ;
115114const newUrl = URL . createObjectURL ( blob ) ;
116-
117- // Clean up previous URL
118- if ( subtitleUrl ) {
119- URL . revokeObjectURL ( subtitleUrl ) ;
120- }
121-
122- setSubtitleUrl ( newUrl ) ;
115+ setSubtitleUrl ( ( prev ) => {
116+ if ( prev ) {
117+ URL . revokeObjectURL ( prev ) ;
118+ }
119+ return newUrl ;
120+ } ) ;
123121
124122return ( ) => {
125123URL . revokeObjectURL ( newUrl ) ;
126124} ;
127- } else {
128- // Clean up if no longer needed
129- if ( subtitleUrl ) {
130- URL . revokeObjectURL ( subtitleUrl ) ;
131- setSubtitleUrl ( null ) ;
132- }
133125}
134- } , [ data . transcriptionStatus , transcriptData , subtitleUrl ] ) ;
126+ setSubtitleUrl ( ( prev ) => {
127+ if ( prev ) {
128+ URL . revokeObjectURL ( prev ) ;
129+ }
130+ return null ;
131+ } ) ;
132+ } , [ data . transcriptionStatus , transcriptData ] ) ;
135133
136- // Handle chapters URL creation
137134useEffect ( ( ) => {
138135if ( chapters ?. length > 0 ) {
139136const vttContent = formatChaptersAsVTT ( chapters ) ;
140137const blob = new Blob ( [ vttContent ] , { type : "text/vtt" } ) ;
141138const newUrl = URL . createObjectURL ( blob ) ;
142-
143- // Clean up previous URL
144- if ( chaptersUrl ) {
145- URL . revokeObjectURL ( chaptersUrl ) ;
146- }
147-
148- setChaptersUrl ( newUrl ) ;
139+ setChaptersUrl ( ( prev ) => {
140+ if ( prev ) {
141+ URL . revokeObjectURL ( prev ) ;
142+ }
143+ return newUrl ;
144+ } ) ;
149145
150146return ( ) => {
151147URL . revokeObjectURL ( newUrl ) ;
152148} ;
153- } else {
154- // Clean up if no longer needed
155- if ( chaptersUrl ) {
156- URL . revokeObjectURL ( chaptersUrl ) ;
157- setChaptersUrl ( null ) ;
158- }
159149}
160- } , [ chapters , chaptersUrl ] ) ;
150+ setChaptersUrl ( ( prev ) => {
151+ if ( prev ) {
152+ URL . revokeObjectURL ( prev ) ;
153+ }
154+ return null ;
155+ } ) ;
156+ } , [ chapters ] ) ;
161157
162158const isMp4Source =
163159data . source . type === "desktopMP4" || data . source . type === "webMP4" ;
0 commit comments