Compare commits
2 Commits
1b8624d88a
...
8ef2ce50e7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8ef2ce50e7 | ||
|
|
5d5ffa675b |
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.57",
|
"version": "4.6.58",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "twitch-vod-manager",
|
"name": "twitch-vod-manager",
|
||||||
"version": "4.6.57",
|
"version": "4.6.58",
|
||||||
"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.57",
|
"version": "4.6.58",
|
||||||
"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",
|
||||||
|
|||||||
@ -1561,12 +1561,23 @@ function renderMergeFiles(): void {
|
|||||||
byId('btnMerge').disabled = mergeFiles.length < 2;
|
byId('btnMerge').disabled = mergeFiles.length < 2;
|
||||||
|
|
||||||
if (mergeFiles.length === 0) {
|
if (mergeFiles.length === 0) {
|
||||||
list.innerHTML = `
|
// Build via DOM API to keep the renderer clean of inline-styled
|
||||||
<div class="empty-state" style="padding: 40px 20px;">
|
// HTML strings. The empty-state SVG is the same plus-icon the
|
||||||
<svg width="48" height="48" viewBox="0 0 24 24" fill="currentColor" style="opacity:0.3"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>
|
// static HTML uses, just built programmatically.
|
||||||
<p style="margin-top:10px">${UI_TEXT.merge.empty}</p>
|
list.replaceChildren();
|
||||||
</div>
|
const wrap = document.createElement('div');
|
||||||
`;
|
wrap.className = 'empty-state merge-empty-state';
|
||||||
|
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
||||||
|
svg.setAttribute('viewBox', '0 0 24 24');
|
||||||
|
svg.setAttribute('fill', 'currentColor');
|
||||||
|
const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
||||||
|
path.setAttribute('d', 'M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z');
|
||||||
|
svg.appendChild(path);
|
||||||
|
wrap.appendChild(svg);
|
||||||
|
const p = document.createElement('p');
|
||||||
|
p.textContent = UI_TEXT.merge.empty;
|
||||||
|
wrap.appendChild(p);
|
||||||
|
list.appendChild(wrap);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2086,6 +2086,23 @@ select option {
|
|||||||
line-height: 1.4;
|
line-height: 1.4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Merge-tab empty state — uses the global .empty-state base and adds
|
||||||
|
its own padding override since the merge file-list container sits
|
||||||
|
inside a settings-card with its own padding. */
|
||||||
|
.merge-empty-state {
|
||||||
|
padding: 40px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.merge-empty-state svg {
|
||||||
|
opacity: 0.3;
|
||||||
|
width: 48px;
|
||||||
|
height: 48px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.merge-empty-state p {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
/* Old generic scrollbar rules were dead — superseded by the
|
/* Old generic scrollbar rules were dead — superseded by the
|
||||||
purple-themed *::-webkit-scrollbar block further down the file.
|
purple-themed *::-webkit-scrollbar block further down the file.
|
||||||
Removed to avoid confusion when someone greps for scrollbar styles. */
|
Removed to avoid confusion when someone greps for scrollbar styles. */
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user