Przeglądaj źródła

Remove unused `full_control` related code (#1624)

* remove full_control related code

* remove more unused code
Martin Xu 1 rok temu
rodzic
commit
fd4a6257c3

+ 0 - 11
reflex/compiler/templates.py

@@ -3,7 +3,6 @@
 from jinja2 import Environment, FileSystemLoader, Template
 
 from reflex import constants
-from reflex.utils import path_ops
 from reflex.utils.format import json_dumps
 
 
@@ -79,13 +78,3 @@ COMPONENTS = get_template("web/pages/custom_component.js.jinja2")
 
 # Sitemap config file.
 SITEMAP_CONFIG = "module.exports = {config}".format
-
-FULL_CONTROL = path_ops.join(
-    [
-        "{{setState(prev => ({{",
-        "...prev,{state_name}: {arg}",
-        "}}), ",
-        "()=>Event([{chain}])",
-        ")}}",
-    ]
-).format

+ 2 - 36
reflex/components/component.py

@@ -160,12 +160,8 @@ class Component(Base, ABC):
 
             # Check if the key is an event trigger.
             if key in triggers:
-                state_name = kwargs["value"].name if kwargs.get("value", False) else ""
                 # Temporarily disable full control for event triggers.
-                full_control = False
-                kwargs["event_triggers"][key] = self._create_event_chain(
-                    key, value, state_name, full_control
-                )
+                kwargs["event_triggers"][key] = self._create_event_chain(key, value)
 
         # Remove any keys that were added as events.
         for key in kwargs["event_triggers"]:
@@ -200,16 +196,12 @@ class Component(Base, ABC):
         value: Union[
             Var, EventHandler, EventSpec, List[Union[EventHandler, EventSpec]], Callable
         ],
-        state_name: str = "",
-        full_control: bool = False,
     ) -> Union[EventChain, Var]:
         """Create an event chain from a variety of input types.
 
         Args:
             event_trigger: The event trigger to bind the chain to.
             value: The value to create the event chain from.
-            state_name: The state to be fully controlled.
-            full_control: Whether full controlled or not.
 
         Returns:
             The event chain.
@@ -278,13 +270,8 @@ class Component(Base, ABC):
                 for e in events
             ]
 
-        # set state name when fully controlled input
-        state_name = state_name if full_control else ""
-
         # Return the event chain.
-        return EventChain(
-            events=events, state_name=state_name, full_control=full_control
-        )
+        return EventChain(events=events)
 
     def get_triggers(self) -> Set[str]:
         """Get the event triggers for the component.
@@ -601,27 +588,6 @@ class Component(Base, ABC):
         """
         return ImportVar(tag=self.tag, is_default=self.is_default, alias=self.alias)
 
-    def is_full_control(self, kwargs: dict) -> bool:
-        """Return if the component is fully controlled input.
-
-        Args:
-            kwargs: The component kwargs.
-
-        Returns:
-            Whether fully controlled.
-        """
-        value = kwargs.get("value")
-        if value is None or type(value) != BaseVar:
-            return False
-
-        on_change = kwargs.get("on_change")
-        if on_change is None or type(on_change) != EventHandler:
-            return False
-
-        value = value.full_name
-        on_change = on_change.fn.__qualname__
-        return value == on_change.replace(constants.SETTER_PREFIX, "")
-
 
 # Map from component to styling.
 ComponentStyle = Dict[Union[str, Type[Component]], Any]

+ 2 - 9
reflex/components/tags/tag.py

@@ -78,15 +78,8 @@ class Tag(Base):
 
             # Handle event props.
             elif isinstance(prop, EventChain):
-                if prop.full_control:
-                    # Full control component events.
-                    event = format.format_full_control_event(prop)
-                else:
-                    # All other events.
-                    chain = ",".join(
-                        [format.format_event(event) for event in prop.events]
-                    )
-                    event = f"Event([{chain}], {EVENT_ARG})"
+                chain = ",".join([format.format_event(event) for event in prop.events])
+                event = f"Event([{chain}], {EVENT_ARG})"
                 prop = f"{EVENT_ARG} => {event}"
 
             # Handle other types.

+ 0 - 6
reflex/event.py

@@ -107,12 +107,6 @@ class EventChain(Base):
 
     events: List[EventSpec]
 
-    # Whether events are in fully controlled input.
-    full_control: bool = False
-
-    # State name when fully controlled.
-    state_name: str = ""
-
 
 class Target(Base):
     """A Javascript event target."""

+ 1 - 20
reflex/utils/format.py

@@ -19,7 +19,7 @@ from reflex.utils import types
 
 if TYPE_CHECKING:
     from reflex.components.component import ComponentStyle
-    from reflex.event import EventChain, EventHandler, EventSpec
+    from reflex.event import EventHandler, EventSpec
 
 WRAP_MAP = {
     "{": "}",
@@ -311,25 +311,6 @@ def format_event(event_spec: EventSpec) -> str:
     return f"E({', '.join(event_args)})"
 
 
-def format_full_control_event(event_chain: EventChain) -> str:
-    """Format a fully controlled input prop.
-
-    Args:
-        event_chain: The event chain for full controlled input.
-
-    Returns:
-        The compiled event.
-    """
-    from reflex.compiler import templates
-
-    event_spec = event_chain.events[0]
-    arg = event_spec.args[0][1] if event_spec.args else None
-    state_name = event_chain.state_name
-    chain = ",".join([format_event(event) for event in event_chain.events])
-    event = templates.FULL_CONTROL(state_name=state_name, arg=arg, chain=chain)
-    return event
-
-
 def format_query_params(router_data: Dict[str, Any]) -> Dict[str, str]:
     """Convert back query params name to python-friendly case.