Release v1.4.24 with UI improvements
- Fix drag overlay appearing during internal package reorder - Rename "Paket abbrechen" to "Paket löschen" - Make package deletion instant (remove performQuickAction delay) - Add A-Z / Z-A sorting buttons for packages Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
9598fca34e
commit
c1e614650a
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "real-debrid-downloader",
|
"name": "real-debrid-downloader",
|
||||||
"version": "1.4.23",
|
"version": "1.4.24",
|
||||||
"description": "Real-Debrid Downloader Desktop (Electron + React + TypeScript)",
|
"description": "Real-Debrid Downloader Desktop (Electron + React + TypeScript)",
|
||||||
"main": "build/main/main/main.js",
|
"main": "build/main/main/main.js",
|
||||||
"author": "Sucukdeluxe",
|
"author": "Sucukdeluxe",
|
||||||
|
|||||||
@ -743,6 +743,7 @@ export function App(): ReactElement {
|
|||||||
className={`app-shell${dragOver ? " drag-over" : ""}`}
|
className={`app-shell${dragOver ? " drag-over" : ""}`}
|
||||||
onDragEnter={(event) => {
|
onDragEnter={(event) => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
if (draggedPackageIdRef.current) { return; }
|
||||||
dragDepthRef.current += 1;
|
dragDepthRef.current += 1;
|
||||||
if (!dragOverRef.current) {
|
if (!dragOverRef.current) {
|
||||||
dragOverRef.current = true;
|
dragOverRef.current = true;
|
||||||
@ -753,6 +754,7 @@ export function App(): ReactElement {
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
}}
|
}}
|
||||||
onDragLeave={() => {
|
onDragLeave={() => {
|
||||||
|
if (draggedPackageIdRef.current) { return; }
|
||||||
dragDepthRef.current = Math.max(0, dragDepthRef.current - 1);
|
dragDepthRef.current = Math.max(0, dragDepthRef.current - 1);
|
||||||
if (dragDepthRef.current === 0 && dragOverRef.current) {
|
if (dragDepthRef.current === 0 && dragOverRef.current) {
|
||||||
dragOverRef.current = false;
|
dragOverRef.current = false;
|
||||||
@ -869,6 +871,34 @@ export function App(): ReactElement {
|
|||||||
>
|
>
|
||||||
{allPackagesCollapsed ? "Alles ausklappen" : "Alles einklappen"}
|
{allPackagesCollapsed ? "Alles ausklappen" : "Alles einklappen"}
|
||||||
</button>
|
</button>
|
||||||
|
<button
|
||||||
|
className="btn"
|
||||||
|
disabled={packages.length < 2}
|
||||||
|
onClick={() => {
|
||||||
|
const sorted = [...snapshot.session.packageOrder].sort((a, b) => {
|
||||||
|
const nameA = (snapshot.session.packages[a]?.name ?? "").toLowerCase();
|
||||||
|
const nameB = (snapshot.session.packages[b]?.name ?? "").toLowerCase();
|
||||||
|
return nameA.localeCompare(nameB);
|
||||||
|
});
|
||||||
|
void window.rd.reorderPackages(sorted);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
A-Z
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
className="btn"
|
||||||
|
disabled={packages.length < 2}
|
||||||
|
onClick={() => {
|
||||||
|
const sorted = [...snapshot.session.packageOrder].sort((a, b) => {
|
||||||
|
const nameA = (snapshot.session.packages[a]?.name ?? "").toLowerCase();
|
||||||
|
const nameB = (snapshot.session.packages[b]?.name ?? "").toLowerCase();
|
||||||
|
return nameB.localeCompare(nameA);
|
||||||
|
});
|
||||||
|
void window.rd.reorderPackages(sorted);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Z-A
|
||||||
|
</button>
|
||||||
<input
|
<input
|
||||||
className="search-input"
|
className="search-input"
|
||||||
type="search"
|
type="search"
|
||||||
@ -907,7 +937,7 @@ export function App(): ReactElement {
|
|||||||
onToggleCollapse={() => {
|
onToggleCollapse={() => {
|
||||||
setCollapsedPackages((prev) => ({ ...prev, [pkg.id]: !(prev[pkg.id] ?? false) }));
|
setCollapsedPackages((prev) => ({ ...prev, [pkg.id]: !(prev[pkg.id] ?? false) }));
|
||||||
}}
|
}}
|
||||||
onCancel={() => { void performQuickAction(() => window.rd.cancelPackage(pkg.id)); }}
|
onCancel={() => { void window.rd.cancelPackage(pkg.id); }}
|
||||||
onMoveUp={() => movePackage(pkg.id, "up")}
|
onMoveUp={() => movePackage(pkg.id, "up")}
|
||||||
onMoveDown={() => movePackage(pkg.id, "down")}
|
onMoveDown={() => movePackage(pkg.id, "down")}
|
||||||
onToggle={() => { void window.rd.togglePackage(pkg.id); }}
|
onToggle={() => { void window.rd.togglePackage(pkg.id); }}
|
||||||
@ -1201,7 +1231,7 @@ const PackageCard = memo(function PackageCard({ pkg, items, packageSpeed, isFirs
|
|||||||
<button className="btn" disabled={isFirst} onClick={onMoveUp} title="Nach oben">▲</button>
|
<button className="btn" disabled={isFirst} onClick={onMoveUp} title="Nach oben">▲</button>
|
||||||
<button className="btn" disabled={isLast} onClick={onMoveDown} title="Nach unten">▼</button>
|
<button className="btn" disabled={isLast} onClick={onMoveDown} title="Nach unten">▼</button>
|
||||||
<button className={`btn${pkg.enabled ? "" : " btn-active"}`} onClick={onToggle}>{pkg.enabled ? "Paket stoppen" : "Paket starten"}</button>
|
<button className={`btn${pkg.enabled ? "" : " btn-active"}`} onClick={onToggle}>{pkg.enabled ? "Paket stoppen" : "Paket starten"}</button>
|
||||||
<button className="btn danger" onClick={onCancel}>Paket abbrechen</button>
|
<button className="btn danger" onClick={onCancel}>Paket löschen</button>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<div className="progress"><div style={{ width: `${progress}%` }} /></div>
|
<div className="progress"><div style={{ width: `${progress}%` }} /></div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user