From 169e2422a9ed88d2a3e994a62f02f73578028600 Mon Sep 17 00:00:00 2001 From: elvis kahoro Date: Sat, 24 Oct 2026 13:06:16 +0000 Subject: [PATCH] fix(avatar): preserve caller on_mount in AvatarImage --- assets/docs/components/avatar.md | 9 ++++++++- components/ui/avatar.py | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/assets/docs/components/avatar.md b/assets/docs/components/avatar.md index eac989d3..d220290d 100644 --- a/assets/docs/components/avatar.md +++ b/assets/docs/components/avatar.md @@ -121,6 +121,7 @@ class AvatarImage(CoreComponent): @classmethod def create(cls, **props) -> rx.Component: custom_classes = props.pop("class_name", "") + user_on_mount = props.pop("on_mount", None) props["data-slot"] = "avatar-image" img_id = props.get("id") or f"avatar-img-{uuid.uuid4().hex[:8]}" @@ -147,7 +148,13 @@ class AvatarImage(CoreComponent): }})() """ - props["on_mount"] = rx.call_script(js) + mount_handlers = [rx.call_script(js)] + if user_on_mount is not None: + if isinstance(user_on_mount, list): + mount_handlers.extend(user_on_mount) + else: + mount_handlers.append(user_on_mount) + props["on_mount"] = mount_handlers cls.set_class_name(cn(ClassNames.IMAGE, custom_classes), props) return rx.el.img(**props) diff --git a/components/ui/avatar.py b/components/ui/avatar.py index c8cb82c5..2b3c078b 100644 --- a/components/ui/avatar.py +++ b/components/ui/avatar.py @@ -57,6 +57,7 @@ class AvatarImage(CoreComponent): @classmethod def create(cls, **props) -> rx.Component: custom_classes = props.pop("class_name", "") + user_on_mount = props.pop("on_mount", None) props["data-slot"] = "avatar-image" img_id = props.get("id") or f"avatar-img-{uuid.uuid4().hex[:8]}" @@ -83,7 +84,13 @@ def create(cls, **props) -> rx.Component: }})() """ - props["on_mount"] = rx.call_script(js) + mount_handlers = [rx.call_script(js)] + if user_on_mount is not None: + if isinstance(user_on_mount, list): + mount_handlers.extend(user_on_mount) + else: + mount_handlers.append(user_on_mount) + props["on_mount"] = mount_handlers cls.set_class_name(cn(ClassNames.IMAGE, custom_classes), props) return rx.el.img(**props)