Skip to content

Commit f6d10b3

Browse files
authored
Merge pull request #840 from rvsia/updateValidationDocs
Update validation docs
2 parents 068b75f + 694ad96 commit f6d10b3

File tree

10 files changed

+173
-16
lines changed

10 files changed

+173
-16
lines changed

packages/react-renderer-demo/src/examples/components/validators/url-validator.js

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,6 @@ const componentMapper = {
1010
};
1111
const schema = {
1212
title: 'Start typing',
13-
description: (
14-
<span>
15-
We are using modified redux-form-validators amazing implementation of &nbsp;
16-
<a href="https://github.com/gtournie/redux-form-validators#url" rel="noopener noreferrer" target="_blank">
17-
URL validator
18-
</a>
19-
.
20-
</span>
21-
),
2213
fields: [
2314
{
2415
component: componentTypes.TEXT_FIELD,

packages/react-renderer-demo/src/helpers/list-of-contents.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ const useLinkStyles = makeStyles((theme) => ({
2121
color: theme.palette.text.secondary,
2222
overflow: 'hidden',
2323
textOverflow: 'ellipsis',
24-
width: 'calc(100% - 32px)',
2524
whiteSpace: 'nowrap',
2625
display: 'block',
2726
paddingLeft: 16,

packages/react-renderer-demo/src/pages/schema/async-validator.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,19 @@ import CodeExample from '@docs/code-example';
55

66
# Async validator
77

8+
*(value, allValues, meta) => new Promise*
9+
810
You can use a Async function as a validator. But it **must be first in the validate array**. Other async validators will be ignored. This rule was created to prevent long asynchronous validation sequences.
911

1012
You can either use custom function, or custom validator from validator mapper.
1113

12-
<CodeExample mode="preview" source="components/validators/async-validator" />
13-
14-
1514
Validator inputs and results are being cached so you will get immediate feedback for recurring values before the validation is actually finished.
1615

1716
If you do not want to trigger the async validator after every stroke, you can use a debounce promise [library](https://github.com/slorber/awesome-debounce-promise)
1817
(or any other implementation of debouncing.)
1918

19+
## Example
20+
21+
<CodeExample mode="preview" source="components/validators/async-validator" />
22+
2023
</DocPage>

packages/react-renderer-demo/src/pages/schema/custom-validator.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,14 @@ import CodeExample from '@docs/code-example';
55

66
# Custom validator
77

8-
As validator you can provide your custom function:
8+
*(value, allValues, meta) => any | new Promise: any*
99

10-
<CodeExample mode="preview" source="components/validators/custom-function" />
10+
As validator you can provide your custom function. This function takes `value`, `allValues` and `meta` as arguments and returns error message when it fails, otherwise it returns undefined. Please see [final form validate prop](https://final-form.org/docs/react-final-form/types/FieldProps#validate).
11+
12+
Check [async documentation](/schema/async-validator) for asynchronous validation.
1113

12-
Please see [final form validate prop](https://final-form.org/docs/react-final-form/types/FieldProps#validate). This function takes `value`, `allValues` and `meta` as arguments and returns error message when it fails, otherwise it returns undefined.
14+
## Example
15+
16+
<CodeExample mode="preview" source="components/validators/custom-function" />
1317

1418
</DocPage>

packages/react-renderer-demo/src/pages/schema/length-validator.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,60 @@ import CodeExample from '@docs/code-example';
55

66
# Length validator
77

8+
Data Driven Forms provides several built length validators:
9+
10+
## MIN_LENGTH
11+
12+
Checks minimal length of the text.
13+
14+
```jsx
15+
import { validatorTypes } from '@data-driven-forms/react-form-renderer';
16+
17+
18+
{
19+
type: validatorTypes.MIN_LENGTH,
20+
threshold: 5,
21+
}
22+
```
23+
24+
## MAX_LENGTH
25+
26+
Checks maximum length of the text.
27+
28+
```jsx
29+
import { validatorTypes } from '@data-driven-forms/react-form-renderer';
30+
31+
32+
{
33+
type: validatorTypes.MAX_LENGTH,
34+
threshold: 5,
35+
}
36+
```
37+
38+
## EXACT_LENGTH
39+
40+
Checks exact length of the text.
41+
42+
```jsx
43+
import { validatorTypes } from '@data-driven-forms/react-form-renderer';
44+
45+
46+
{
47+
type: validatorTypes.EXACT_LENGTH,
48+
threshold: 5
49+
}
50+
```
51+
52+
## Options
53+
54+
### threshold
55+
56+
*number*
57+
58+
Threshold of the validator.
59+
60+
## Example
61+
862
<CodeExample mode="preview" source="components/validators/length-validators" />
963

1064
</DocPage>

packages/react-renderer-demo/src/pages/schema/number-value-validator.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,52 @@ import CodeExample from '@docs/code-example';
55

66
# Number value validator
77

8+
Data Driven Forms provides several built number validators:
9+
10+
## MIN_NUMBER_VALUE
11+
12+
Checks if the number is smaller than a value.
13+
14+
```jsx
15+
import { validatorTypes } from '@data-driven-forms/react-form-renderer';
16+
17+
18+
{
19+
type: validatorTypes.MIN_NUMBER_VALUE,
20+
threshold: 5
21+
}
22+
```
23+
24+
## MAX_NUMBER_VALUE
25+
26+
Checks if the number is greater than a value.
27+
28+
```jsx
29+
import { validatorTypes } from '@data-driven-forms/react-form-renderer';
30+
31+
32+
{
33+
type: validatorTypes.MAX_NUMBER_VALUE,
34+
threshold: 5
35+
}
36+
```
37+
38+
## Options
39+
40+
### value
41+
42+
*number*
43+
44+
Value to compate.
45+
46+
### includeThreshold
47+
48+
*boolean* default: `true`
49+
50+
If true, the threshold value will be considered valid.
51+
52+
## Example
53+
854
<CodeExample mode="preview" source="components/validators/number-validator" />
955

1056
</DocPage>

packages/react-renderer-demo/src/pages/schema/pattern-validator.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,43 @@ import CodeExample from '@docs/code-example';
55

66
# Pattern validator
77

8+
Data Driven Forms provides a pattern validator that uses regular expression to check the value.
9+
10+
```jsx
11+
import { validatorTypes } from '@data-driven-forms/react-form-renderer';
12+
13+
14+
{
15+
type: validatorTypes.PATTERN,
16+
pattern: /\d+/
17+
}
18+
```
19+
20+
## Options
21+
22+
### pattern
23+
24+
*string | regEx*
25+
26+
To set a pattern you can use a string variant or a regEx.
27+
28+
i.e.
29+
30+
- string: `\d+`
31+
- regEx: `/\d+/`
32+
33+
### flags
34+
35+
*string*
36+
37+
Sets flags used in the regular expression.
38+
39+
i.e.
40+
41+
- `i` - case-insensitive
42+
43+
## Example
44+
845
<CodeExample mode="preview" source="components/validators/pattern-validator" />
946

1047
</DocPage>

packages/react-renderer-demo/src/pages/schema/record-level-validation.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@ import CodeExample from '@docs/code-example';
55

66
# Record level validation
77

8+
*(values) => object | new Promise: Object*
9+
810
This form of validation enables you to create validation function for whole form. It is useful for some cross validation between multiple fields etc.
911
Detailed information can be found [here](https://final-form.org/docs/react-final-form/examples/record-level-validation).
1012

13+
## Example
14+
1115
<CodeExample mode="preview" source="components/validators/record-level-validation" />
1216

1317
</DocPage>

packages/react-renderer-demo/src/pages/schema/required-validator.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,19 @@ import CodeExample from '@docs/code-example';
55

66
# Required validator
77

8+
Required validator checks if the value is not empty/falsy.
9+
10+
```jsx
11+
import { validatorTypes } from '@data-driven-forms/react-form-renderer';
12+
13+
14+
{
15+
type: validatorTypes.REQUIRED,
16+
}
17+
```
18+
19+
## Example
20+
821
<CodeExample source="components/validators/required-validator" mode="preview" />
922

1023
</DocPage>

packages/react-renderer-demo/src/pages/schema/url-validator.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ import CodeExample from '@docs/code-example';
55

66
# URL validator
77

8+
We are using modified redux-form-validators amazing [implementation](https://github.com/gtournie/redux-form-validators#url) of URL validator.
9+
10+
Please follow their docs to see all possible options.
11+
12+
## Example
13+
814
<CodeExample mode="preview" source="components/validators/url-validator" />
915

1016
</DocPage>

0 commit comments

Comments
 (0)