Skip to content

Commit 61bb6fe

Browse files
authored
Collapse advanced settings by default (#2311)
1 parent 5b48a89 commit 61bb6fe

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

web/src/components/wizard/SetupStep.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useState } from "react";
1+
import React, { useState, useEffect } from "react";
22
import Card from "../common/Card";
33
import Button from "../common/Button";
44
import { useConfig } from "../../contexts/ConfigContext";
@@ -25,7 +25,7 @@ interface ConfigError extends Error {
2525
const SetupStep: React.FC<SetupStepProps> = ({ onNext }) => {
2626
const { config, updateConfig, prototypeSettings } = useConfig();
2727
const { text } = useWizardMode();
28-
const [showAdvanced, setShowAdvanced] = useState(true);
28+
const [showAdvanced, setShowAdvanced] = useState(false);
2929
const [error, setError] = useState<string | null>(null);
3030
const { token } = useAuth();
3131

@@ -104,6 +104,15 @@ const SetupStep: React.FC<SetupStepProps> = ({ onNext }) => {
104104
},
105105
});
106106

107+
// Expand advanced settings if there is an error in an advanced field
108+
useEffect(() => {
109+
if (submitError?.errors) {
110+
if (submitError.errors.some(e => e.field === "networkInterface" || e.field === "globalCidr")) {
111+
setShowAdvanced(true);
112+
}
113+
}
114+
}, [submitError]);
115+
107116
const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {
108117
const { id, value } = e.target;
109118
if (id === "adminConsolePort" || id === "localArtifactMirrorPort") {

web/src/components/wizard/tests/SetupStep.test.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,11 @@ describe("SetupStep", () => {
9898

9999
screen.getByLabelText(/Proxy Bypass List/, { selector: "input" });
100100

101-
// Check advanced settings (should be visible by default)
101+
// Reveal advanced settings before checking advanced fields
102+
const advancedButton = screen.getByRole("button", { name: /Advanced Settings/i });
103+
fireEvent.click(advancedButton);
104+
105+
// Check advanced settings
102106
screen.getByLabelText(/Network Interface/, { selector: "select" });
103107

104108
screen.getByLabelText(/Reserved Network Range/, {
@@ -255,6 +259,11 @@ describe("SetupStep", () => {
255259
const dataDirectoryInput = screen.getByLabelText(/Data Directory/);
256260
const adminPortInput = screen.getByLabelText(/Admin Console Port/);
257261
const mirrorPortInput = screen.getByLabelText(/Local Artifact Mirror Port/);
262+
263+
// Reveal advanced settings before filling advanced fields
264+
const advancedButton = screen.getByRole("button", { name: /Advanced Settings/i });
265+
fireEvent.click(advancedButton);
266+
258267
const networkInterfaceSelect = screen.getByLabelText(/Network Interface/);
259268
const globalCidrInput = screen.getByLabelText(/Reserved Network Range/);
260269

0 commit comments

Comments
 (0)