Resolves an issue where Tidal playlists with UUIDs were incorrectly identified as missing user playlists. Introduces explicit source (api/user) parameter to renderPlaylistPage for reliable routing. Restricts the Share button to user playlists only and fixes npm deprecation warnings. # Conflicts: # package.json
57 lines
1.6 KiB
JavaScript
57 lines
1.6 KiB
JavaScript
//router.js
|
|
import { getTrackArtists } from './utils.js';
|
|
|
|
export function createRouter(ui) {
|
|
const router = () => {
|
|
const path = window.location.hash.substring(1) || "home";
|
|
const [page, param] = path.split('/');
|
|
|
|
switch (page) {
|
|
case 'search':
|
|
ui.renderSearchPage(decodeURIComponent(param));
|
|
break;
|
|
case 'album':
|
|
ui.renderAlbumPage(param);
|
|
break;
|
|
case 'artist':
|
|
ui.renderArtistPage(param);
|
|
break;
|
|
case 'playlist':
|
|
ui.renderPlaylistPage(param, 'api');
|
|
break;
|
|
case 'userplaylist':
|
|
ui.renderPlaylistPage(param, 'user');
|
|
break;
|
|
case 'mix':
|
|
ui.renderMixPage(param);
|
|
break;
|
|
case 'library':
|
|
ui.renderLibraryPage();
|
|
break;
|
|
case 'recent':
|
|
ui.renderRecentPage();
|
|
break;
|
|
case 'home':
|
|
ui.renderHomePage();
|
|
break;
|
|
default:
|
|
ui.showPage(page);
|
|
break;
|
|
}
|
|
};
|
|
|
|
return router;
|
|
}
|
|
|
|
export function updateTabTitle(player) {
|
|
if (player.currentTrack) {
|
|
const track = player.currentTrack;
|
|
document.title = `${track.title} • ${getTrackArtists(track)}`;
|
|
} else {
|
|
const hash = window.location.hash;
|
|
if (hash.includes('#album/') || hash.includes('#playlist/')) {
|
|
return;
|
|
}
|
|
document.title = 'Monochrome Music';
|
|
}
|
|
}
|