Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import * as Yup from 'yup';
- import moment from 'moment';
- const BeneficiaryFormSchema = Yup.object().shape({
- primary: Yup.object()
- .shape({
- relationship: Yup.string().required('This field is required'),
- firstName: Yup.string()
- .min(2, 'This field has a minimum length of 2 characters.')
- .required('This field is required'),
- lastName: Yup.string().when('relationship', {
- is: val => val === 'ENTY' || val === 'TRST',
- then: Yup.string().notRequired(),
- otherwise: Yup.string()
- .min(2, 'This field has a minimum length of 2 characters.')
- .required('This field is required'),
- }),
- addressLine1: Yup.string().required('This field is required'),
- addressLine2: Yup.string(),
- country: Yup.string()
- .length(2, 'This field must be 2 characters only')
- .required('This field is required'),
- city: Yup.string().required('This field is required'),
- stateStr: Yup.string()
- .min(2, 'This field has a minimum length of 2 characters.')
- .required('This field is required'),
- postalCode: Yup.string()
- .min(4, 'This field has a minimum length of 4 characters.')
- .max(9, 'This field has a maximum length of 9 characters')
- .required('This field is required'),
- dateOfRecord: Yup.date().when('relationship', {
- is: val => val === 'ENTY' || val === 'TRST',
- then: Yup.date()
- .typeError('Please fill a valid date')
- .required('This field is required'),
- otherwise: Yup.date()
- .min(
- moment().subtract(100, 'year'),
- 'Beneficiary must be 100 years or lower'
- )
- .max(
- moment().subtract(18, 'year'),
- 'Beneficiary must be at least 18 years old'
- )
- .typeError('Please fill a valid date')
- .required('This field is required'),
- }),
- documentNumber: Yup.string().required('This field is required'),
- email: Yup.string()
- .email('Your email must be valid')
- .required('Your email is required'),
- phone: Yup.string().required('This field is required'),
- })
- .required(),
- contingent: Yup.object().when('hasContingent', {
- is: val => val,
- then: Yup.object()
- .shape({
- relationship: Yup.string().required('This field is required'),
- firstName: Yup.string()
- .min(2, 'This field has a minimum length of 2 characters.')
- .required('This field is required'),
- lastName: Yup.string().when('relationship', {
- is: val => val === 'ENTY' || val === 'TRST',
- then: Yup.string().notRequired(),
- otherwise: Yup.string()
- .min(2, 'This field has a minimum length of 2 characters.')
- .required('This field is required'),
- }),
- addressLine1: Yup.string().required('This field is required'),
- addressLine2: Yup.string(),
- country: Yup.string()
- .length(2, 'This field must be 2 characters only')
- .required('This field is required'),
- city: Yup.string().required('This field is required'),
- stateStr: Yup.string()
- .min(2, 'This field has a minimum length of 2 characters.')
- .required('This field is required'),
- postalCode: Yup.string()
- .min(4, 'This field has a minimum length of 4 characters.')
- .max(9, 'This field has a maximum length of 9 characters')
- .required('This field is required'),
- dateOfRecord: Yup.date().when('relationship', {
- is: val => val === 'ENTY' || val === 'TRST',
- then: Yup.date()
- .typeError('Please fill a valid date')
- .required('This field is required'),
- otherwise: Yup.date()
- .min(
- moment().subtract(100, 'year'),
- 'Beneficiary must be 100 years or lower'
- )
- .max(
- moment().subtract(18, 'year'),
- 'Beneficiary must be at least 18 years old'
- )
- .typeError('Please fill a valid date')
- .required('This field is required'),
- }),
- documentNumber: Yup.string().required('This field is required'),
- email: Yup.string()
- .email('Your email must be valid')
- .required('Your email is required'),
- phone: Yup.string().required('This field is required'),
- })
- .required(),
- otherwise: Yup.object().notRequired(),
- }),
- investorInitials: Yup.string().required('This field is required'),
- hasContingent: Yup.boolean(),
- });
- export default BeneficiaryFormSchema;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement