@@ -538,49 +538,44 @@ chrome.runtime.onMessage.addListener((request) => {
538538 const problem = result . leetcodeProblems . questions . find ( ( problem : { title : string } ) => problem . title === title ) ;
539539
540540 // If no solution code or videos exist, dont do anything.
541- if ( ! problem . videos && ! problem . languages ) return ;
542- if ( problem . videos . length == 0 && problem . languages . length == 0 ) {
541+ if ( ! problem ? .videos && ! problem ? .languages ) return ;
542+ if ( problem . videos ? .length == 0 && problem . languages ? .length == 0 ) {
543543 return ;
544544 }
545545
546- // If forceUpdate is true or this is not a video update, remove existing containers
547- if ( request . forceUpdate ) {
548- const existingContainers = [
549- '.nav-container' ,
550- '.video-container' ,
551- '.code-container' ,
552- '.language-buttons-container'
553- ] . forEach ( selector => {
554- const element = document . querySelector ( selector ) ;
555- if ( element ) element . remove ( ) ;
556- } ) ;
557- }
546+ // Always remove existing containers when updating solutions
547+ const existingContainers = [
548+ '.nav-container' ,
549+ '.video-container' ,
550+ '.code-container' ,
551+ '.language-buttons-container'
552+ ] . forEach ( selector => {
553+ const element = document . querySelector ( selector ) ;
554+ if ( element ) element . remove ( ) ;
555+ } ) ;
558556
559- // Only create nav container if it doesn't exist or if this is not a video update
560- let existingNavContainer = document . querySelector ( '.nav-container' ) ;
561- if ( ! existingNavContainer ) {
562- const newNavContainer = createNavContainer ( problem ) ;
563- searchBar ?. insertBefore ( newNavContainer , searchBar . firstChild ) ;
564- }
557+ // Create new nav container
558+ const newNavContainer = createNavContainer ( problem ) ;
559+ searchBar ?. insertBefore ( newNavContainer , searchBar . firstChild ) ;
565560
566- // Check if the video container already exists before adding
567- if ( ! document . querySelector ( '.video-container' ) && problem . videos . length > 0 ) {
561+ // Add video container if videos exist
562+ if ( problem . videos ? .length > 0 ) {
568563 let videoContainer = createVideoContainer ( problem ) ;
569564 if ( searchBar ) searchBar . insertBefore ( videoContainer , searchBar . children [ 1 ] ) ;
570565 }
571566
572- // Check if the code container already exists before adding
573- if ( ! document . querySelector ( '.code-container' ) && problem . languages . length > 0 ) {
567+ // Add code container if languages exist
568+ if ( problem . languages ? .length > 0 ) {
574569 let codeContainer = createCodeContainer ( ) ;
575570 if ( searchBar ) searchBar . insertBefore ( codeContainer , searchBar . children [ 1 ] ) ;
576571 }
577572
578- // Check if the language buttons container already exists before adding
579- if ( ! document . querySelector ( '.language-buttons-container' ) ) {
573+ // Add language buttons container if languages exist
574+ if ( problem . languages ?. length > 0 ) {
580575 let languageButtonsContainer = createLanguageButtons ( problem ) ;
581576 languageButtonsContainer . classList . add ( 'language-buttons-container' ) ;
582577 languageButtonsContainer . style . display = 'none' ;
583- if ( searchBar ) searchBar . insertBefore ( languageButtonsContainer , searchBar . children [ 1 ] ) ; // Or choose a different position
578+ if ( searchBar ) searchBar . insertBefore ( languageButtonsContainer , searchBar . children [ 1 ] ) ;
584579 }
585580
586581 // Add theme change listener after creating containers
0 commit comments