diff --git a/web/src/auth/SignupPage.js b/web/src/auth/SignupPage.js
index 17186e72..75574628 100644
--- a/web/src/auth/SignupPage.js
+++ b/web/src/auth/SignupPage.js
@@ -50,6 +50,38 @@ const formItemLayout = {
},
};
+const renderFormItem = (signupItem) => {
+ const commonProps = {
+ name: signupItem.name.toLowerCase(),
+ label: signupItem.label || signupItem.name,
+ rules: [
+ {
+ required: signupItem.required,
+ message: i18next.t(`signup:Please input your ${signupItem.label || signupItem.name}!`),
+ },
+ ],
+ };
+
+ if (!signupItem.type || signupItem.type === "Input") {
+ return (
+
+
+
+ );
+ } else if (signupItem.type === "Single Choice" || signupItem.type === "Multiple Choices") {
+ return (
+
+
+ );
+ }
+};
+
export const tailFormItemLayout = {
wrapperCol: {
xs: {
@@ -694,217 +726,13 @@ class SignupPage extends React.Component {
);
} else if (signupItem.name === "Gender") {
- if (!signupItem.type) {
- return (
-
-
-
- );
- }
- if (!signupItem.type || signupItem.type === "Input") {
- return (
-
-
-
- );
- } else if (signupItem.type === "Single Choice" || signupItem.type === "Multiple Choices") {
- return (
-
-
- );
- }
+ return renderFormItem(signupItem);
} else if (signupItem.name === "Bio") {
- if (!signupItem.type || signupItem === "") {
- return (
-
-
-
- );
- }
- if (!signupItem.type || signupItem.type === "Input") {
- return (
-
-
-
- );
- } else if (signupItem.type === "Single Choice" || signupItem.type === "Multiple Choices") {
- return (
-
-
- );
- }
+ return renderFormItem(signupItem);
} else if (signupItem.name === "Tag") {
- if (!signupItem.type) {
- return (
-
-
-
- );
- }
- if (!signupItem.type || signupItem.type === "Input") {
- return (
-
-
-
- );
- } else if (signupItem.type === "Single Choice" || signupItem.type === "Multiple Choices") {
- return (
-
-
- );
- }
+ return renderFormItem(signupItem);
} else if (signupItem.name === "Education") {
- if (!signupItem.type) {
- return (
-
-
-
- );
- }
- if (!signupItem.type || signupItem.type === "Input") {
- return (
-
-
-
- );
- } else if (signupItem.type === "Single Choice" || signupItem.type === "Multiple Choices") {
- return (
-
-
- );
- }
+ return renderFormItem(signupItem);
}
}