ConnectionModal uses Cond for rendering (#1739)

This commit is contained in:
Masen Furer 2023-09-01 13:07:48 -07:00 committed by GitHub
parent 829a7751b5
commit f9fad58769
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 11 deletions

View File

@ -24,7 +24,10 @@ class Cond(Component):
@classmethod
def create(
cls, cond: Var, comp1: Component, comp2: Optional[Component]
cls,
cond: Var,
comp1: Component,
comp2: Optional[Component] = None,
) -> Component:
"""Create a conditional component.

View File

@ -4,7 +4,7 @@ from __future__ import annotations
from typing import Optional
from reflex.components.component import Component
from reflex.components.layout import Box, Cond, Fragment
from reflex.components.layout import Box, Cond
from reflex.components.overlay.modal import Modal
from reflex.components.typography import Text
from reflex.vars import Var
@ -37,7 +37,7 @@ def default_connection_error() -> list[str | Var]:
]
class ConnectionBanner(Cond):
class ConnectionBanner(Component):
"""A connection banner component."""
@classmethod
@ -60,10 +60,10 @@ class ConnectionBanner(Cond):
textAlign="center",
)
return super().create(has_connection_error, comp, Fragment.create()) # type: ignore
return Cond.create(has_connection_error, comp)
class ConnectionModal(Modal):
class ConnectionModal(Component):
"""A connection status modal window."""
@classmethod
@ -78,8 +78,11 @@ class ConnectionModal(Modal):
"""
if not comp:
comp = Text.create(*default_connection_error())
return super().create(
header="Connection Error",
body=comp,
is_open=has_connection_error,
return Cond.create(
has_connection_error,
Modal.create(
header="Connection Error",
body=comp,
is_open=has_connection_error,
),
)

View File

@ -16,12 +16,12 @@ has_connection_error.type_
def default_connection_error() -> list[str | Var]: ...
class ConnectionBanner(Cond):
class ConnectionBanner(Component):
@overload
@classmethod
def create(cls, *children, **props) -> "ConnectionBanner": ... # type: ignore
class ConnectionModal(Modal):
class ConnectionModal(Component):
@overload
@classmethod
def create(cls, *children, **props) -> "ConnectionModal": ... # type: ignore