Fix conditional settings hooks and release Manager 0.6.11

This commit is contained in:
Дмитрий committed 2026-10-10 07:49:41 +05:00
1 parent b0951dbee7
commit 376f1dbb46
7 files changed
+33 -26

No files matched your search

Generated
+3 -3
View File
@@ -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",
+1 -1
View File
@@ -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"
@@ -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.
+2 -2
View File
@@ -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",
+1 -1
View File
@@ -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": {
+1 -1
View File
@@ -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",
+18 -18
View File
@@ -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 (
<div className="max-w-xl">
@@ -354,24 +372,6 @@ export function SettingsPage(props: {
}
}
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]);
async function openPreset(id: string) {
setSaved(null);
if (squid) {