Update the Rio Version, add meta tags, refactor rio components that have init overwrites, add member picture for Tim

This commit is contained in:
David Rodenkirchen
2024-06-06 05:36:30 +00:00
parent 72d1b9bc33
commit 3aad065477
16 changed files with 81 additions and 77 deletions
+20 -16
View File
@@ -16,31 +16,25 @@ class MemberInfo:
class MemberCard(rio.Component):
def __init__(self, info: MemberInfo) -> None:
super().__init__()
self._info = info
self.align_y = 0
self.margin_top = 0
self.margin_bottom = 2
self.margin_right = 1
info: MemberInfo
def build(self) -> rio.Component:
contact_row = rio.Row()
content = rio.Column(
rio.Image(self._info.picture_path, height=9, margin_bottom=1.3, margin_top=0.8),
rio.Text(self._info.name, margin_bottom=0.4, style=rio.TextStyle(font_weight="bold")),
rio.Text(self._info.position, margin_bottom=0.4, style=rio.TextStyle(italic=True)),
rio.Text(f"Mitglied seit {self._info.entry_date}", style=rio.TextStyle(italic=True), margin_bottom=0.4),
rio.Image(self.info.picture_path, height=9, margin_bottom=1.3, margin_top=0.8),
rio.Text(self.info.name, margin_bottom=0.4, style=rio.TextStyle(font_weight="bold")),
rio.Text(self.info.position, margin_bottom=0.4, style=rio.TextStyle(italic=True)),
rio.Text(f"Mitglied seit {self.info.entry_date}", style=rio.TextStyle(italic=True), margin_bottom=0.4),
contact_row
)
# @Todo: Icon alignment broken if only one icon should be shown.
if self._info.contact_mail:
contact_row.add(rio.Link(rio.Icon("material/mail"), f"mailto://{self._info.contact_mail}", open_in_new_tab=True, margin_top=1, margin_bottom=1, align_x=0.9))
if self._info.contact_steam:
contact_row.add(rio.Link(rio.Icon("custom/steam"), self._info.contact_steam, open_in_new_tab=True, margin_top=1, margin_bottom=1, align_x=0.1))
if self.info.contact_mail:
contact_row.add(rio.Link(rio.Icon("material/mail"), f"mailto://{self.info.contact_mail}", open_in_new_tab=True, margin_top=1, margin_bottom=1, align_x=0.9))
if self.info.contact_steam:
contact_row.add(rio.Link(rio.Icon("custom/steam"), self.info.contact_steam, open_in_new_tab=True, margin_top=1, margin_bottom=1, align_x=0.1))
if not self._info.contact_steam and not self._info.contact_mail:
if not self.info.contact_steam and not self.info.contact_mail:
contact_row.add(rio.Text("", margin_top=2))
return rio.Rectangle(
@@ -51,3 +45,13 @@ class MemberCard(rio.Component):
shadow_color=self.session.theme.hud_color,
shadow_offset_y=0
)
def build_member_card(info: MemberInfo) -> MemberCard:
return MemberCard(
info=info,
align_y=0,
margin_top=0,
margin_bottom=2,
margin_right=1
)