kv-music/js/router.js

57 lines
1.7 KiB
JavaScript

//router.js
import { getTrackArtists } from './utils.js';
export function createRouter(ui) {
const router = async () => {
const path = window.location.hash.substring(1) || 'home';
const [page, param] = path.split('/');
switch (page) {
case 'search':
await ui.renderSearchPage(decodeURIComponent(param));
break;
case 'album':
await ui.renderAlbumPage(param);
break;
case 'artist':
await ui.renderArtistPage(param);
break;
case 'playlist':
await ui.renderPlaylistPage(param, 'api');
break;
case 'userplaylist':
await ui.renderPlaylistPage(param, 'user');
break;
case 'mix':
await ui.renderMixPage(param);
break;
case 'library':
await ui.renderLibraryPage();
break;
case 'recent':
await ui.renderRecentPage();
break;
case 'home':
await 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';
}
}