From 6a021345d230ce85d9818184ce73445f2e1ffa41 Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Tue, 22 Apr 2025 17:38:27 -0700 Subject: [PATCH] error when var is given something not a str --- pyi_hashes.json | 2 +- reflex/components/radix/themes/color_mode.py | 2 +- reflex/vars/base.py | 16 +++++++++++++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/pyi_hashes.json b/pyi_hashes.json index 42a64a8aadd..bd1389e0a25 100644 --- a/pyi_hashes.json +++ b/pyi_hashes.json @@ -57,7 +57,7 @@ "reflex/components/radix/primitives/slider.pyi": "10196fb967c9cde3860a930a526b6c51", "reflex/components/radix/themes/__init__.pyi": "a15f9464ad99f248249ffa8e6deea4cf", "reflex/components/radix/themes/base.pyi": "a3c3c3b72fd3d8f1e38990e5c461b682", - "reflex/components/radix/themes/color_mode.pyi": "435a51382eab6111aae1b26e79e9a473", + "reflex/components/radix/themes/color_mode.pyi": "e18fe42952d10f5733f3baf4789c4bb5", "reflex/components/radix/themes/components/__init__.pyi": "87bb9ffff641928562da1622d2ca5993", "reflex/components/radix/themes/components/alert_dialog.pyi": "8e1dde62450296310a116ed066bd51e3", "reflex/components/radix/themes/components/aspect_ratio.pyi": "1845813a034adfc1f5db8e0f6ffc1118", diff --git a/reflex/components/radix/themes/color_mode.py b/reflex/components/radix/themes/color_mode.py index 8a92a6db31d..f6f8cb92402 100644 --- a/reflex/components/radix/themes/color_mode.py +++ b/reflex/components/radix/themes/color_mode.py @@ -205,5 +205,5 @@ class ColorModeNamespace(Var): color_mode = color_mode_var_and_namespace = ColorModeNamespace( _js_expr=color_mode._js_expr, _var_type=color_mode._var_type, - _var_data=color_mode._get_default_value(), + _var_data=color_mode._get_all_var_data(), ) diff --git a/reflex/vars/base.py b/reflex/vars/base.py index 694492ecdbe..695460eeb05 100644 --- a/reflex/vars/base.py +++ b/reflex/vars/base.py @@ -483,7 +483,21 @@ class ToVarOperation(ToOperation, cls): _var_subclasses.append(VarSubclassEntry(cls, ToVarOperation, python_types)) def __post_init__(self): - """Post-initialize the var.""" + """Post-initialize the var. + + Raises: + TypeError: If _js_expr is not a string. + """ + if not isinstance(self._js_expr, str): + raise TypeError( + f"Expected _js_expr to be a string, got value {self._js_expr!r} of type {type(self._js_expr).__name__}" + ) + + if self._var_data is not None and not isinstance(self._var_data, VarData): + raise TypeError( + f"Expected _var_data to be a VarData, got value {self._var_data!r} of type {type(self._var_data).__name__}" + ) + # Decode any inline Var markup and apply it to the instance _var_data, _js_expr = _decode_var_immutable(self._js_expr)