@@ -437,4 +437,87 @@ export const genSearchWidgetFixer = ({ fixedHeight, intervalDelay }) => {
437
437
}
438
438
} , intervalDelay ) ;
439
439
} ;
440
+
441
+ export const genSearchWidgetFixer2 = ( { fixedHeight } ) => {
442
+ let observer ;
443
+ let searchInputHandled = false ;
444
+
445
+ function updateWidget ( ) {
446
+ const genSearchWidget = document . querySelector ( "gen-search-widget" ) ;
447
+ if ( ! genSearchWidget || ! genSearchWidget . shadowRoot ) return ;
448
+
449
+ const ucsResults = genSearchWidget . shadowRoot . querySelector ( "ucs-results" ) ;
450
+ if ( ! ucsResults || ! ucsResults . shadowRoot ) return ;
451
+
452
+ const ucsSummary = ucsResults . shadowRoot . querySelector ( "ucs-summary" ) ;
453
+ if ( ucsSummary && ucsSummary . shadowRoot ) {
454
+ const loaderContainer = ucsSummary . shadowRoot . querySelector ( ".loader-container" ) ;
455
+ if ( loaderContainer ) {
456
+ loaderContainer . style . height = `${ fixedHeight + 45 } px` ;
457
+ }
458
+ const summaryContainer = ucsSummary . shadowRoot . querySelector ( ".summary-container" ) ;
459
+ if ( summaryContainer ) {
460
+ summaryContainer . style . height = summaryContainer . className . match ( / e x p a n d e d / ) ? "auto" : `${ fixedHeight } px` ;
461
+ }
462
+ }
463
+
464
+ const ucsSearchBar = genSearchWidget . shadowRoot . querySelector ( "ucs-search-bar" ) ;
465
+ if ( ucsSearchBar && ucsSearchBar . shadowRoot ) {
466
+ const searchInput = ucsSearchBar . shadowRoot . querySelector ( "input" ) ;
467
+ if ( searchInput && ! searchInputHandled ) {
468
+ searchInputHandled = true ;
469
+ searchInput . addEventListener ( 'keyup' , ( event ) => {
470
+ if ( event . key === 'Enter' ) {
471
+ console . log ( 'Search triggered by Enter key' , searchInput . value ) ;
472
+ }
473
+ } ) ;
474
+ }
475
+ if ( searchInput ) {
476
+ searchInput . placeholder = 'Press Enter to search' ;
477
+ }
478
+ }
479
+ }
480
+
481
+ function observeWidget ( ) {
482
+ // Disconnect previous observer if any
483
+ if ( observer ) observer . disconnect ( ) ;
484
+
485
+ const genSearchWidget = document . querySelector ( "gen-search-widget" ) ;
486
+ if ( ! genSearchWidget ) return ;
487
+
488
+ observer = new MutationObserver ( ( ) => {
489
+ updateWidget ( ) ;
490
+ } ) ;
491
+
492
+ // Observe the shadowRoot of genSearchWidget for subtree changes
493
+ if ( genSearchWidget . shadowRoot ) {
494
+ observer . observe ( genSearchWidget . shadowRoot , {
495
+ childList : true ,
496
+ subtree : true
497
+ } ) ;
498
+ }
499
+ // Initial update
500
+ updateWidget ( ) ;
501
+ }
502
+
503
+ // Observe for the gen-search-widget being added to the DOM
504
+ const rootObserver = new MutationObserver ( ( ) => {
505
+ if ( document . querySelector ( "gen-search-widget" ) ) {
506
+ observeWidget ( ) ;
507
+ }
508
+ } ) ;
509
+ rootObserver . observe ( document . body , { childList : true , subtree : true } ) ;
510
+
511
+ // In case the widget is already present
512
+ if ( document . querySelector ( "gen-search-widget" ) ) {
513
+ observeWidget ( ) ;
514
+ }
515
+
516
+ // Hot reload cleanup
517
+ if ( import . meta. webpackHot ) onReset ( ( ) => {
518
+ if ( observer ) observer . disconnect ( ) ;
519
+ rootObserver . disconnect ( ) ;
520
+ } ) ;
521
+ } ;
522
+
440
523
// TEST: genSearchWidgetFixer({ fixedHeight: 300, intervalDelay: 50 });
0 commit comments