fix:local storage field storing

This commit is contained in:
suryac 2026-10-01 16:56:18 +05:30
parent 061bf9bbc5
commit 465d202458
2 changed files with 19 additions and 1 deletions

View File

@ -382,6 +382,17 @@ export function DynamicForm({ client, activityId: initialActivityId, instanceId:
finalValues[actionField.id] = clickedActionRef.current; finalValues[actionField.id] = clickedActionRef.current;
} }
for (const f of fields) {
if (f.mandatory && f.data_type === 'grid') {
const val = finalValues[f.id];
if (!Array.isArray(val) || val.length === 0) {
setSubmitError(`Please add at least one item to ${f.name}`);
setSubmitting(false);
return;
}
}
}
for (const f of fields) { for (const f of fields) {
let val = finalValues[f.id]; let val = finalValues[f.id];
const isNotesOrRemarks = (f.id || '').toLowerCase().includes('notes') || (f.id || '').toLowerCase().includes('remarks') || (f.name && ((f.name || '').toLowerCase().includes('notes') || (f.name || '').toLowerCase().includes('remarks'))); const isNotesOrRemarks = (f.id || '').toLowerCase().includes('notes') || (f.id || '').toLowerCase().includes('remarks') || (f.name && ((f.name || '').toLowerCase().includes('notes') || (f.name || '').toLowerCase().includes('remarks')));
@ -639,11 +650,13 @@ export function DynamicForm({ client, activityId: initialActivityId, instanceId:
if (type.startsWith('grid')) { if (type.startsWith('grid')) {
return ( return (
<SmartGridField <SmartGridField
key={f.id}
label={f.name} label={f.name}
columns={f.columns || []} columns={f.columns || []}
value={(val as Record<string, unknown>[]) || []} value={(val as Record<string, unknown>[]) || []}
onChange={(newVal) => handleFieldChange(f.id, newVal)} onChange={(newVal) => handleFieldChange(f.id, newVal)}
isActivityPotentialMining={currentActivityId === ORDER_BOOKING.activities.POTENTIAL_MINING.uid} isActivityPotentialMining={currentActivityId === ORDER_BOOKING.activities.POTENTIAL_MINING.uid}
required={f.mandatory}
/> />
); );
} }

View File

@ -11,12 +11,14 @@ export function SmartGridField({
value = [], value = [],
onChange, onChange,
isActivityPotentialMining = false, isActivityPotentialMining = false,
required = false,
}: { }: {
label: string; label: string;
columns: FormScreenField[]; columns: FormScreenField[];
value: Record<string, unknown>[]; value: Record<string, unknown>[];
onChange: (val: Record<string, unknown>[]) => void; onChange: (val: Record<string, unknown>[]) => void;
isActivityPotentialMining?: boolean; isActivityPotentialMining?: boolean;
required?: boolean;
}) { }) {
const isPotentialMining = isActivityPotentialMining; const isPotentialMining = isActivityPotentialMining;
const formRef = useRef<HTMLDivElement>(null); const formRef = useRef<HTMLDivElement>(null);
@ -261,7 +263,10 @@ export function SmartGridField({
return ( return (
<div className="flex flex-col gap-2 font-sans border border-slate-200 rounded-2xl p-4 bg-card shadow-sm mt-2"> <div className="flex flex-col gap-2 font-sans border border-slate-200 rounded-2xl p-4 bg-card shadow-sm mt-2">
<span className="text-sm font-semibold text-strong mb-2">{label}</span> <span className="text-sm font-semibold text-strong mb-2">
{label}
{required && <span className="text-ruby-600"> *</span>}
</span>
{value.length === 0 ? ( {value.length === 0 ? (
<span className="text-sm text-faint italic">No rows added.</span> <span className="text-sm text-faint italic">No rows added.</span>