From eea0c52ea42b3cfa135240dcd37097aa46c40793 Mon Sep 17 00:00:00 2001 From: makearmy Date: Wed, 1 Oct 2025 19:01:32 -0400 Subject: [PATCH] co2 galvo owner test --- app/settings/co2-galvo/[id]/co2-galvo.tsx | 30 +++++++++++------------ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/app/settings/co2-galvo/[id]/co2-galvo.tsx b/app/settings/co2-galvo/[id]/co2-galvo.tsx index cc0e29e5..81260409 100644 --- a/app/settings/co2-galvo/[id]/co2-galvo.tsx +++ b/app/settings/co2-galvo/[id]/co2-galvo.tsx @@ -10,6 +10,7 @@ export default function CO2GalvoSettingDetailPage() { const [setting, setSetting] = useState(null); const [loading, setLoading] = useState(true); + // claim UI state const [claimBusy, setClaimBusy] = useState(false); const [claimMsg, setClaimMsg] = useState(null); const [claimErr, setClaimErr] = useState(null); @@ -24,7 +25,7 @@ export default function CO2GalvoSettingDetailPage() { "submission_id", "setting_title", "uploader", - // ✅ request username explicitly + // request owner explicitly (username is what we display) "owner.id", "owner.username", "setting_notes", @@ -45,7 +46,7 @@ export default function CO2GalvoSettingDetailPage() { "lens_apt.name", "lens_exp.name", "focus", - // ✅ handle string-or-relation + // laser software can be string or relation "laser_soft", "laser_soft.name", "repeat_all", @@ -67,15 +68,15 @@ export default function CO2GalvoSettingDetailPage() { if (loading) return

Loading setting...

; if (!setting) return

Setting not found.

; - // ✅ prefer username; fall back to id or uploader (just in case) - const ownerName = (row: any) => - row?.owner?.username ?? (row?.owner?.id ? String(row.owner.id) : null) ?? null; + // owner username (what Directus returns when requesting owner.username) + const ownerUsername: string | null = + (setting?.owner && setting.owner.username) ? String(setting.owner.username) : null; - // ✅ show string or relation.name - const softwareLabel = - typeof setting.laser_soft === "object" - ? setting.laser_soft?.name ?? "—" - : setting.laser_soft ?? "—"; + // show string or relation.name + const softwareLabel: string = + typeof setting?.laser_soft === "object" + ? (setting.laser_soft?.name ?? "—") + : (setting?.laser_soft ?? "—"); const formatBoolean = (val: any) => val ? "Enabled" : val === false ? "Disabled" : "—"; @@ -97,7 +98,7 @@ export default function CO2GalvoSettingDetailPage() { return (

{label}:{" "} - {typeof value === "boolean" ? formatBoolean(value) : value || "—"} + {typeof value === "boolean" ? formatBoolean(value) : value ?? "—"}

); })} @@ -147,8 +148,6 @@ export default function CO2GalvoSettingDetailPage() { } }; - const owner = ownerName(setting); - return (
@@ -159,14 +158,15 @@ export default function CO2GalvoSettingDetailPage() {

- Owner: {owner ? {owner} : } + Owner:{" "} + {ownerUsername ?? "—"}

Uploader: {setting.uploader || "—"}

- {!owner && ( + {!ownerUsername && (