From b2598f4c4958e6c9b342d275ca4dbb62a8802789 Mon Sep 17 00:00:00 2001 From: Christian Vidal Wolf Date: Sat, 21 Feb 2026 11:25:39 +0100 Subject: [PATCH] fix: sanitize experiment form data to prevent save failure on empty dates --- components/ExperimentForm.tsx | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/components/ExperimentForm.tsx b/components/ExperimentForm.tsx index ba564d9..730b2a7 100644 --- a/components/ExperimentForm.tsx +++ b/components/ExperimentForm.tsx @@ -66,7 +66,16 @@ const ExperimentForm: React.FC = ({ setLoading(true); try { - await createExperiment(formData); + // Sanitize optional fields + const submissionData = { + ...formData, + end_date: formData.end_date || undefined, + description: formData.description || undefined, + hypothesis: formData.hypothesis || undefined, + owner: formData.owner || undefined, + }; + + await createExperiment(submissionData); onSuccess(); onClose(); } catch (error: any) { @@ -174,8 +183,8 @@ const ExperimentForm: React.FC = ({ setSelectedLine(''); }} className={`flex-1 px-3 py-2 rounded-lg text-xs font-bold border transition-all ${targetType === 'asin' - ? 'bg-indigo-600/20 border-indigo-500 text-indigo-400' - : 'bg-slate-800 border-slate-600 text-slate-400 hover:border-slate-500' + ? 'bg-indigo-600/20 border-indigo-500 text-indigo-400' + : 'bg-slate-800 border-slate-600 text-slate-400 hover:border-slate-500' }`} > 🎯 Specific ASINs @@ -188,8 +197,8 @@ const ExperimentForm: React.FC = ({ setAsinInput(''); }} className={`flex-1 px-3 py-2 rounded-lg text-xs font-bold border transition-all ${targetType === 'line' - ? 'bg-indigo-600/20 border-indigo-500 text-indigo-400' - : 'bg-slate-800 border-slate-600 text-slate-400 hover:border-slate-500' + ? 'bg-indigo-600/20 border-indigo-500 text-indigo-400' + : 'bg-slate-800 border-slate-600 text-slate-400 hover:border-slate-500' }`} > 📦 Entire Product Line