From b10f6e836d5af7e8f00f2dd7a5ca8cf90b69310e Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Fri, 17 Jan 2025 16:34:48 -0800 Subject: [PATCH] remove even more cond and match --- .../jinja/web/pages/utils.js.jinja2 | 2 -- reflex/components/component.py | 28 ------------------- reflex/components/tags/__init__.py | 2 -- reflex/components/tags/cond_tag.py | 21 -------------- reflex/components/tags/match_tag.py | 21 -------------- tests/units/components/test_tag.py | 25 +---------------- 6 files changed, 1 insertion(+), 98 deletions(-) delete mode 100644 reflex/components/tags/cond_tag.py delete mode 100644 reflex/components/tags/match_tag.py diff --git a/reflex/.templates/jinja/web/pages/utils.js.jinja2 b/reflex/.templates/jinja/web/pages/utils.js.jinja2 index d161e846d..e046c9160 100644 --- a/reflex/.templates/jinja/web/pages/utils.js.jinja2 +++ b/reflex/.templates/jinja/web/pages/utils.js.jinja2 @@ -8,8 +8,6 @@ {{- component }} {%- elif "iterable" in component %} {{- render_iterable_tag(component) }} - {%- elif "cond" in component %} - {{- render_condition_tag(component) }} {%- elif component.children|length %} {{- render_tag(component) }} {%- else %} diff --git a/reflex/components/component.py b/reflex/components/component.py index 60f024d63..d4d2ca612 100644 --- a/reflex/components/component.py +++ b/reflex/components/component.py @@ -67,7 +67,6 @@ from reflex.vars.base import ( cached_property_no_lock, ) from reflex.vars.function import ArgsFunctionOperation, FunctionStringVar -from reflex.vars.number import ternary_operation from reflex.vars.object import ObjectVar from reflex.vars.sequence import LiteralArrayVar @@ -2430,33 +2429,6 @@ def render_dict_to_var(tag: dict | Component | str, imported_names: set[str]) -> func, ) - if tag["name"] == "match": - element = tag["cond"] - - conditionals = tag["default"] - - for case in tag["match_cases"][::-1]: - condition = case[0].to_string() == element.to_string() - for pattern in case[1:-1]: - condition = condition | (pattern.to_string() == element.to_string()) - - conditionals = ternary_operation( - condition, - case[-1], - conditionals, - ) - - return conditionals - - if "cond" in tag: - return ternary_operation( - tag["cond"], - render_dict_to_var(tag["true_value"], imported_names), - render_dict_to_var(tag["false_value"], imported_names) - if tag["false_value"] is not None - else Var.create(None), - ) - props = {} special_props = [] diff --git a/reflex/components/tags/__init__.py b/reflex/components/tags/__init__.py index 993da11fe..8c8b73ab4 100644 --- a/reflex/components/tags/__init__.py +++ b/reflex/components/tags/__init__.py @@ -1,6 +1,4 @@ """Representations for React tags.""" -from .cond_tag import CondTag from .iter_tag import IterTag -from .match_tag import MatchTag from .tag import Tag diff --git a/reflex/components/tags/cond_tag.py b/reflex/components/tags/cond_tag.py deleted file mode 100644 index b4d0fe469..000000000 --- a/reflex/components/tags/cond_tag.py +++ /dev/null @@ -1,21 +0,0 @@ -"""Tag to conditionally render components.""" - -import dataclasses -from typing import Any, Dict, Optional - -from reflex.components.tags.tag import Tag -from reflex.vars.base import Var - - -@dataclasses.dataclass() -class CondTag(Tag): - """A conditional tag.""" - - # The condition to determine which component to render. - cond: Var[Any] = dataclasses.field(default_factory=lambda: Var.create(True)) - - # The code to render if the condition is true. - true_value: Dict = dataclasses.field(default_factory=dict) - - # The code to render if the condition is false. - false_value: Optional[Dict] = None diff --git a/reflex/components/tags/match_tag.py b/reflex/components/tags/match_tag.py deleted file mode 100644 index 01eedb296..000000000 --- a/reflex/components/tags/match_tag.py +++ /dev/null @@ -1,21 +0,0 @@ -"""Tag to conditionally match cases.""" - -import dataclasses -from typing import Any, List - -from reflex.components.tags.tag import Tag -from reflex.vars.base import Var - - -@dataclasses.dataclass() -class MatchTag(Tag): - """A match tag.""" - - # The condition to determine which case to match. - cond: Var[Any] = dataclasses.field(default_factory=lambda: Var.create(True)) - - # The list of match cases to be matched. - match_cases: List[Any] = dataclasses.field(default_factory=list) - - # The catchall case to match. - default: Any = dataclasses.field(default=Var.create(None)) diff --git a/tests/units/components/test_tag.py b/tests/units/components/test_tag.py index a69e40b8b..a83ebe41a 100644 --- a/tests/units/components/test_tag.py +++ b/tests/units/components/test_tag.py @@ -2,7 +2,7 @@ from typing import Dict, List import pytest -from reflex.components.tags import CondTag, Tag, tagless +from reflex.components.tags import Tag, tagless from reflex.vars.base import LiteralVar, Var @@ -105,29 +105,6 @@ def test_format_tag(tag: Tag, expected: Dict): assert prop_value.equals(LiteralVar.create(expected["props"][prop])) -def test_format_cond_tag(): - """Test that the cond tag dict is correct.""" - tag = CondTag( - true_value=dict(Tag(name="h1", contents="True content")), - false_value=dict(Tag(name="h2", contents="False content")), - cond=Var(_js_expr="logged_in", _var_type=bool), - ) - tag_dict = dict(tag) - cond, true_value, false_value = ( - tag_dict["cond"], - tag_dict["true_value"], - tag_dict["false_value"], - ) - assert cond._js_expr == "logged_in" - assert cond._var_type is bool - - assert true_value["name"] == "h1" - assert true_value["contents"] == "True content" - - assert false_value["name"] == "h2" - assert false_value["contents"] == "False content" - - def test_tagless_string_representation(): """Test that the string representation of a tagless is correct.""" tag = tagless.Tagless(contents="Hello world")