diff --git a/reflex/vars/number.py b/reflex/vars/number.py index 3090e2497..fa549b3b3 100644 --- a/reflex/vars/number.py +++ b/reflex/vars/number.py @@ -1169,14 +1169,20 @@ class MatchOperation(CachedVarOperation, Var[VAR_TYPE]): Returns: The match operation. """ + cond = Var.create(cond) cases = tuple(tuple(Var.create(c) for c in case) for case in cases) + default = Var.create(default) + var_type = _var_type or unionize( + *(case[-1]._var_type for case in cases), + default._var_type, + ) return cls( _js_expr="", _var_data=_var_data, - _var_type=_var_type, - _cond=Var.create(cond), + _var_type=var_type, + _cond=cond, _cases=cases, - _default=Var.create(default), + _default=default, )