Release v1.4.3 with unified controls and resilient retries
Build and Release / build (push) Has been cancelled

This commit is contained in:
Sucukdeluxe
2026-02-27 18:11:50 +01:00
parent 01ed725136
commit 53212f45e3
7 changed files with 384 additions and 26 deletions
+20 -7
View File
@@ -404,6 +404,14 @@ export function App(): ReactElement {
});
};
const onStartPauseClick = async (): Promise<void> => {
if (snapshot.session.running) {
await performQuickAction(() => window.rd.togglePause());
return;
}
await onStartDownloads();
};
const onAddLinks = async (): Promise<void> => {
await performQuickAction(async () => {
await persistDraftSettings();
@@ -661,9 +669,9 @@ export function App(): ReactElement {
onDrop={onDrop}
>
<header className="top-header">
<div className="header-spacer" />
<div className="title-block">
<h1>Debrid Download Manager</h1>
<span>Multi-Provider Workflow</span>
<h1>Multi Debrid Downloader</h1>
</div>
<div className="metrics">
<div>{snapshot.speedText}</div>
@@ -675,12 +683,17 @@ export function App(): ReactElement {
</header>
<section className="control-strip">
<div className="buttons">
<button className="btn accent" disabled={!snapshot.canStart || actionBusy} onClick={() => { void onStartDownloads(); }}>Start</button>
<button className="btn" disabled={!snapshot.canPause || actionBusy} onClick={() => { void performQuickAction(() => window.rd.togglePause()); }}>
{snapshot.session.paused ? "Fortsetzen" : "Pause"}
<div className="buttons buttons-left">
<button
className="btn accent"
disabled={actionBusy || (!snapshot.canStart && !snapshot.canPause)}
onClick={() => { void onStartPauseClick(); }}
>
{snapshot.session.running ? (snapshot.session.paused ? "Fortsetzen" : "Pause") : "Start"}
</button>
<button className="btn" disabled={!snapshot.canStop || actionBusy} onClick={() => { void performQuickAction(() => window.rd.stop()); }}>Stop</button>
</div>
<div className="buttons buttons-right">
<button
className="btn"
disabled={actionBusy}
@@ -695,7 +708,7 @@ export function App(): ReactElement {
Alles leeren
</button>
<button className={`btn${snapshot.clipboardActive ? " btn-active" : ""}`} disabled={actionBusy} onClick={() => { void performQuickAction(() => window.rd.toggleClipboard()); }}>
Clipboard {snapshot.clipboardActive ? "An" : "Aus"}
Clipboard: {snapshot.clipboardActive ? "An" : "Aus"}
</button>
</div>
</section>
+40 -3
View File
@@ -69,9 +69,18 @@ body,
}
.top-header {
display: flex;
justify-content: space-between;
display: grid;
grid-template-columns: 1fr auto 1fr;
align-items: center;
gap: 10px;
}
.header-spacer {
min-height: 1px;
}
.title-block {
text-align: center;
}
.title-block h1 {
@@ -91,6 +100,7 @@ body,
gap: 12px;
color: var(--muted);
font-size: 13px;
justify-self: end;
}
.control-strip {
@@ -113,6 +123,11 @@ body,
gap: 8px;
}
.buttons-right {
margin-left: auto;
justify-content: flex-end;
}
.btn {
background: var(--button-bg);
color: var(--text);
@@ -677,6 +692,21 @@ td {
}
@media (max-width: 1100px) {
.top-header {
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
}
.header-spacer {
display: none;
}
.title-block {
text-align: center;
}
.control-strip {
flex-direction: column;
align-items: flex-start;
@@ -684,7 +714,14 @@ td {
.metrics {
flex-direction: column;
align-items: flex-end;
align-items: center;
justify-self: center;
}
.buttons-right {
width: 100%;
margin-left: 0;
justify-content: flex-end;
}
.settings-toolbar {