invalid target bug fix
This commit is contained in:
parent
874b1d7d32
commit
898d86e2fb
1 changed files with 15 additions and 7 deletions
|
|
@ -55,7 +55,7 @@ function shortId(s?: string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ─────────────────────────────────────────────────────────────
|
// ─────────────────────────────────────────────────────────────
|
||||||
/** Normalizers for edit-mode prefill (IDs + enums) */
|
// Normalizers for edit-mode prefill (IDs + enums)
|
||||||
// ─────────────────────────────────────────────────────────────
|
// ─────────────────────────────────────────────────────────────
|
||||||
function idToString(v: any): string {
|
function idToString(v: any): string {
|
||||||
if (v == null || v === "") return "";
|
if (v == null || v === "") return "";
|
||||||
|
|
@ -488,8 +488,8 @@ export default function SettingsSubmit(props: CreateProps | EditProps) {
|
||||||
handleSubmit,
|
handleSubmit,
|
||||||
control,
|
control,
|
||||||
reset,
|
reset,
|
||||||
setValue, // added
|
setValue,
|
||||||
getValues, // added
|
getValues,
|
||||||
formState: { isSubmitting },
|
formState: { isSubmitting },
|
||||||
} = useForm<any>({
|
} = useForm<any>({
|
||||||
defaultValues: {
|
defaultValues: {
|
||||||
|
|
@ -541,7 +541,7 @@ export default function SettingsSubmit(props: CreateProps | EditProps) {
|
||||||
}
|
}
|
||||||
}, [isEdit, edit?.initialValues, reset]);
|
}, [isEdit, edit?.initialValues, reset]);
|
||||||
|
|
||||||
// After reset, force RHF values once
|
// After reset, force RHF values once (covers early case)
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!isEdit || !current) return;
|
if (!isEdit || !current) return;
|
||||||
|
|
||||||
|
|
@ -608,8 +608,12 @@ export default function SettingsSubmit(props: CreateProps | EditProps) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// map UI target -> backend slug as helper
|
||||||
|
const target_slug = typeForOptions;
|
||||||
|
|
||||||
const payload: any = {
|
const payload: any = {
|
||||||
target,
|
target, // keep original selector value (e.g. "settings_co2gal")
|
||||||
|
target_slug, // add slug for server convenience (e.g. "co2-galvo")
|
||||||
setting_title: values.setting_title,
|
setting_title: values.setting_title,
|
||||||
setting_notes: values.setting_notes || "",
|
setting_notes: values.setting_notes || "",
|
||||||
mat: values.mat || null,
|
mat: values.mat || null,
|
||||||
|
|
@ -685,6 +689,9 @@ export default function SettingsSubmit(props: CreateProps | EditProps) {
|
||||||
const form = new FormData();
|
const form = new FormData();
|
||||||
// Directus multipart expects JSON in "data"
|
// Directus multipart expects JSON in "data"
|
||||||
form.set("data", JSON.stringify(payload));
|
form.set("data", JSON.stringify(payload));
|
||||||
|
// Also include top-level fields for our API route compatibility
|
||||||
|
form.set("target", payload.target);
|
||||||
|
form.set("target_slug", payload.target_slug);
|
||||||
if (photoFile) form.set("photo", photoFile, photoFile.name || "photo");
|
if (photoFile) form.set("photo", photoFile, photoFile.name || "photo");
|
||||||
if (screenFile) form.set("screen", screenFile, screenFile.name || "screen");
|
if (screenFile) form.set("screen", screenFile, screenFile.name || "screen");
|
||||||
res = await fetch("/api/submit/settings", { method: "POST", body: form, credentials: "include" });
|
res = await fetch("/api/submit/settings", { method: "POST", body: form, credentials: "include" });
|
||||||
|
|
@ -693,7 +700,8 @@ export default function SettingsSubmit(props: CreateProps | EditProps) {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
headers: { "Content-Type": "application/json" },
|
headers: { "Content-Type": "application/json" },
|
||||||
// Directus JSON expects { data: { ... } }
|
// Directus JSON expects { data: { ... } }
|
||||||
body: JSON.stringify({ data: payload }),
|
// Also include top-level fields for our API route compatibility
|
||||||
|
body: JSON.stringify({ data: payload, target: payload.target, target_slug: payload.target_slug }),
|
||||||
credentials: "include",
|
credentials: "include",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -988,7 +996,7 @@ export default function SettingsSubmit(props: CreateProps | EditProps) {
|
||||||
+ Add
|
+ Add
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
{lines.fields.map((f, i) => (
|
{lines.fields map((f, i) => (
|
||||||
<div key={f.id} className="grid md:grid-cols-4 gap-2">
|
<div key={f.id} className="grid md:grid-cols-4 gap-2">
|
||||||
<LabeledInput label="Name" name={`line_settings.${i}.name`} register={register} />
|
<LabeledInput label="Name" name={`line_settings.${i}.name`} register={register} />
|
||||||
<LabeledInput label="Frequency (kHz)" name={`line_settings.${i}.frequency`} type="number" step="0.1" register={register} />
|
<LabeledInput label="Frequency (kHz)" name={`line_settings.${i}.frequency`} type="number" step="0.1" register={register} />
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue