88 lines
2.3 KiB
Python
88 lines
2.3 KiB
Python
"""Event-related constants."""
|
|
from enum import Enum
|
|
from types import SimpleNamespace
|
|
|
|
|
|
class Endpoint(Enum):
|
|
"""Endpoints for the reflex backend API."""
|
|
|
|
PING = "ping"
|
|
EVENT = "_event"
|
|
UPLOAD = "_upload"
|
|
|
|
def __str__(self) -> str:
|
|
"""Get the string representation of the endpoint.
|
|
|
|
Returns:
|
|
The path for the endpoint.
|
|
"""
|
|
return f"/{self.value}"
|
|
|
|
def get_url(self) -> str:
|
|
"""Get the URL for the endpoint.
|
|
|
|
Returns:
|
|
The full URL for the endpoint.
|
|
"""
|
|
# Import here to avoid circular imports.
|
|
from reflex.config import get_config
|
|
|
|
# Get the API URL from the config.
|
|
config = get_config()
|
|
url = "".join([config.api_url, str(self)])
|
|
|
|
# The event endpoint is a websocket.
|
|
if self == Endpoint.EVENT:
|
|
# Replace the protocol with ws.
|
|
url = url.replace("https://", "wss://").replace("http://", "ws://")
|
|
|
|
# Return the url.
|
|
return url
|
|
|
|
|
|
class SocketEvent(SimpleNamespace):
|
|
"""Socket events sent by the reflex backend API."""
|
|
|
|
PING = "ping"
|
|
EVENT = "event"
|
|
|
|
def __str__(self) -> str:
|
|
"""Get the string representation of the event name.
|
|
|
|
Returns:
|
|
The event name string.
|
|
"""
|
|
return str(self.value)
|
|
|
|
|
|
class EventTriggers(SimpleNamespace):
|
|
"""All trigger names used in Reflex."""
|
|
|
|
ON_FOCUS = "on_focus"
|
|
ON_BLUR = "on_blur"
|
|
ON_CANCEL = "on_cancel"
|
|
ON_CLICK = "on_click"
|
|
ON_CHANGE = "on_change"
|
|
ON_CHANGE_END = "on_change_end"
|
|
ON_CHANGE_START = "on_change_start"
|
|
ON_CHECKED_CHANGE = "on_checked_change"
|
|
ON_COMPLETE = "on_complete"
|
|
ON_CONTEXT_MENU = "on_context_menu"
|
|
ON_DOUBLE_CLICK = "on_double_click"
|
|
ON_DROP = "on_drop"
|
|
ON_EDIT = "on_edit"
|
|
ON_KEY_DOWN = "on_key_down"
|
|
ON_KEY_UP = "on_key_up"
|
|
ON_MOUSE_DOWN = "on_mouse_down"
|
|
ON_MOUSE_ENTER = "on_mouse_enter"
|
|
ON_MOUSE_LEAVE = "on_mouse_leave"
|
|
ON_MOUSE_MOVE = "on_mouse_move"
|
|
ON_MOUSE_OUT = "on_mouse_out"
|
|
ON_MOUSE_OVER = "on_mouse_over"
|
|
ON_MOUSE_UP = "on_mouse_up"
|
|
ON_SCROLL = "on_scroll"
|
|
ON_SUBMIT = "on_submit"
|
|
ON_MOUNT = "on_mount"
|
|
ON_UNMOUNT = "on_unmount"
|
|
ON_CLEAR_SERVER_ERRORS = "on_clear_server_errors"
|