diff --git a/packages/html/src/events/form.rs b/packages/html/src/events/form.rs index 6346a99e6..1303dc209 100644 --- a/packages/html/src/events/form.rs +++ b/packages/html/src/events/form.rs @@ -62,14 +62,21 @@ impl FormData { In this case we would want to deserialize the value as follows favourite_language: "rust" */ - if values.len() > 1 { - // handling multiple values - case 1 - parsed_values.insert(fieldname, ValueType::VecText(values.clone())); - } else { - // handle single value - case 2 - let prepared_value = values.into_iter().next().unwrap(); - parsed_values.insert(fieldname, ValueType::Text(prepared_value)); - } + parsed_values.insert( + fieldname, + if values.len() > 1 { + // handling multiple values - case 1 + ValueType::VecText(values) + } else { + // handle single value - case 2 + ValueType::Text( + values + .into_iter() + .next() + .ok_or_else(|| serde_json::Error::custom("Values array is empty"))?, + ) + }, + ); } // convert HashMap to JSON string