clean up the code to pass tests
This commit is contained in:
parent
25cfde751a
commit
bf347841b1
@ -2196,6 +2196,35 @@ class StatefulComponent(BaseComponent):
|
|||||||
]
|
]
|
||||||
return [var_name]
|
return [var_name]
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _get_deps_from_event_trigger(event: EventChain | EventSpec | Var) -> set[str]:
|
||||||
|
"""Get the dependencies accessed by event triggers.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
event: The event trigger to extract deps from.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
The dependencies accessed by the event triggers.
|
||||||
|
"""
|
||||||
|
events: list = [event]
|
||||||
|
deps = set()
|
||||||
|
if isinstance(event, EventChain):
|
||||||
|
events.extend(event.events)
|
||||||
|
|
||||||
|
for ev in events:
|
||||||
|
if isinstance(ev, EventSpec):
|
||||||
|
for arg in ev.args:
|
||||||
|
deps.union(
|
||||||
|
{
|
||||||
|
str(dep)
|
||||||
|
for a in arg
|
||||||
|
if a._var_data is not None
|
||||||
|
for dep in a._var_data.deps
|
||||||
|
if a._var_data.deps is not None
|
||||||
|
}
|
||||||
|
)
|
||||||
|
return deps
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _get_memoized_event_triggers(
|
def _get_memoized_event_triggers(
|
||||||
cls,
|
cls,
|
||||||
@ -2232,18 +2261,11 @@ class StatefulComponent(BaseComponent):
|
|||||||
|
|
||||||
# Calculate Var dependencies accessed by the handler for useCallback dep array.
|
# Calculate Var dependencies accessed by the handler for useCallback dep array.
|
||||||
var_deps = ["addEvents", "Event"]
|
var_deps = ["addEvents", "Event"]
|
||||||
for ev in event.events:
|
|
||||||
if isinstance(ev, EventSpec):
|
# Get deps from event trigger var data.
|
||||||
for arg in ev.args:
|
var_deps.extend(cls._get_deps_from_event_trigger(event))
|
||||||
var_deps.extend(
|
|
||||||
{
|
# Get deps from hooks.
|
||||||
str(dep)
|
|
||||||
for a in arg
|
|
||||||
if a._var_data is not None
|
|
||||||
for dep in a._var_data.deps
|
|
||||||
if a._var_data.deps is not None
|
|
||||||
}
|
|
||||||
)
|
|
||||||
for arg in event_args:
|
for arg in event_args:
|
||||||
var_data = arg._get_all_var_data()
|
var_data = arg._get_all_var_data()
|
||||||
if var_data is None:
|
if var_data is None:
|
||||||
|
Loading…
Reference in New Issue
Block a user