Files
ELM/src/elm/pages/RulesPage.py
T
Typhus 1753d67752 prerelease/0.6.0 (#1)
Co-authored-by: David Rodenkirchen <drodenkirchen@linetco.com>
Reviewed-on: #1
2026-05-27 23:17:52 +00:00

81 lines
3.2 KiB
Python

from __future__ import annotations
from rio import Component, Column, Text, page, Rectangle
from elm.services import PreloadService
@page(name="Rules", url_segment="rules")
class RulesPage(Component):
def build(self) -> Component:
return Column(
Rectangle(
content=Column(
Rectangle(
content=Rectangle(
content=Text("Regeln", margin=0.5, selectable=False, overflow="wrap"),
fill=self.session.theme.header_box_background_color,
margin=0.4
),
stroke_width=0.1,
stroke_color=self.session.theme.box_border_color,
),
*[Column(
Text(
rule.split(":")[0],
font_size=0.8 if self.session.is_mobile() else 1.2,
fill=self.session.theme.primary_color,
overflow="wrap"
),
Text(
rule.split(":")[1].strip(),
font_size=0.7 if self.session.is_mobile() else 1,
overflow="wrap",
margin_left=1
),
margin=1,
spacing=1
) for rule in self.session[PreloadService].rules]
),
fill=self.session.theme.box_color,
stroke_width=0.1,
stroke_color=self.session.theme.box_border_color
),
Rectangle(
content=Column(
Rectangle(
content=Rectangle(
content=Text("AGB", margin=0.5, selectable=False, overflow="wrap"),
fill=self.session.theme.header_box_background_color,
margin=0.4
),
stroke_width=0.1,
stroke_color=self.session.theme.box_border_color,
),
*[Column(
Text(
text=paragraph,
font_size=0.8 if self.session.is_mobile() else 1.2,
fill=self.session.theme.primary_color,
overflow="wrap"
),
*[Text(
section,
font_size=0.7 if self.session.is_mobile() else 1,
overflow="wrap",
margin_left=1
) for section in self.session[PreloadService].gtc[paragraph]],
margin=1,
spacing=1
) for paragraph in self.session[PreloadService].gtc]
),
fill=self.session.theme.box_color,
stroke_width=0.1,
stroke_color=self.session.theme.box_border_color
),
grow_x=True,
grow_y=True,
spacing=1,
margin=0 if self.session.is_mobile() else 1
)