default on_submit in form set to prevent_default (#4005)

* default submit forms set to prevent_default

* fix tests
This commit is contained in:
Thomas Brandého 2024-09-26 11:56:59 -07:00 committed by GitHub
parent 25016f5e27
commit 130bcf96ca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 5 deletions

View File

@ -10,7 +10,7 @@ from jinja2 import Environment
from reflex.components.el.element import Element
from reflex.components.tags.tag import Tag
from reflex.constants import Dirs, EventTriggers
from reflex.event import EventChain, EventHandler
from reflex.event import EventChain, EventHandler, prevent_default
from reflex.utils.imports import ImportDict
from reflex.vars import VarData
from reflex.vars.base import LiteralVar, Var
@ -148,6 +148,9 @@ class Form(BaseHTML):
Returns:
The form component.
"""
if "on_submit" not in props:
props["on_submit"] = prevent_default
if "handle_submit_unique_name" in props:
return super().create(*children, **props)

View File

@ -1,5 +1,5 @@
from reflex.components.radix.primitives.form import Form
from reflex.event import EventChain
from reflex.event import EventChain, prevent_default
from reflex.vars.base import Var
@ -15,7 +15,6 @@ def test_render_on_submit():
def test_render_no_on_submit():
"""A form without on_submit should not render a submit handler."""
"""A form without on_submit should render a prevent_default handler."""
f = Form.create()
for prop in f.render()["props"]:
assert "onSubmit" not in prop
assert f.event_triggers["on_submit"] == prevent_default