diff --git a/README.md b/README.md
index cabe654..316c2e9 100644
--- a/README.md
+++ b/README.md
@@ -10,6 +10,11 @@ Desktop downloader for Windows with package-based queue management, multi-provid
## Changelog
+### 2.0.11
+
+- Keep Account Overview and Usage Rules inside the same fixed layout frame.
+- Prevent sizing and scroll-mode changes when switching between the account tabs.
+
### 2.0.10
- Add locally bundled provider logos throughout account management.
diff --git a/package-lock.json b/package-lock.json
index fd4a437..b13a0ac 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "real-debrid-downloader",
- "version": "2.0.10",
+ "version": "2.0.11",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "real-debrid-downloader",
- "version": "2.0.10",
+ "version": "2.0.11",
"license": "MIT",
"dependencies": {
"adm-zip": "0.6.0",
diff --git a/package.json b/package.json
index c90ce88..0855749 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "real-debrid-downloader",
- "version": "2.0.10",
+ "version": "2.0.11",
"description": "Desktop downloader",
"main": "build/main/main/main.js",
"author": "Sucukdeluxe",
diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx
index 400a18a..3b82d77 100644
--- a/src/renderer/App.tsx
+++ b/src/renderer/App.tsx
@@ -5692,7 +5692,7 @@ export function App(): ReactElement {
)}
{settingsSubTab === "accounts" && (
-
+
Accountverwaltung
@@ -5735,7 +5735,8 @@ export function App(): ReactElement {
-
+
+
Rotations-Verlauf
@@ -5760,7 +5761,7 @@ export function App(): ReactElement {
-
+
Hoster-Reihenfolge
Lege fest, in welcher Reihenfolge die Debrid-Accounts für Links genutzt werden.
@@ -5817,7 +5818,7 @@ export function App(): ReactElement {
{configuredProviders.length >= 1 && (
-
+
Hoster-Zuordnung
Lege fest, welcher Debrid-Provider sich um welchen Filehoster kümmert. Nicht zugeordnete Hoster nutzen die Standard-Reihenfolge oben.
{(() => {
@@ -5903,10 +5904,11 @@ export function App(): ReactElement {
>
);
})()}
-
- )}
-
-
+
+ )}
+
+
+
Accounts
diff --git a/src/renderer/styles.css b/src/renderer/styles.css
index dc49fd1..974123e 100644
--- a/src/renderer/styles.css
+++ b/src/renderer/styles.css
@@ -1254,14 +1254,6 @@ body,
background: color-mix(in srgb, var(--surface) 96%, transparent);
}
-.account-settings-layout.rules {
- grid-template-rows: auto auto;
- align-content: start;
- gap: 8px;
- overflow-y: auto;
- padding-bottom: 8px;
-}
-
.account-management-heading {
display: flex;
align-items: center;
@@ -1327,12 +1319,26 @@ body,
}
.account-overview-panel[hidden],
-.account-rule-section[hidden] {
+.account-rules-panel[hidden] {
display: none;
}
+.account-rules-panel {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+ min-width: 0;
+ min-height: 0;
+ overflow-x: hidden;
+ overflow-y: auto;
+ padding: 8px;
+}
+
.account-rule-section {
- margin: 0 8px;
+ width: 100%;
+ min-width: 0;
+ margin: 0;
+ flex: 0 0 auto;
}
.account-board {
diff --git a/tests/account-layout.test.ts b/tests/account-layout.test.ts
new file mode 100644
index 0000000..2db0ee1
--- /dev/null
+++ b/tests/account-layout.test.ts
@@ -0,0 +1,15 @@
+import { readFileSync } from "node:fs";
+import { describe, expect, it } from "vitest";
+
+const appSource = readFileSync(new URL("../src/renderer/App.tsx", import.meta.url), "utf8");
+const styles = readFileSync(new URL("../src/renderer/styles.css", import.meta.url), "utf8");
+
+describe("account management layout", () => {
+ it("keeps both account tabs inside the same fixed content row", () => {
+ expect(appSource).toContain('
');
+ expect(appSource).not.toContain("account-settings-layout ${accountManagementTab}");
+ expect(appSource).toContain('
');
+ expect(styles).not.toMatch(/\.account-settings-layout\.rules\s*{/);
+ expect(styles).toMatch(/\.account-rules-panel\s*{[^}]*min-width:\s*0;[^}]*min-height:\s*0;[^}]*overflow-y:\s*auto;/s);
+ });
+});