add set_focus (#1092)
This commit is contained in:
parent
bf93113b26
commit
d4b5c78406
@ -97,6 +97,13 @@ export const applyEvent = async (event, router, socket) => {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event.name == "_set_focus") {
|
||||||
|
const ref =
|
||||||
|
event.payload.ref in refs ? refs[event.payload.ref] : event.payload.ref;
|
||||||
|
ref.current.focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (event.name == "_set_value") {
|
if (event.name == "_set_value") {
|
||||||
const ref =
|
const ref =
|
||||||
event.payload.ref in refs ? refs[event.payload.ref] : event.payload.ref;
|
event.payload.ref in refs ? refs[event.payload.ref] : event.payload.ref;
|
||||||
|
@ -22,6 +22,7 @@ from .event import EventChain as EventChain
|
|||||||
from .event import FileUpload as upload_files
|
from .event import FileUpload as upload_files
|
||||||
from .event import console_log as console_log
|
from .event import console_log as console_log
|
||||||
from .event import redirect as redirect
|
from .event import redirect as redirect
|
||||||
|
from .event import set_focus as set_focus
|
||||||
from .event import set_value as set_value
|
from .event import set_value as set_value
|
||||||
from .event import window_alert as window_alert
|
from .event import window_alert as window_alert
|
||||||
from .middleware import Middleware as Middleware
|
from .middleware import Middleware as Middleware
|
||||||
|
@ -202,6 +202,22 @@ def window_alert(message: Union[str, Var[str]]) -> EventSpec:
|
|||||||
return server_side("_alert", get_fn_signature(window_alert), message=message)
|
return server_side("_alert", get_fn_signature(window_alert), message=message)
|
||||||
|
|
||||||
|
|
||||||
|
def set_focus(ref: str) -> EventSpec:
|
||||||
|
"""Set focus to specified ref.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
ref: The ref.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
An event to set focus on the ref
|
||||||
|
"""
|
||||||
|
return server_side(
|
||||||
|
"_set_focus",
|
||||||
|
get_fn_signature(set_focus),
|
||||||
|
ref=Var.create_safe(format.format_ref(ref)),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def set_value(ref: str, value: Any) -> EventSpec:
|
def set_value(ref: str, value: Any) -> EventSpec:
|
||||||
"""Set the value of a ref.
|
"""Set the value of a ref.
|
||||||
|
|
||||||
|
@ -118,6 +118,17 @@ def test_event_window_alert():
|
|||||||
assert format.format_event(spec) == 'E("_alert", {message:message})'
|
assert format.format_event(spec) == 'E("_alert", {message:message})'
|
||||||
|
|
||||||
|
|
||||||
|
def test_set_focus():
|
||||||
|
"""Test the event set focus function."""
|
||||||
|
spec = event.set_focus("input1")
|
||||||
|
assert isinstance(spec, EventSpec)
|
||||||
|
assert spec.handler.fn.__qualname__ == "_set_focus"
|
||||||
|
assert spec.args == (("ref", Var.create_safe("ref_input1")),)
|
||||||
|
assert format.format_event(spec) == 'E("_set_focus", {ref:ref_input1})'
|
||||||
|
spec = event.set_focus("input1")
|
||||||
|
assert format.format_event(spec) == 'E("_set_focus", {ref:ref_input1})'
|
||||||
|
|
||||||
|
|
||||||
def test_set_value():
|
def test_set_value():
|
||||||
"""Test the event window alert function."""
|
"""Test the event window alert function."""
|
||||||
spec = event.set_value("input1", "")
|
spec = event.set_value("input1", "")
|
||||||
|
Loading…
Reference in New Issue
Block a user