data-driven-forms / react-forms

React library for rendering forms.
https://data-driven-forms.org/
Apache License 2.0
304 stars 87 forks source link

[V4] Update documentation #938

Open rvsia opened 3 years ago

rvsia commented 3 years ago

Scope: Docs

Description

Update documentation:

zgover commented 3 years ago

@rvsia Please also add documentation for api usage of manual validation. It would be great to use the schema to validate posted field values on server side without rendering.

Hyperkid123 commented 3 years ago

@zgover can you provide a simple example?

zgover commented 3 years ago

@Hyperkid123 Say form values were posted to an API /api/endpoint?schemaId=123&email=name@domain.com&...

While processing the request to verify the parameters/values were valid using a defined schema

const schema = {
  fields: [
    { name: email, validate: [{type: 'required'}, {type: 'pattern', pattern: '^...$', message: 'Invalid email' }]
  }
}

function handler(req, res) {
  const { query: { schemaId, ...fieldValues } }  = req
  const invalidFields = validateFields(schema, fieldsValues)
  if (invalidFields.length > 0) {
    return res.status(400).json({ status: 'error', error: { field_errors: invalidFields, ... } })
  }
  res.status(200).json({ status: 'success', code: 200 })
}
Hyperkid123 commented 3 years ago

Ah, I see. There should be similar functionality on the submit event. This would basically fall into the global validation category but instead of evaluating it client-side function, we would wait for a Promise response.

rvsia commented 3 years ago

@zgover So, you want to have a separate "validation engine" based on the DDF schema to use outside the form renderer, right? This sounds like an interesting idea! 🤔

zgover commented 3 years ago

Maybe something available before v4? Should be easy to implement without breaking changes.

rvsia commented 3 years ago

@zgover Yeah, I will take a look on it today. And it would be a definitely just an addition, so we can release it asap.

Hyperkid123 commented 3 years ago

The validation engine is available even now. It's just not prepared to "consume" schema but only a field state.

rvsia commented 3 years ago

@zgover Hello, the standalone validation has been released, you can check it here: https://data-driven-forms.org/utilities/standalone-validation

zgover commented 3 years ago

Much appreciate the quickness @rvsia and @Hyperkid123