Compare commits

..

No commits in common. "7c99193e25571f2602c9f5a70444d62e6c537319" and "4489319d7055127c07cfc29d9ac32942b7d8fa02" have entirely different histories.

5 changed files with 7 additions and 34 deletions

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "twitch-vod-manager", "name": "twitch-vod-manager",
"version": "4.6.77", "version": "4.6.76",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "twitch-vod-manager", "name": "twitch-vod-manager",
"version": "4.6.77", "version": "4.6.76",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"axios": "^1.6.0", "axios": "^1.6.0",

View File

@ -1,6 +1,6 @@
{ {
"name": "twitch-vod-manager", "name": "twitch-vod-manager",
"version": "4.6.77", "version": "4.6.76",
"description": "Twitch VOD Manager - Download Twitch VODs easily", "description": "Twitch VOD Manager - Download Twitch VODs easily",
"main": "dist/main.js", "main": "dist/main.js",
"author": "xRangerDE", "author": "xRangerDE",

View File

@ -194,14 +194,9 @@ function changeLanguage(lang: string): void {
const activeTabId = document.querySelector('.tab-content.active')?.id || 'vodsTab'; const activeTabId = document.querySelector('.tab-content.active')?.id || 'vodsTab';
const activeTab = activeTabId.replace('Tab', ''); const activeTab = activeTabId.replace('Tab', '');
if (activeTab === 'vods' && currentStreamer) { if (activeTab === 'vods' && currentStreamer) {
const setTitle = (window as unknown as { setPageTitle?: (text: string) => void }).setPageTitle; byId('pageTitle').textContent = currentStreamer;
if (typeof setTitle === 'function') setTitle(currentStreamer);
else byId('pageTitle').textContent = currentStreamer;
} else { } else {
const setTitle = (window as unknown as { setPageTitle?: (text: string) => void }).setPageTitle; byId('pageTitle').textContent = (UI_TEXT.tabs as Record<string, string>)[activeTab] || UI_TEXT.appName;
const text = (UI_TEXT.tabs as Record<string, string>)[activeTab] || UI_TEXT.appName;
if (typeof setTitle === 'function') setTitle(text);
else byId('pageTitle').textContent = text;
} }
void refreshRuntimeMetrics(); void refreshRuntimeMetrics();

View File

@ -751,9 +751,7 @@ async function selectStreamer(name: string, forceRefresh = false): Promise<void>
const savedY = vodScrollPositions[name]; const savedY = vodScrollPositions[name];
pendingScrollRestore = (typeof savedY === 'number' && savedY > 0) ? { streamer: name, y: savedY } : null; pendingScrollRestore = (typeof savedY === 'number' && savedY > 0) ? { streamer: name, y: savedY } : null;
renderStreamers(); renderStreamers();
const setTitle = (window as unknown as { setPageTitle?: (text: string) => void }).setPageTitle; byId('pageTitle').textContent = name;
if (typeof setTitle === 'function') setTitle(name);
else byId('pageTitle').textContent = name;
// Kick off the profile header load in parallel with VOD fetching. // Kick off the profile header load in parallel with VOD fetching.
// It's a separate request stream and not strictly needed for the VOD // It's a separate request stream and not strictly needed for the VOD

View File

@ -20,7 +20,6 @@ async function init(): Promise<void> {
byId('versionText').textContent = `v${version}`; byId('versionText').textContent = `v${version}`;
byId('versionInfo').textContent = `Version: v${version}`; byId('versionInfo').textContent = `Version: v${version}`;
appVersion = version;
document.title = `${UI_TEXT.appName} v${version}`; document.title = `${UI_TEXT.appName} v${version}`;
byId<HTMLInputElement>('clientId').value = config.client_id ?? ''; byId<HTMLInputElement>('clientId').value = config.client_id ?? '';
@ -637,24 +636,6 @@ async function updateStatsBar(): Promise<void> {
let toastHideTimer: number | null = null; let toastHideTimer: number | null = null;
let queueSyncTimer: number | null = null; let queueSyncTimer: number | null = null;
let appVersion = '';
// Single source of truth for what the user is looking at — keeps the
// visible H1, the document title (which drives the OS task bar / Alt+Tab
// label), and the app version pill in sync. Previously document.title was
// stamped once at boot, so the OS task bar always read "Twitch VOD
// Manager v4.6.76" no matter what tab or streamer was active.
(window as unknown as { setPageTitle: (text: string) => void }).setPageTitle = setPageTitle;
function setPageTitle(text: string): void {
const titleEl = document.getElementById('pageTitle');
if (titleEl) titleEl.textContent = text;
const appName = UI_TEXT.appName;
const versionSuffix = appVersion ? ` v${appVersion}` : '';
document.title = text && text !== appName
? `${text} - ${appName}${versionSuffix}`
: `${appName}${versionSuffix}`;
}
let queueSyncInFlight = false; let queueSyncInFlight = false;
let lastQueueActivityAt = Date.now(); let lastQueueActivityAt = Date.now();
@ -869,10 +850,9 @@ function showTab(tab: string): void {
// Only show the streamer name on the VODs tab — otherwise the title would // Only show the streamer name on the VODs tab — otherwise the title would
// mismatch the tab content (e.g. "streamer X" while on Settings) // mismatch the tab content (e.g. "streamer X" while on Settings)
const pageTitleText = (tab === 'vods' && currentStreamer) byId('pageTitle').textContent = (tab === 'vods' && currentStreamer)
? currentStreamer ? currentStreamer
: (titles[tab] || UI_TEXT.appName); : (titles[tab] || UI_TEXT.appName);
setPageTitle(pageTitleText);
persistActiveTab(tab); persistActiveTab(tab);