Compare commits
2 Commits
a7c251f016
...
ce01034586
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ce01034586 | ||
|
|
6fdfa08ecb |
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "twitch-vod-manager",
|
"name": "twitch-vod-manager",
|
||||||
"version": "4.6.37",
|
"version": "4.6.38",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "twitch-vod-manager",
|
"name": "twitch-vod-manager",
|
||||||
"version": "4.6.37",
|
"version": "4.6.38",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^1.6.0",
|
"axios": "^1.6.0",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "twitch-vod-manager",
|
"name": "twitch-vod-manager",
|
||||||
"version": "4.6.37",
|
"version": "4.6.38",
|
||||||
"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",
|
||||||
|
|||||||
@ -352,7 +352,8 @@ const UI_TEXT_DE = {
|
|||||||
autoRecordScanTriggered: 'Manueller Scan: {count} Live-Aufnahme(n) gestartet.',
|
autoRecordScanTriggered: 'Manueller Scan: {count} Live-Aufnahme(n) gestartet.',
|
||||||
autoRecordScanEmpty: 'Manueller Scan: kein Streamer ist gerade live.',
|
autoRecordScanEmpty: 'Manueller Scan: kein Streamer ist gerade live.',
|
||||||
liveNowTooltip: 'Aktuell live auf Twitch',
|
liveNowTooltip: 'Aktuell live auf Twitch',
|
||||||
modalCloseAria: 'Dialog schliessen'
|
modalCloseAria: 'Dialog schliessen',
|
||||||
|
sidebarEmpty: 'Noch keine Streamer. Fuege oben rechts einen hinzu.'
|
||||||
},
|
},
|
||||||
vods: {
|
vods: {
|
||||||
noneTitle: 'Keine VODs',
|
noneTitle: 'Keine VODs',
|
||||||
|
|||||||
@ -352,7 +352,8 @@ const UI_TEXT_EN = {
|
|||||||
autoRecordScanTriggered: 'Manual scan: {count} live recording(s) started.',
|
autoRecordScanTriggered: 'Manual scan: {count} live recording(s) started.',
|
||||||
autoRecordScanEmpty: 'Manual scan: no streamers currently live.',
|
autoRecordScanEmpty: 'Manual scan: no streamers currently live.',
|
||||||
liveNowTooltip: 'Currently live on Twitch',
|
liveNowTooltip: 'Currently live on Twitch',
|
||||||
modalCloseAria: 'Close dialog'
|
modalCloseAria: 'Close dialog',
|
||||||
|
sidebarEmpty: 'No streamers yet. Add one via the input at the top right.'
|
||||||
},
|
},
|
||||||
vods: {
|
vods: {
|
||||||
noneTitle: 'No VODs',
|
noneTitle: 'No VODs',
|
||||||
|
|||||||
@ -426,6 +426,21 @@ function renderStreamers(): void {
|
|||||||
// Compact title margin when filter is shown — avoids double gap.
|
// Compact title margin when filter is shown — avoids double gap.
|
||||||
if (sectionTitle) sectionTitle.style.marginBottom = showFilter ? '4px' : '';
|
if (sectionTitle) sectionTitle.style.marginBottom = showFilter ? '4px' : '';
|
||||||
|
|
||||||
|
// Empty state — small hint inside the sidebar when no streamers have
|
||||||
|
// been added yet. Without this the user sees a heading + blank space
|
||||||
|
// and has to guess where to add the first streamer.
|
||||||
|
if (all.length === 0) {
|
||||||
|
const empty = document.createElement('div');
|
||||||
|
empty.className = 'streamer-list-empty';
|
||||||
|
empty.textContent = UI_TEXT.streamers.sidebarEmpty || 'No streamers yet. Add one via the top bar.';
|
||||||
|
list.appendChild(empty);
|
||||||
|
const counter = document.getElementById('streamerSectionCounter');
|
||||||
|
if (counter) counter.textContent = '';
|
||||||
|
const bulkBtn = document.getElementById('btnStreamerBulkRemove') as HTMLButtonElement | null;
|
||||||
|
if (bulkBtn) bulkBtn.style.display = 'none';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Section counter — "X · Y live". Updates on every re-render, so it
|
// Section counter — "X · Y live". Updates on every re-render, so it
|
||||||
// stays accurate after add/remove/live-status changes.
|
// stays accurate after add/remove/live-status changes.
|
||||||
const counter = document.getElementById('streamerSectionCounter');
|
const counter = document.getElementById('streamerSectionCounter');
|
||||||
|
|||||||
@ -2826,6 +2826,21 @@ input[type="number"]::-webkit-outer-spin-button {
|
|||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Empty-state hint inside the sidebar streamer list (no streamers
|
||||||
|
added yet). Subtler than the full-page .empty-state — fits the
|
||||||
|
narrow sidebar context. */
|
||||||
|
.streamer-list-empty {
|
||||||
|
padding: 12px 14px;
|
||||||
|
margin: 4px 8px;
|
||||||
|
color: var(--text-secondary);
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 1.45;
|
||||||
|
border: 1px dashed var(--border-soft);
|
||||||
|
border-radius: 6px;
|
||||||
|
text-align: center;
|
||||||
|
background: rgba(255, 255, 255, 0.02);
|
||||||
|
}
|
||||||
|
|
||||||
/* ============================================
|
/* ============================================
|
||||||
VOD DURATION BADGE — Twitch-style pill on the thumbnail
|
VOD DURATION BADGE — Twitch-style pill on the thumbnail
|
||||||
============================================ */
|
============================================ */
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user