fix(slint): spinner on home/album/artist + dedupe only in All-tab carousel
Home, Album and Artist views now show the rotating LoadingSpinner (same as search) above a label while the initial load runs, replacing the bare Loading… text. The top-result-artist dedupe moved from map_search_all into apply_search and replace_category: the full artists list is kept in SearchState.artists (used by the Artists tab grid), and a separate artists-carousel drops the duplicate next to the Most-popular hero on the All tab. cc
This commit is contained in:
6 files changed
+92
-33
No files matched your search
@@ -14,6 +14,7 @@ import { ContextMenu } from "../primitives/ContextMenu.slint";
|
||||
import { ContextMenuItem } from "../primitives/ContextMenuItem.slint";
|
||||
import { TrackPlayCell } from "../primitives/TrackPlayCell.slint";
|
||||
import { TrackContextMenu } from "../primitives/TrackContextMenu.slint";
|
||||
import { LoadingSpinner } from "../primitives/LoadingSpinner.slint";
|
||||
import { Carousel } from "../discover/Carousel.slint";
|
||||
import { NavButtons } from "../shell/NavButtons.slint";
|
||||
|
||||
@@ -297,10 +298,22 @@ export component ArtistPageView inherits Rectangle {
|
||||
|
||||
Rectangle { height: 36px; }
|
||||
|
||||
if ArtistState.loading && ArtistState.top-tracks.length == 0: Text {
|
||||
text: @tr("Loading artist...");
|
||||
color: Theme.text-muted;
|
||||
font-size: Typography.body;
|
||||
if ArtistState.loading && ArtistState.top-tracks.length == 0: Rectangle {
|
||||
height: 280px;
|
||||
VerticalLayout {
|
||||
alignment: center;
|
||||
spacing: 18px;
|
||||
HorizontalLayout {
|
||||
alignment: center;
|
||||
LoadingSpinner { size: 36px; }
|
||||
}
|
||||
Text {
|
||||
text: @tr("Loading artist…");
|
||||
color: Theme.text-muted;
|
||||
font-size: 13px;
|
||||
horizontal-alignment: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// --- Popular tracks ----------------------------------------------
|
||||
|
||||
Reference in new issue
Block a user