Fix node modal form reset when toggling temperature (#713)

This commit is contained in:
rcourtman 2025-11-18 22:28:49 +00:00
parent d93a2c1053
commit 74c2dbfa15

View file

@ -206,6 +206,7 @@ export const NodeModal: Component<NodeModalProps> = (props) => {
// Track previous state to detect changes
let previousResetKey: number | undefined = undefined;
let previousNodeType: string | undefined = undefined;
let previousFormSourceSignature: string | null = null;
// Reset form when conditions change
createEffect(() => {
@ -222,6 +223,7 @@ export const NodeModal: Component<NodeModalProps> = (props) => {
setQuickSetupToken('');
setQuickSetupExpiry(null);
setTestResult(null);
previousFormSourceSignature = null;
return;
}
@ -233,6 +235,7 @@ export const NodeModal: Component<NodeModalProps> = (props) => {
setQuickSetupToken('');
setQuickSetupExpiry(null);
setTestResult(null);
previousFormSourceSignature = null;
return;
}
previousNodeType = nodeType;
@ -244,6 +247,7 @@ export const NodeModal: Component<NodeModalProps> = (props) => {
setQuickSetupToken('');
setQuickSetupExpiry(null);
setTestResult(null);
previousFormSourceSignature = null;
}
});
@ -254,8 +258,12 @@ export const NodeModal: Component<NodeModalProps> = (props) => {
createEffect(() => {
// Only populate form if we have an editing node AND it matches the current node type
// This prevents PVE data from being used when adding a PBS node
if (props.editingNode && props.editingNode.type === props.nodeType) {
const node = props.editingNode;
if (!node || node.type !== props.nodeType) {
previousFormSourceSignature = null;
return;
}
let username = ('user' in node ? node.user : '') || '';
let tokenName = node.tokenName || '';
@ -276,12 +284,12 @@ export const NodeModal: Component<NodeModalProps> = (props) => {
})
: undefined;
setFormData({
const formSource = {
name: node.name || '',
host: node.host || '',
guestURL: ('guestURL' in node ? node.guestURL : '') || '',
authType: node.hasPassword ? 'password' : 'token',
setupMode: 'auto',
setupMode: 'auto' as const,
user: username,
password: '',
tokenName: tokenName,
@ -296,8 +304,15 @@ export const NodeModal: Component<NodeModalProps> = (props) => {
monitorQueues: pmgConfig?.monitorQueues ?? true,
monitorQuarantine: pmgConfig?.monitorQuarantine ?? true,
monitorDomainStats: pmgConfig?.monitorDomainStats ?? false,
});
};
const formSourceSignature = JSON.stringify(formSource);
if (formSourceSignature === previousFormSourceSignature) {
return;
}
previousFormSourceSignature = formSourceSignature;
setFormData(formSource);
});
const handleSubmit = (e: Event) => {