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

View File

@ -1,5 +1,5 @@
from reflex.components.radix.primitives.form import Form 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 from reflex.vars.base import Var
@ -15,7 +15,6 @@ def test_render_on_submit():
def test_render_no_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() f = Form.create()
for prop in f.render()["props"]: assert f.event_triggers["on_submit"] == prevent_default
assert "onSubmit" not in prop