who likes cond
This commit is contained in:
parent
b11fc5a8ef
commit
392c5b5a69
@ -20,7 +20,7 @@ from __future__ import annotations
|
|||||||
from typing import Dict, List, Literal, Optional, Union, get_args
|
from typing import Dict, List, Literal, Optional, Union, get_args
|
||||||
|
|
||||||
from reflex.components.component import BaseComponent
|
from reflex.components.component import BaseComponent
|
||||||
from reflex.components.core.cond import Cond, color_mode_cond, cond
|
from reflex.components.core.cond import color_mode_cond, cond
|
||||||
from reflex.components.lucide.icon import Icon
|
from reflex.components.lucide.icon import Icon
|
||||||
from reflex.components.radix.themes.components.dropdown_menu import dropdown_menu
|
from reflex.components.radix.themes.components.dropdown_menu import dropdown_menu
|
||||||
from reflex.components.radix.themes.components.switch import Switch
|
from reflex.components.radix.themes.components.switch import Switch
|
||||||
@ -40,28 +40,23 @@ DEFAULT_LIGHT_ICON: Icon = Icon.create(tag="sun")
|
|||||||
DEFAULT_DARK_ICON: Icon = Icon.create(tag="moon")
|
DEFAULT_DARK_ICON: Icon = Icon.create(tag="moon")
|
||||||
|
|
||||||
|
|
||||||
class ColorModeIcon(Cond):
|
def icon(
|
||||||
"""Displays the current color mode as an icon."""
|
light_component: BaseComponent | None = None,
|
||||||
|
dark_component: BaseComponent | None = None,
|
||||||
|
):
|
||||||
|
"""Create a color mode icon component.
|
||||||
|
|
||||||
@classmethod
|
Args:
|
||||||
def create(
|
light_component: The component to render in light mode.
|
||||||
cls,
|
dark_component: The component to render in dark mode.
|
||||||
light_component: BaseComponent | None = None,
|
|
||||||
dark_component: BaseComponent | None = None,
|
|
||||||
):
|
|
||||||
"""Create an icon component based on color_mode.
|
|
||||||
|
|
||||||
Args:
|
Returns:
|
||||||
light_component: the component to display when color mode is default
|
The color mode icon component.
|
||||||
dark_component: the component to display when color mode is dark (non-default)
|
"""
|
||||||
|
return color_mode_cond(
|
||||||
Returns:
|
light=light_component or DEFAULT_LIGHT_ICON,
|
||||||
The conditionally rendered component
|
dark=dark_component or DEFAULT_DARK_ICON,
|
||||||
"""
|
)
|
||||||
return color_mode_cond(
|
|
||||||
light=light_component or DEFAULT_LIGHT_ICON,
|
|
||||||
dark=dark_component or DEFAULT_DARK_ICON,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
LiteralPosition = Literal["top-left", "top-right", "bottom-left", "bottom-right"]
|
LiteralPosition = Literal["top-left", "top-right", "bottom-left", "bottom-right"]
|
||||||
@ -150,7 +145,7 @@ class ColorModeIconButton(IconButton):
|
|||||||
return dropdown_menu.root(
|
return dropdown_menu.root(
|
||||||
dropdown_menu.trigger(
|
dropdown_menu.trigger(
|
||||||
super().create(
|
super().create(
|
||||||
ColorModeIcon.create(),
|
icon(),
|
||||||
),
|
),
|
||||||
**props,
|
**props,
|
||||||
),
|
),
|
||||||
@ -161,7 +156,7 @@ class ColorModeIconButton(IconButton):
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
return IconButton.create(
|
return IconButton.create(
|
||||||
ColorModeIcon.create(),
|
icon(),
|
||||||
on_click=toggle_color_mode,
|
on_click=toggle_color_mode,
|
||||||
**props,
|
**props,
|
||||||
)
|
)
|
||||||
@ -195,7 +190,7 @@ class ColorModeSwitch(Switch):
|
|||||||
class ColorModeNamespace(Var):
|
class ColorModeNamespace(Var):
|
||||||
"""Namespace for color mode components."""
|
"""Namespace for color mode components."""
|
||||||
|
|
||||||
icon = staticmethod(ColorModeIcon.create)
|
icon = icon
|
||||||
button = staticmethod(ColorModeIconButton.create)
|
button = staticmethod(ColorModeIconButton.create)
|
||||||
switch = staticmethod(ColorModeSwitch.create)
|
switch = staticmethod(ColorModeSwitch.create)
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@ from typing import Any, Dict, List, Literal, Optional, Union, overload
|
|||||||
|
|
||||||
from reflex.components.component import BaseComponent
|
from reflex.components.component import BaseComponent
|
||||||
from reflex.components.core.breakpoints import Breakpoints
|
from reflex.components.core.breakpoints import Breakpoints
|
||||||
from reflex.components.core.cond import Cond
|
|
||||||
from reflex.components.lucide.icon import Icon
|
from reflex.components.lucide.icon import Icon
|
||||||
from reflex.components.radix.themes.components.switch import Switch
|
from reflex.components.radix.themes.components.switch import Switch
|
||||||
from reflex.event import BASE_STATE, EventType
|
from reflex.event import BASE_STATE, EventType
|
||||||
@ -19,48 +18,10 @@ from .components.icon_button import IconButton
|
|||||||
DEFAULT_LIGHT_ICON: Icon
|
DEFAULT_LIGHT_ICON: Icon
|
||||||
DEFAULT_DARK_ICON: Icon
|
DEFAULT_DARK_ICON: Icon
|
||||||
|
|
||||||
class ColorModeIcon(Cond):
|
def icon(
|
||||||
@overload
|
light_component: BaseComponent | None = None,
|
||||||
@classmethod
|
dark_component: BaseComponent | None = None,
|
||||||
def create( # type: ignore
|
): ...
|
||||||
cls,
|
|
||||||
*children,
|
|
||||||
cond: Optional[Union[Any, Var[Any]]] = None,
|
|
||||||
comp1: Optional[BaseComponent] = None,
|
|
||||||
comp2: Optional[BaseComponent] = None,
|
|
||||||
style: Optional[Style] = None,
|
|
||||||
key: Optional[Any] = None,
|
|
||||||
id: Optional[Any] = None,
|
|
||||||
class_name: Optional[Any] = None,
|
|
||||||
autofocus: Optional[bool] = None,
|
|
||||||
custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
|
|
||||||
on_blur: Optional[EventType[[], BASE_STATE]] = None,
|
|
||||||
on_click: Optional[EventType[[], BASE_STATE]] = None,
|
|
||||||
on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
|
|
||||||
on_double_click: Optional[EventType[[], BASE_STATE]] = None,
|
|
||||||
on_focus: Optional[EventType[[], BASE_STATE]] = None,
|
|
||||||
on_mount: Optional[EventType[[], BASE_STATE]] = None,
|
|
||||||
on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
|
|
||||||
on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
|
|
||||||
on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
|
|
||||||
on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
|
|
||||||
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
|
|
||||||
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
|
|
||||||
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
|
|
||||||
on_scroll: Optional[EventType[[], BASE_STATE]] = None,
|
|
||||||
on_unmount: Optional[EventType[[], BASE_STATE]] = None,
|
|
||||||
**props,
|
|
||||||
) -> "ColorModeIcon":
|
|
||||||
"""Create an icon component based on color_mode.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
light_component: the component to display when color mode is default
|
|
||||||
dark_component: the component to display when color mode is dark (non-default)
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
The conditionally rendered component
|
|
||||||
"""
|
|
||||||
...
|
|
||||||
|
|
||||||
LiteralPosition = Literal["top-left", "top-right", "bottom-left", "bottom-right"]
|
LiteralPosition = Literal["top-left", "top-right", "bottom-left", "bottom-right"]
|
||||||
position_values: List[str]
|
position_values: List[str]
|
||||||
@ -442,7 +403,7 @@ class ColorModeSwitch(Switch):
|
|||||||
...
|
...
|
||||||
|
|
||||||
class ColorModeNamespace(Var):
|
class ColorModeNamespace(Var):
|
||||||
icon = staticmethod(ColorModeIcon.create)
|
icon = icon
|
||||||
button = staticmethod(ColorModeIconButton.create)
|
button = staticmethod(ColorModeIconButton.create)
|
||||||
switch = staticmethod(ColorModeSwitch.create)
|
switch = staticmethod(ColorModeSwitch.create)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user