UNPKG

strapi-plugin-cookie-manager

Version:
93 lines (79 loc) 2.35 kB
// Yup Validation import * as Yup from "yup" // Utils import { getTrad } from "../../utils" const ValidationSchema = (formatMessage) => { const msg = { string: { isRequired: formatMessage({ id: getTrad("form.validation.string.isRequired"), defaultMessage: "Text cannot be empty" }), isMax: formatMessage({ id: getTrad("form.validation.string.isMax"), defaultMessage: "Text is to long" }), isDomain: formatMessage({ id: getTrad("form.validation.string.isDomain"), defaultMessage: "Text must be a domain e.G example.com" }), isKebabCase: formatMessage({ id: getTrad("form.validation.string.isKebabCase"), defaultMessage: "Field must be formated like follow e.g my-example-key" }), }, number: { isMax: formatMessage({ id: getTrad("form.validation.number.isMax"), defaultMessage: "Number is to large" }), isPositiv: formatMessage({ id: getTrad("form.validation.number.isPositiv"), defaultMessage: "Number cannot be negative" }), isInteger: formatMessage({ id: getTrad("form.validation.number.isInteger"), defaultMessage: "Number cannot be decimal" }), } } return Yup.object().shape({ name: Yup .string() .required(msg.string.isRequired), description: Yup .string() .max(2000, msg.string.isMax), host: Yup .string() .required(msg.string.isRequired) .matches(/(?:\w+\.)+\w+/i, msg.string.isDomain), category: Yup .string() .nullable() .required(msg.string.isRequired), party: Yup .string() .nullable() .required(msg.string.isRequired), durationDays: Yup .number() .min(0, msg.number.isPositiv) .integer(msg.number.isInteger), durationHours: Yup .number() .min(0, msg.number.isPositiv) .integer(msg.number.isInteger) .max(24, msg.number.isMax), durationMinutes: Yup .number() .min(0, msg.number.isPositiv) .integer(msg.number.isInteger) .max(60, msg.number.isMax), key: Yup .string() .max(250, msg.string.isMax) .matches(/^(?!-)(?!.*?-$)[a-z0-9]*(?:-[a-z0-9]+)*$/i, msg.string.isKebabCase), }) } export default ValidationSchema