@@ -275,6 +275,23 @@ function generateSectionsHTML(): string {
275275 ` ;
276276}
277277
278+ function generateHeaderHTML ( ) : string {
279+ return `
280+ <div class="qs-header">
281+ <div class="qs-header-title">
282+ <div class="qs-header-icon">${ getIconMarkup ( "queue" , 20 ) } </div>
283+ <span class="qs-header-badges">${ renderBadge ( `v${ APP_VERSION } ` , "version" ) } ${ APP_CHANNEL ? renderBadge ( APP_CHANNEL . toUpperCase ( ) , "channel" ) : "" } </span>
284+ </div>
285+ <div class="qs-header-actions">
286+ ${ renderButton ( t ( 'ui.buttons.refresh' ) , "repeat" , { id : "qs-refresh" , tone : "subtle" } ) }
287+ ${ renderButton ( t ( 'ui.buttons.exportSettings' ) , "download" , { id : "qs-export-settings" , title : t ( 'ui.labels.exportSettings' ) } ) }
288+ ${ renderButton ( t ( 'ui.buttons.importSnapshots' ) , "chart-up" , { id : "qs-import-snapshots" , title : t ( 'ui.labels.importSnapshots' ) } ) }
289+ ${ renderButton ( t ( 'ui.buttons.importSettings' ) , "chart-up" , { id : "qs-import-settings" , title : t ( 'ui.labels.importSettings' ) } ) }
290+ </div>
291+ </div>
292+ ` ;
293+ }
294+
278295function generateSettingsHTML ( s : Settings ) : string {
279296 const collapsedClass = s . settingsCollapsed ? "collapsed" : "" ;
280297 const toggleIcon = "chevron-right" ;
@@ -353,6 +370,13 @@ function generateSettingsHTML(s: Settings): string {
353370 ` ;
354371}
355372
373+ export function renderHeader ( ) : void {
374+ const headerEl = document . querySelector ( ".qs-header" ) ;
375+ if ( headerEl ) {
376+ headerEl . outerHTML = generateHeaderHTML ( ) ;
377+ }
378+ }
379+
356380export function renderSettings ( ui : UIHandlers ) {
357381 const settingsEl = document . querySelector ( ".qs-settings" ) ;
358382 if ( settingsEl ) {
@@ -361,26 +385,14 @@ export function renderSettings(ui: UIHandlers) {
361385}
362386
363387export function openManagerModal ( ui : UIHandlers ) : void {
364- const versionBadge = renderBadge ( `v${ APP_VERSION } ` , "version" ) ;
365- const channelBadge = APP_CHANNEL ? renderBadge ( APP_CHANNEL . toUpperCase ( ) , "channel" ) : "" ;
366388 const sections = generateSectionsHTML ( ) ;
367389 const s = ui . getSettings ( ) ;
368390 const settingsHTML = generateSettingsHTML ( s ) ;
391+ const headerHTML = generateHeaderHTML ( ) ;
369392
370393 const body = `
371394 <div class="qs-container">
372- <div class="qs-header">
373- <div class="qs-header-title">
374- <div class="qs-header-icon">${ getIconMarkup ( "queue" , 20 ) } </div>
375- <span class="qs-header-badges">${ versionBadge } ${ channelBadge } </span>
376- </div>
377- <div class="qs-header-actions">
378- ${ renderButton ( t ( 'ui.buttons.refresh' ) , "repeat" , { id : "qs-refresh" , tone : "subtle" } ) }
379- ${ renderButton ( t ( 'ui.buttons.exportSettings' ) , "download" , { id : "qs-export-settings" , title : t ( 'ui.labels.exportSettings' ) } ) }
380- ${ renderButton ( t ( 'ui.buttons.importSnapshots' ) , "chart-up" , { id : "qs-import-snapshots" , title : t ( 'ui.labels.importSnapshots' ) } ) }
381- ${ renderButton ( t ( 'ui.buttons.importSettings' ) , "chart-up" , { id : "qs-import-settings" , title : t ( 'ui.labels.importSettings' ) } ) }
382- </div>
383- </div>
395+ ${ headerHTML }
384396 ${ settingsHTML }
385397 <div id="qs-list">
386398 ${ sections || `<div style="opacity:0.7">${ t ( 'ui.empty.noSnapshots' ) } </div>` }
@@ -484,6 +496,7 @@ export function openManagerModal(ui: UIHandlers): void {
484496 }
485497 if ( clickedButton ?. id === "qs-refresh" ) {
486498 e . preventDefault ( ) ;
499+ renderHeader ( ) ;
487500 renderSettings ( ui ) ;
488501 renderList ( ) ;
489502 return ;
@@ -732,6 +745,7 @@ export function openManagerModal(ui: UIHandlers): void {
732745 const newSettings : Settings = { ...s0 , language } ;
733746 ui . setSettings ( newSettings ) ;
734747 refreshLocale ( ) ;
748+ renderHeader ( ) ;
735749 renderSettings ( ui ) ;
736750 renderList ( ) ;
737751 return ;
0 commit comments