setters use maps instead of mutations

This commit is contained in:
mbecker20
2026-03-04 16:14:57 -08:00
parent 0a9bc397ca
commit 7fe56f72ae
3 changed files with 40 additions and 20 deletions
+20 -9
View File
@@ -59,8 +59,11 @@ export default function StackConfigFiles({
placeholder="configs/config.yaml"
value={path}
onChange={(e) => {
values[i] = { ...values[i], path: e.target.value };
set({ config_files: [...values] });
set({
config_files: values.map((v, index) =>
i === index ? { ...v, path: e.target.value } : v,
),
});
}}
w={{ base: "100%", md: 400 }}
disabled={disabled}
@@ -91,8 +94,11 @@ export default function StackConfigFiles({
value={services}
data={allServices}
onChange={(services) => {
values[i] = { ...values[i], services };
set({ config_files: [...values] });
set({
config_files: values.map((v, index) =>
i === index ? { ...v, services } : v,
),
});
}}
disabled={disabled}
searchable
@@ -102,11 +108,16 @@ export default function StackConfigFiles({
value={requires}
onChange={(requires) => {
if (!requires) return;
values[i] = {
...values[i],
requires: requires as Types.StackFileRequires,
};
set({ config_files: [...values] });
set({
config_files: values.map((v, index) =>
i === index
? {
...v,
requires: requires as Types.StackFileRequires,
}
: v,
),
});
}}
disabled={disabled}
data={Object.values(Types.StackFileRequires)}
+15 -9
View File
@@ -279,12 +279,16 @@ export default function StackConfig({
<TextInput
value={file.path || ""}
onChange={(e) => {
const newFiles = [...files];
newFiles[i] = {
path: e.target.value,
track: file.track ?? true,
};
set({ additional_env_files: newFiles });
set({
additional_env_files: files.map((v, index) =>
i === index
? {
path: e.target.value,
track: file.track ?? true,
}
: v,
),
});
}}
placeholder=".env"
disabled={disabled}
@@ -296,9 +300,11 @@ export default function StackConfig({
label="Track"
checked={file.track ?? true}
onCheckedChange={(track) => {
const newFiles = [...files];
newFiles[i] = { ...newFiles[i], track };
set({ additional_env_files: newFiles });
set({
additional_env_files: files.map((v, index) =>
i === index ? { ...v, track } : v,
),
});
}}
disabled={disabled}
id={`track-${i}`}
+5 -2
View File
@@ -25,8 +25,11 @@ export default function InputList<T>({
key={i}
value={arg}
onChange={(e) => {
values[i] = e.target.value;
set({ [field]: [...values] } as Partial<T>);
set({
[field]: values.map((v, index) =>
i === index ? e.target.value : v,
),
} as Partial<T>);
}}
disabled={disabled}
w={{ base: 230, md: 400 }}