diff --git a/components/elements/fields/renderSubFields.js b/components/elements/fields/renderSubFields.js
new file mode 100644
index 00000000..5e5665d9
--- /dev/null
+++ b/components/elements/fields/renderSubFields.js
@@ -0,0 +1,146 @@
+import React from "react";
+import { Field } from "redux-form";
+import useTranslation from "next-translate/useTranslation";
+import { RenderTextfield } from "./renderTextfield";
+import { RenderDatePicker } from "./renderDatePicker";
+
+export const RenderSubFields = ({
+ fields,
+ meta: { touched, error },
+ ...custom
+}) => {
+ let { t } = useTranslation();
+
+ let subTitle = fields.name.split("pinswg_")[1];
+
+ const checkValue = (value) => {
+ let errors;
+
+ if (!value) {
+ errors = t("newappeal:is-required-label");
+ } else {
+ const emojiRegex =
+ /[\u{1F600}-\u{1F64F}\u{1F300}-\u{1F5FF}\u{1F680}-\u{1F6FF}\u{1F700}-\u{1F77F}\u{1F780}-\u{1F7FF}\u{1F800}-\u{1F8FF}\u{1F900}-\u{1F9FF}\u{1FA00}-\u{1FA6F}\u{1FA70}-\u{1FAFF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}\u{2300}-\u{23FF}\u{2B50}\u{1F004}-\u{1F0CF}\u{1F0A0}-\u{1F0A5}\u{1F170}-\u{1F251}]/gu;
+
+ if (emojiRegex.test(value)) {
+ errors = "Emojis are not allowed";
+ }
+ }
+
+ return errors;
+ };
+
+ const required = (value) =>
+ value ? undefined : t("newappeal:is-required-label");
+
+ const email = (value) => {
+ let errors;
+
+ const emailRegex =
+ /(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/gi;
+
+ if (!emailRegex.test(value)) {
+ errors = t("newappeal:invalid-email-address-errormsg");
+ }
+ return errors;
+ };
+
+ fields.length == 0 && fields.push({});
+
+ return (
+
+ {fields.map((member, index) => (
+
+
+ {subTitle == "owners" ? "Owner" : "Tenant"} #{index + 1}
+
+
+
+
+
+
+
+
+
+ ))}
+
+
+ {fields.length < custom.maxSubField && (
+
+ )}
+
+ );
+};
diff --git a/components/elements/index.js b/components/elements/index.js
index de495dba..751a9950 100644
--- a/components/elements/index.js
+++ b/components/elements/index.js
@@ -41,6 +41,7 @@ import { RenderRadio } from "./fields/renderRadio";
import { RenderCheckBox } from "./fields/renderCheckBox";
import { RenderPickList } from "./fields/renderPickList";
import { RenderDecimalField } from "./fields/renderDecimalField";
+import { RenderSubFields } from "./fields/renderSubFields";
export function Textfield(props) {
const {
@@ -1584,143 +1585,6 @@ const renderField = ({ input, label, type, meta: { touched, error } }) => (
);
-const RenderSubFields = ({ fields, meta: { touched, error }, ...custom }) => {
- let { t } = useTranslation();
-
- let subTitle = fields.name.split("pinswg_")[1];
-
- const checkValue = (value) => {
- let errors;
-
- if (!value) {
- errors = t("newappeal:is-required-label");
- } else {
- // Check for emojis using a regular expression
- const emojiRegex =
- /[\u{1F600}-\u{1F64F}\u{1F300}-\u{1F5FF}\u{1F680}-\u{1F6FF}\u{1F700}-\u{1F77F}\u{1F780}-\u{1F7FF}\u{1F800}-\u{1F8FF}\u{1F900}-\u{1F9FF}\u{1FA00}-\u{1FA6F}\u{1FA70}-\u{1FAFF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}\u{2300}-\u{23FF}\u{2B50}\u{1F004}-\u{1F0CF}\u{1F0A0}-\u{1F0A5}\u{1F170}-\u{1F251}]/gu;
-
- if (emojiRegex.test(value)) {
- errors = "Emojis are not allowed";
- }
- }
-
- return errors;
- };
- const required = (value) =>
- value ? undefined : t("newappeal:is-required-label");
-
- const email = (value) => {
- let errors;
-
- const emailRegex =
- /(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/gi;
-
- if (!emailRegex.test(value)) {
- errors = t("newappeal:invalid-email-address-errormsg");
- }
- return errors;
- };
-
- //fields.push({});
- fields.length == 0 && fields.push({});
- return (
-
- {fields.map((member, index) => (
-
-
- {subTitle == "owners" ? "Owner" : "Tenant"} #{index + 1}
-
-
-
-
-
-
-
-
-
- ))}
-
-
- {fields.length < custom.maxSubField && (
-
- )}
-
- );
-};
-
export const FieldArrayForm = (props) => {
const {
name,