class FocusState(rx.State):
text = "Change Me!"
def change_text(self, text):
if self.text == "Change Me!":
self.text = "Changed!"
else:
self.text = "Change Me!"
rx.input(
value=FocusState.text, on_focus=FocusState.change_text
)
class BlurState(rx.State):
text = "Change Me!"
def change_text(self, text):
if self.text == "Change Me!":
self.text = "Changed!"
else:
self.text = "Change Me!"
rx.input(
value=BlurState.text, on_blur=BlurState.change_text
)
class ChangeState(rx.State):
checked: bool = False
rx.switch(on_change=ChangeState.set_checked)
class ClickState(rx.State):
text = "Change Me!"
def change_text(self):
if self.text == "Change Me!":
self.text = "Changed!"
else:
self.text = "Change Me!"
rx.button(ClickState.text, on_click=ClickState.change_text)
class ContextState(rx.State):
text = "Change Me!"
def change_text(self):
if self.text == "Change Me!":
self.text = "Changed!"
else:
self.text = "Change Me!"
rx.button(
ContextState.text,
on_context_menu=ContextState.change_text,
)
class DoubleClickState(rx.State):
text = "Change Me!"
def change_text(self):
if self.text == "Change Me!":
self.text = "Changed!"
else:
self.text = "Change Me!"
rx.button(
DoubleClickState.text,
on_double_click=DoubleClickState.change_text,
)
class MountState(rx.State):
events: list[str] = []
def on_mount(self):
self.events = self.events[-4:] + [
"on_mount @ " + str(datetime.now())
]
rx.vstack(
rx.foreach(MountState.events, rx.text),
on_mount=MountState.on_mount,
)
class UnmountState(rx.State):
events: list[str] = []
def on_unmount(self):
self.events = self.events[-4:] + [
"on_unmount @ " + str(datetime.now())
]
rx.vstack(
rx.foreach(UnmountState.events, rx.text),
on_unmount=UnmountState.on_unmount,
)
class MouseUpState(rx.State):
text = "Change Me!"
def change_text(self):
if self.text == "Change Me!":
self.text = "Changed!"
else:
self.text = "Change Me!"
rx.button(
MouseUpState.text, on_mouse_up=MouseUpState.change_text
)
class MouseDown(rx.State):
text = "Change Me!"
def change_text(self):
if self.text == "Change Me!":
self.text = "Changed!"
else:
self.text = "Change Me!"
rx.button(
MouseDown.text, on_mouse_down=MouseDown.change_text
)
class MouseEnter(rx.State):
text = "Change Me!"
def change_text(self):
if self.text == "Change Me!":
self.text = "Changed!"
else:
self.text = "Change Me!"
rx.button(
MouseEnter.text, on_mouse_enter=MouseEnter.change_text
)
class MouseLeave(rx.State):
text = "Change Me!"
def change_text(self):
if self.text == "Change Me!":
self.text = "Changed!"
else:
self.text = "Change Me!"
rx.button(
MouseLeave.text, on_mouse_leave=MouseLeave.change_text
)
class MouseMove(rx.State):
text = "Change Me!"
def change_text(self):
if self.text == "Change Me!":
self.text = "Changed!"
else:
self.text = "Change Me!"
rx.button(
MouseMove.text, on_mouse_move=MouseMove.change_text
)
class MouseOut(rx.State):
text = "Change Me!"
def change_text(self):
if self.text == "Change Me!":
self.text = "Changed!"
else:
self.text = "Change Me!"
rx.button(MouseOut.text, on_mouse_out=MouseOut.change_text)
class MouseOver(rx.State):
text = "Change Me!"
def change_text(self):
if self.text == "Change Me!":
self.text = "Changed!"
else:
self.text = "Change Me!"
rx.button(
MouseOver.text, on_mouse_over=MouseOver.change_text
)
Scroll to make the text below change.
Change Me!
Scroll to make the text above change.
class ScrollState(rx.State):
text = "Change Me!"
def change_text(self):
if self.text == "Change Me!":
self.text = "Changed!"
else:
self.text = "Change Me!"
rx.vstack(
rx.text("Scroll to make the text below change."),
rx.text(ScrollState.text),
rx.text("Scroll to make the text above change."),
on_scroll=ScrollState.change_text,
overflow="auto",
height="3em",
width="100%",
)