From a5d73654fc100131f337ee5a9435701738a5f47f Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Thu, 19 Sep 2024 19:07:09 -0700 Subject: [PATCH] use serializer before serializing base yourself (#3960) --- reflex/vars/base.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/reflex/vars/base.py b/reflex/vars/base.py index 9fac6fd1f..4faa38be7 100644 --- a/reflex/vars/base.py +++ b/reflex/vars/base.py @@ -1074,6 +1074,20 @@ class LiteralVar(Var): if isinstance(value, EventHandler): return Var(_js_expr=".".join(filter(None, get_event_handler_parts(value)))) + serialized_value = serializers.serialize(value) + if serialized_value is not None: + if isinstance(serialized_value, dict): + return LiteralObjectVar.create( + serialized_value, + _var_type=type(value), + _var_data=_var_data, + ) + if isinstance(serialized_value, str): + return LiteralStringVar.create( + serialized_value, _var_type=type(value), _var_data=_var_data + ) + return LiteralVar.create(serialized_value, _var_data=_var_data) + if isinstance(value, Base): # get the fields of the pydantic class fields = value.__fields__.keys() @@ -1089,20 +1103,6 @@ class LiteralVar(Var): _var_data=_var_data, ) - serialized_value = serializers.serialize(value) - if serialized_value is not None: - if isinstance(serialized_value, dict): - return LiteralObjectVar.create( - serialized_value, - _var_type=type(value), - _var_data=_var_data, - ) - if isinstance(serialized_value, str): - return LiteralStringVar.create( - serialized_value, _var_type=type(value), _var_data=_var_data - ) - return LiteralVar.create(serialized_value, _var_data=_var_data) - if dataclasses.is_dataclass(value) and not isinstance(value, type): return LiteralObjectVar.create( {