+
Registration Form (TanStack Form)
+
+
{
+ if (!value) return "Full name is required";
+ if (!/^[a-zA-Za-z\s]+$/.test(value)) {
+ return "Please enter letters only";
+ }
+ return undefined;
+ },
+ }}
+ >
+ {(field) => (
+
+
+ field.handleChange(e.target.value)}
+ style={{
+ width: "100%",
+ padding: "8px",
+ boxSizing: "border-box",
+ }}
+ />
+ {field.state.meta.errors.length > 0 && (
+
+ {field.state.meta.errors.join(", ")}
+
+ )}
+
+ )}
+
+
+
{
+ if (!value) return "Age is required";
+ if (isNaN(Number(value))) {
+ return "Please enter numbers only";
+ }
+ if (Number(value) < 18) {
+ return "Age must be at least 18";
+ }
+ return undefined;
+ },
+ }}
+ >
+ {(field) => (
+
+
+ field.handleChange(e.target.value)}
+ style={{
+ width: "100%",
+ padding: "8px",
+ boxSizing: "border-box",
+ }}
+ />
+ {field.state.meta.errors.length > 0 && (
+
+ {field.state.meta.errors.join(", ")}
+
+ )}
+
+ )}
+
+
+
{
+ if (!value) return "Password is required";
+ if (value.length < 8) {
+ return "Password must be at least 8 characters long";
+ }
+ return undefined;
+ },
+ }}
+ >
+ {(field) => (
+
+
+ field.handleChange(e.target.value)}
+ style={{
+ width: "100%",
+ padding: "8px",
+ boxSizing: "border-box",
+ }}
+ />
+ {field.state.meta.errors.length > 0 && (
+
+ {field.state.meta.errors.join(", ")}
+
+ )}
+
+ )}
+
+
+
[state.canSubmit, state.isSubmitting]}
+ >
+ {([canSubmit, isSubmitting]) => (
+
+ )}
+
+
+
+ );
+}