prerelease/0.6.0 (#1)
Co-authored-by: David Rodenkirchen <drodenkirchen@linetco.com> Reviewed-on: #1
This commit was merged in pull request #1.
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
from asyncio import sleep
|
||||
|
||||
from rio import Component, Column, Row, Text, Spacer, page, Rectangle, QueryParameter, ProgressCircle
|
||||
from rio.event import on_populate
|
||||
|
||||
from elm.services import AccountingService
|
||||
|
||||
logger = logging.getLogger(__name__.split(".")[-1])
|
||||
|
||||
@page(name="PayPal Return", url_segment="return-paypal")
|
||||
class PayPalReturnPage(Component):
|
||||
token: QueryParameter[str] = "No Value"
|
||||
in_progress: bool = True
|
||||
error_message: str = ""
|
||||
success_message: str = ""
|
||||
|
||||
@on_populate
|
||||
async def on_populate(self) -> None:
|
||||
result = await self.session[AccountingService].finalize_paypal_process(self.token)
|
||||
await sleep(1)
|
||||
if result:
|
||||
self.in_progress = False
|
||||
self.success_message = "Aufladung erfolgreich. Du kannst dieses Fenster schließen."
|
||||
else:
|
||||
self.in_progress = False
|
||||
self.error_message = "Es ist ein Fehler aufgetreten, bitte kontaktiere uns"
|
||||
|
||||
def build(self) -> Component:
|
||||
col_contents = []
|
||||
if self.in_progress:
|
||||
col_contents.append(ProgressCircle(min_size=5, color=self.session.theme.primary_color))
|
||||
col_contents.append(Text("Wir prüfen deine Aufladung", overflow="wrap", justify="center"))
|
||||
else:
|
||||
if self.error_message:
|
||||
col_contents.append(Text(self.error_message, overflow="wrap", justify="center", fill=self.session.theme.danger_color))
|
||||
elif self.success_message:
|
||||
col_contents.append(Text(self.success_message, overflow="wrap", justify="center", fill=self.session.theme.success_color))
|
||||
|
||||
return Row(
|
||||
Rectangle(
|
||||
content=Column(
|
||||
Rectangle(
|
||||
content=Rectangle(
|
||||
content=Text("Paypal Aufladung", 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(
|
||||
*col_contents,
|
||||
margin=1,
|
||||
spacing=1
|
||||
),
|
||||
Spacer()
|
||||
),
|
||||
fill=self.session.theme.box_color,
|
||||
stroke_width=0.1,
|
||||
stroke_color=self.session.theme.box_border_color,
|
||||
min_width=1 if self.session.is_mobile() else 25
|
||||
),
|
||||
align_x=0.5,
|
||||
align_y=0.5
|
||||
)
|
||||
Reference in New Issue
Block a user