perf: lazy-load accordion content in library metadata settings (#2442)

This commit is contained in:
ACX
2026-01-23 19:17:53 -07:00
committed by GitHub
parent 308d5bf87d
commit 1aea55faea
2 changed files with 13 additions and 6 deletions

View File

@@ -50,7 +50,7 @@
<div class="settings-card">
@if (libraries$ | async; as libraries) {
<p-accordion>
<p-accordion [value]="activePanel" (valueChange)="onPanelChange($event)">
@for (library of libraries; track trackByLibrary($index, library); let i = $index) {
<p-accordion-panel [value]="i">
<p-accordion-header>
@@ -75,11 +75,13 @@
</p-accordion-header>
<p-accordion-content>
<div class="accordion-content-wrapper">
<app-metadata-advanced-fetch-options
[currentMetadataOptions]="getLibraryOptions(library.id!)"
[submitButtonLabel]="'Save ' + library.name + ' Settings'"
(metadataOptionsSubmitted)="onLibraryMetadataOptionsSubmitted(library.id!, $event)">
</app-metadata-advanced-fetch-options>
@if (activePanel === i) {
<app-metadata-advanced-fetch-options
[currentMetadataOptions]="getLibraryOptions(library.id!)"
[submitButtonLabel]="'Save ' + library.name + ' Settings'"
(metadataOptionsSubmitted)="onLibraryMetadataOptionsSubmitted(library.id!, $event)">
</app-metadata-advanced-fetch-options>
}
</div>
</p-accordion-content>
</p-accordion-panel>

View File

@@ -32,6 +32,7 @@ export class LibraryMetadataSettingsComponent implements OnInit {
defaultMetadataOptions: MetadataRefreshOptions = this.getDefaultMetadataOptions();
libraryMetadataOptions: Record<number, MetadataRefreshOptions> = {};
activePanel: number | null = null;
ngOnInit() {
this.appSettingsService.appSettings$.subscribe(appSettings => {
@@ -54,6 +55,10 @@ export class LibraryMetadataSettingsComponent implements OnInit {
});
}
onPanelChange(event: unknown) {
this.activePanel = typeof event === 'number' ? event : null;
}
onDefaultMetadataOptionsSubmitted(options: MetadataRefreshOptions) {
this.defaultMetadataOptions = options;
this.saveDefaultMetadataOptions(options);