From e4ea7c746b78e5bf502e3b6fd5c7fd89c4b8f916 Mon Sep 17 00:00:00 2001 From: Animesh <69345507+n-ce@users.noreply.github.com> Date: Wed, 25 Dec 2024 19:30:07 +0530 Subject: [PATCH 1/4] Update miniPlayer.ts --- src/modules/miniPlayer.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/modules/miniPlayer.ts b/src/modules/miniPlayer.ts index 5d3823ad..c5c41b74 100644 --- a/src/modules/miniPlayer.ts +++ b/src/modules/miniPlayer.ts @@ -19,13 +19,14 @@ const mptext = document.getElementById('mptext') as HTMLDivElement; export function miniPlayerRoutingHandler(inHome: boolean, header: DOMTokenList) { - if (inHome) { header.add('hide'); document.getElementById('upperLayer')!.prepend(img); document.getElementById('meta')!.prepend(title, author); document.getElementById('playerControls')!.insertBefore(playButton, document.getElementById('seekFwdButton')); document.getElementById('selectors')!.appendChild(ytifyIcon); + // Update document title when in MiniPlayer (Home) + document.title = (store.stream.title || 'Home') + ' - ytify'; } else if (header.contains('hide')) { header.remove('hide'); @@ -33,6 +34,9 @@ export function miniPlayerRoutingHandler(inHome: boolean, header: DOMTokenList) mptext.append(title, author); miniPlayer.lastElementChild!.append(mptext, playButton); document.getElementById('ytifyIconContainer')!.prepend(ytifyIcon); + // Update document title when not in MiniPlayer + const activeRoute = routes.find(route => location.pathname === route); + const routeName = activeRoute ? document.querySelector(`nav a[href="${activeRoute}"]`)?.textContent : ''; + document.title = (routeName || 'ytify') + ' - ytify'; } - } From 8b2bc8febd61360dfbaae386f9c203e92252efc7 Mon Sep 17 00:00:00 2001 From: Animesh <69345507+n-ce@users.noreply.github.com> Date: Wed, 25 Dec 2024 19:39:12 +0530 Subject: [PATCH 2/4] Update router.ts --- src/scripts/router.ts | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/scripts/router.ts b/src/scripts/router.ts index 3481b20d..326269ff 100644 --- a/src/scripts/router.ts +++ b/src/scripts/router.ts @@ -6,14 +6,12 @@ import { miniPlayerRoutingHandler } from "../modules/miniPlayer"; import fetchList from "../modules/fetchList"; import { fetchCollection, superCollectionLoader } from "../lib/libraryUtils"; + const nav = document.querySelector('nav') as HTMLDivElement; const anchors = document.querySelectorAll('nav a') as NodeListOf; const sections = document.querySelectorAll('section') as NodeListOf; -const routes = ['/', '/upcoming', '/search', '/library', '/settings', '/list']; const queueParam = params.get('a'); - - function upcomingInjector(param: string) { loadingScreen.showModal(); @@ -29,10 +27,10 @@ function upcomingInjector(param: string) { if (queueParam) upcomingInjector(queueParam); -let prevPageIdx = routes.indexOf(location.pathname); +let prevPageIdx = store.routes.indexOf(location.pathname); function showSection(id: string) { - const routeIdx = routes.indexOf(id); + const routeIdx = store.routes.indexOf(id); miniPlayerRoutingHandler(id === '/', nav.parentElement!.classList); // Enables Reactivity to declare db modifications into UI @@ -58,7 +56,6 @@ function showSection(id: string) { prevPageIdx = routeIdx; } - nav.addEventListener('click', (e: Event) => { e.preventDefault(); @@ -91,7 +88,6 @@ nav.addEventListener('click', (e: Event) => { showSection(anchor.id); }); - // load section if name found in address else load library let route: string; const errorParam = params.get('e'); @@ -122,7 +118,7 @@ if (errorParam) { } else { - route = routes.find(route => location.pathname === route) || '/'; + route = store.routes.find(route => location.pathname === route) || '/'; const hasStreamQuery = params.has('s') || params.has('url') || params.has('text'); @@ -164,7 +160,4 @@ onpopstate = function() { showSection(location.pathname); - } - - From 882f424839163cbbd298d4515ec605a7a7b6686c Mon Sep 17 00:00:00 2001 From: Animesh <69345507+n-ce@users.noreply.github.com> Date: Wed, 25 Dec 2024 19:41:44 +0530 Subject: [PATCH 3/4] Update store.ts --- src/lib/store.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lib/store.ts b/src/lib/store.ts index d2b19332..eae98632 100644 --- a/src/lib/store.ts +++ b/src/lib/store.ts @@ -32,7 +32,8 @@ export const store: { superCollectionType: 'featured' | 'collections' | 'channels' | 'feed' | 'playlists', actionsMenu: CollectionItem, list: List & Record<'url' | 'type' | 'uploader', string>, - downloadFormat: 'opus' | 'wav' | 'mp3' | 'ogg' + downloadFormat: 'opus' | 'wav' | 'mp3' | 'ogg', + routes: string[] } = { player: { playbackState: 'none', @@ -85,6 +86,6 @@ export const store: { uploader: '', thumbnail: '' }, - downloadFormat: getSaved('dlFormat') as 'opus' || 'opus' + downloadFormat: getSaved('dlFormat') as 'opus' || 'opus', + routes: ['/', '/upcoming', '/search', '/library', '/settings', '/list'] } - From 1a4148f36fa662866c981f78449d7f7014ae21fa Mon Sep 17 00:00:00 2001 From: Animesh <69345507+n-ce@users.noreply.github.com> Date: Wed, 25 Dec 2024 19:42:26 +0530 Subject: [PATCH 4/4] Update miniPlayer.ts --- src/modules/miniPlayer.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/modules/miniPlayer.ts b/src/modules/miniPlayer.ts index c5c41b74..1ac2ce9f 100644 --- a/src/modules/miniPlayer.ts +++ b/src/modules/miniPlayer.ts @@ -9,7 +9,6 @@ if (store.loadImage === 'off') { img = ''; } - miniPlayer.addEventListener('click', (e) => { e.preventDefault(); if (!(e.target).matches('button')) @@ -17,7 +16,6 @@ miniPlayer.addEventListener('click', (e) => { }); const mptext = document.getElementById('mptext') as HTMLDivElement; - export function miniPlayerRoutingHandler(inHome: boolean, header: DOMTokenList) { if (inHome) { header.add('hide'); @@ -35,7 +33,7 @@ export function miniPlayerRoutingHandler(inHome: boolean, header: DOMTokenList) miniPlayer.lastElementChild!.append(mptext, playButton); document.getElementById('ytifyIconContainer')!.prepend(ytifyIcon); // Update document title when not in MiniPlayer - const activeRoute = routes.find(route => location.pathname === route); + const activeRoute = store.routes.find(route => location.pathname === route); const routeName = activeRoute ? document.querySelector(`nav a[href="${activeRoute}"]`)?.textContent : ''; document.title = (routeName || 'ytify') + ' - ytify'; }