Fix event chain bugs (#413)
This commit is contained in:
parent
00479362df
commit
6af374e024
@ -176,7 +176,14 @@ class Component(Base, ABC):
|
|||||||
|
|
||||||
# If the input is a list of event handlers, create an event chain.
|
# If the input is a list of event handlers, create an event chain.
|
||||||
if isinstance(value, List):
|
if isinstance(value, List):
|
||||||
events = [utils.call_event_handler(v, arg) for v in value]
|
events = []
|
||||||
|
for v in value:
|
||||||
|
if isinstance(v, EventHandler):
|
||||||
|
events.append(utils.call_event_handler(v, arg))
|
||||||
|
elif isinstance(v, Callable):
|
||||||
|
events.extend(utils.call_event_fn(v, arg))
|
||||||
|
else:
|
||||||
|
raise ValueError(f"Invalid event: {v}")
|
||||||
|
|
||||||
# If the input is a callable, create an event chain.
|
# If the input is a callable, create an event chain.
|
||||||
elif isinstance(value, Callable):
|
elif isinstance(value, Callable):
|
||||||
|
@ -1293,6 +1293,11 @@ def fix_events(events: Optional[List[Event]], token: str) -> List[Event]:
|
|||||||
name = format_event_handler(e.handler)
|
name = format_event_handler(e.handler)
|
||||||
payload = dict(e.args)
|
payload = dict(e.args)
|
||||||
|
|
||||||
|
# Remove any extra quotes introduced by json.dumps(..) and escape the characters.
|
||||||
|
for k, v in payload.items():
|
||||||
|
if isinstance(v, str):
|
||||||
|
payload[k] = json.loads(v)
|
||||||
|
|
||||||
# Create an event and append it to the list.
|
# Create an event and append it to the list.
|
||||||
out.append(
|
out.append(
|
||||||
Event(
|
Event(
|
||||||
|
Loading…
Reference in New Issue
Block a user