diff --git a/frontend/src/components/explore-artist-details/explore-artist-details.ts b/frontend/src/components/explore-artist-details/explore-artist-details.ts index d7f11a8..c981310 100644 --- a/frontend/src/components/explore-artist-details/explore-artist-details.ts +++ b/frontend/src/components/explore-artist-details/explore-artist-details.ts @@ -2015,11 +2015,14 @@ export class ExploreArtistDetails extends LitElement implements ContextMenuHost /** * File path for one top track, resolved by recording MBID — the - * same key `inLibrary`/`localId` were set from. Works whether or - * not the containing release itself matched a local album. + * same key `localId` was set from. Works whether or not the + * containing release itself matched a local album. + * + * Gated on the same answer the row is drawn from, or a row drawn + * dimmed and `aria-disabled` would still try to play and fail. */ private async trackFilePath(track: LBTopRecording): Promise { - if (!(track.inLibrary || track.localId) || !track.recordingMbid) return null; + if (!isOwned(track) || !track.recordingMbid) return null; const libraryID = libraryStore.getSelectedLibraryId() ?? 0; const byMBID = await dictByName( diff --git a/frontend/src/components/explore-view/explore-view.ts b/frontend/src/components/explore-view/explore-view.ts index 0925d04..e3d4c63 100644 --- a/frontend/src/components/explore-view/explore-view.ts +++ b/frontend/src/components/explore-view/explore-view.ts @@ -1241,8 +1241,11 @@ export class ExploreView extends ViewLifecycleMixin(LitElement) implements Conte void this.playAlbum(rg, false); } - private onRecordingRowDblClick(r: { mbid: string; inLibrary: boolean; localId?: number }): void { - if (!r.inLibrary && !r.localId) return; + // The same answer the row is drawn from. It used to accept + // `inLibrary` as well, so a row drawn dimmed and `aria-disabled` + // would still try to play and fail with a notification. + private onRecordingRowDblClick(r: { mbid: string; localId?: number }): void { + if (!isOwned(r)) return; void this.playRecording(r.mbid); }