perf(08-02): migrate cover-grid, artists-view, and genres-view virtualizers to repeat() directive

- cover-grid: all 3 virtualizers (single, before-split, after-split) use repeat() with album.ID key
- artists-view uses repeat() with artist.ID key
- genres-view uses repeat() with genre.name key
- Removed gridKeyFunction (now inlined in repeat calls)
- Removed .renderItem and .keyFunction properties from all virtualizers
This commit is contained in:
2026-03-04 23:16:55 -05:00
parent d2d7d8c6ce
commit 1c3514da1d
3 changed files with 28 additions and 27 deletions
@@ -10,6 +10,7 @@ import type {
VisibilityChangedEvent,
} from '@lit-labs/virtualizer';
import { grid } from '@lit-labs/virtualizer/layouts/grid.js';
import { repeat } from 'lit/directives/repeat.js';
import { GetTracksByGenre } from '@go/library/Library';
import type { library } from '@go/models';
import { LibraryController } from '@store/controllers/library-controller';
@@ -1168,13 +1169,13 @@ export class GenresView
>
<lit-virtualizer
.items=${entries}
.renderItem=${(
entry: GenreEntry,
) =>
this.renderGenreCard(entry)}
.layout=${this.gridLayout}
@visibilityChanged=${this.onVisibilityChanged}
></lit-virtualizer>
>${repeat(
entries,
(entry) => entry.genre.name,
(entry) => this.renderGenreCard(entry),
)}</lit-virtualizer>
</div>
${this.renderContextMenu()}
`;