diff --git a/Cargo.lock b/Cargo.lock index 05306f0..4f54161 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -491,7 +491,7 @@ dependencies = [ [[package]] name = "coa-core" -version = "0.6.10" +version = "0.6.11" dependencies = [ "base64 0.22.1", "chrono", @@ -520,7 +520,7 @@ dependencies = [ [[package]] name = "coa-release" -version = "0.6.10" +version = "0.6.11" dependencies = [ "chrono", "coa-core", @@ -529,7 +529,7 @@ dependencies = [ [[package]] name = "coa-server-manager" -version = "0.6.10" +version = "0.6.11" dependencies = [ "coa-core", "serde", diff --git a/Cargo.toml b/Cargo.toml index 5c3422e..f1e6e23 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ resolver = "2" members = ["crates/coa-core", "crates/coa-release", "src-tauri"] [workspace.package] -version = "0.6.10" +version = "0.6.11" edition = "2021" license = "AGPL-3.0-only" diff --git a/changelog.d/20261010-settings-blank-window.md b/changelog.d/20261010-settings-blank-window.md new file mode 100644 index 0000000..870c869 --- /dev/null +++ b/changelog.d/20261010-settings-blank-window.md @@ -0,0 +1,7 @@ +--- +area: manager +type: fixed +audience: admins +title: Server and Bots settings open without a blank window +--- +Opening settings no longer crashes the interface after loading. Unsaved changes can still be saved or discarded before leaving the page. diff --git a/package-lock.json b/package-lock.json index a8f15aa..2984d6b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "coa-server-manager", - "version": "0.6.10", + "version": "0.6.11", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "coa-server-manager", - "version": "0.6.10", + "version": "0.6.11", "dependencies": { "@tauri-apps/api": "^2.12.0", "@tauri-apps/plugin-dialog": "^2.8.0", diff --git a/package.json b/package.json index 17db782..4d3ff06 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "coa-server-manager", "private": true, - "version": "0.6.10", + "version": "0.6.11", "license": "AGPL-3.0-only", "type": "module", "scripts": { diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 6660282..5f0fd20 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "CoA Server Manager", - "version": "0.6.10", + "version": "0.6.11", "identifier": "com.coa.servermanager", "build": { "beforeDevCommand": "npm run dev", diff --git a/src/screens/SettingsPage.tsx b/src/screens/SettingsPage.tsx index ceb2172..76f6bc2 100644 --- a/src/screens/SettingsPage.tsx +++ b/src/screens/SettingsPage.tsx @@ -243,6 +243,24 @@ export function SettingsPage(props: { }); const pending = dirtyKeys.length + Object.keys(rawEdits).length + Object.keys(colEdits).length; + useEffect(() => { + if (pending > 0) { + props.onRegisterGuard?.({ + isDirty: () => pending > 0, + save: () => saveEverything(), + discard: () => { + setDraft({}); + setErrors({}); + setRawEdits({}); + setColEdits({}); + }, + }); + } else { + props.onRegisterGuard?.(null); + } + return () => props.onRegisterGuard?.(null); + }, [pending, props.onRegisterGuard]); + if (fatal) { return (