Add class name property to component (#545)

This commit is contained in:
PeterYusuke 2023-02-17 04:34:49 +09:00 committed by GitHub
parent b36680fefd
commit 7fa1a85d91
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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]