Headless forms for ReactPy
- Headless, CSS agnostic
- Field validation
- 100% fully typed python
pip install reactpy-forms
class LoginFormData(FormModel):
email: Union[str, None] = None
password: Union[str, None] = None
@component
def LoginForm():
model, set_model = use_form_state(LoginFormData(email="joe@gmail.com", password="1234"))
Form, Field = create_form(model, set_model)
@event(prevent_default=True)
def onclick(event: EventArgs):
log.info('SUBMIT [%s]', model)
return Form(
html.h2("Login"),
Field('email', lambda field, props: TextInput('Email', field, props({'id': 'email', 'type':'email'}))),
Field('password', lambda field, props: TextInput('Password', field, props({'id': 'password'}))),
SubmitButton('Login', model, onclick=onclick)
)