Make it obvious everywhere when you are looking at things you do not own #117

Merged
logan merged 6 commits from feat/38-ownership-visibility into main 2026-08-19 05:11:43 +00:00
2 changed files with 11 additions and 5 deletions
Showing only changes of commit 10eca353ab - Show all commits

No files matched your search

@@ -2015,11 +2015,14 @@ export class ExploreArtistDetails extends LitElement implements ContextMenuHost
/** /**
* File path for one top track, resolved by recording MBID — the * File path for one top track, resolved by recording MBID — the
* same key `inLibrary`/`localId` were set from. Works whether or * same key `localId` was set from. Works whether or not the
* not the containing release itself matched a local album. * 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<string | null> { private async trackFilePath(track: LBTopRecording): Promise<string | null> {
if (!(track.inLibrary || track.localId) || !track.recordingMbid) return null; if (!isOwned(track) || !track.recordingMbid) return null;
const libraryID = libraryStore.getSelectedLibraryId() ?? 0; const libraryID = libraryStore.getSelectedLibraryId() ?? 0;
const byMBID = await dictByName( const byMBID = await dictByName(
@@ -1241,8 +1241,11 @@ export class ExploreView extends ViewLifecycleMixin(LitElement) implements Conte
void this.playAlbum(rg, false); void this.playAlbum(rg, false);
} }
private onRecordingRowDblClick(r: { mbid: string; inLibrary: boolean; localId?: number }): void { // The same answer the row is drawn from. It used to accept
if (!r.inLibrary && !r.localId) return; // `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); void this.playRecording(r.mbid);
} }