From 7fa1a85d91f80679bb05adc49ec34fa5eae208d9 Mon Sep 17 00:00:00 2001 From: PeterYusuke <58464065+PeterYusuke@users.noreply.github.com> Date: Fri, 17 Feb 2023 04:34:49 +0900 Subject: [PATCH] Add class name property to component (#545) --- pynecone/components/component.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pynecone/components/component.py b/pynecone/components/component.py index 1075862c8..b9f3b2e5c 100644 --- a/pynecone/components/component.py +++ b/pynecone/components/component.py @@ -47,6 +47,9 @@ class Component(Base, ABC): # The id for the component. id: Any = None + # The class name for the component. + class_name: Any = None + @classmethod def __init_subclass__(cls, **kwargs): """Set default properties. @@ -145,6 +148,11 @@ class Component(Base, ABC): } ) + # Convert class_name to str if it's list + class_name = kwargs.get("class_name", "") + if isinstance(class_name, (List, tuple)): + kwargs["class_name"] = " ".join(class_name) + # Construct the component. super().__init__(*args, **kwargs) @@ -370,7 +378,11 @@ class Component(Base, ABC): tag = self._render() return str( tag.add_props( - **self.event_triggers, key=self.key, sx=self.style, id=self.id + **self.event_triggers, + key=self.key, + sx=self.style, + id=self.id, + class_name=self.class_name, ).set( contents=utils.join( [str(tag.contents)] + [child.render() for child in self.children]