From fd4a6257c3b7dcb0058e4699c553272dfc0e5c31 Mon Sep 17 00:00:00 2001 From: Martin Xu <15661672+martinxu9@users.noreply.github.com> Date: Fri, 18 Aug 2023 12:56:33 -0700 Subject: [PATCH] Remove unused `full_control` related code (#1624) * remove full_control related code * remove more unused code --- reflex/compiler/templates.py | 11 ---------- reflex/components/component.py | 38 ++-------------------------------- reflex/components/tags/tag.py | 11 ++-------- reflex/event.py | 6 ------ reflex/utils/format.py | 21 +------------------ 5 files changed, 5 insertions(+), 82 deletions(-) diff --git a/reflex/compiler/templates.py b/reflex/compiler/templates.py index aafb3a5cc..87a25b206 100644 --- a/reflex/compiler/templates.py +++ b/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 diff --git a/reflex/components/component.py b/reflex/components/component.py index 753c59741..0f4756fd0 100644 --- a/reflex/components/component.py +++ b/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] diff --git a/reflex/components/tags/tag.py b/reflex/components/tags/tag.py index b41936685..39f347196 100644 --- a/reflex/components/tags/tag.py +++ b/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. diff --git a/reflex/event.py b/reflex/event.py index d38418d93..d5954a8ae 100644 --- a/reflex/event.py +++ b/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.""" diff --git a/reflex/utils/format.py b/reflex/utils/format.py index 193fee728..7eef1c194 100644 --- a/reflex/utils/format.py +++ b/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.