diff --git a/src/pages/Contact.tsx b/src/pages/Contact.tsx
index 708d7c8..1e85df1 100644
--- a/src/pages/Contact.tsx
+++ b/src/pages/Contact.tsx
@@ -9,6 +9,7 @@ import { sanitizeInput, isValidEmail } from "../utils/security";
import styles from "./Contact.module.css";
const NAME_MAX_LENGTH = 100;
+const EMAIL_MAX_LENGTH = 254;
const SUBJECT_MAX_LENGTH = 200;
const MESSAGE_MAX_LENGTH = 5000;
@@ -53,6 +54,8 @@ export function Contact() {
if (!formData.email.trim()) {
newErrors.email = "Required";
+ } else if (formData.email.length > EMAIL_MAX_LENGTH) {
+ newErrors.email = `Max ${EMAIL_MAX_LENGTH} characters`;
} else if (!isValidEmail(formData.email)) {
newErrors.email = "Invalid email";
}
@@ -165,6 +168,7 @@ export function Contact() {
value={formData.name}
onChange={(e) => handleChange("name", e.target.value)}
error={errors.name}
+ maxLength={NAME_MAX_LENGTH}
/>
handleChange("email", e.target.value)}
error={errors.email}
+ maxLength={EMAIL_MAX_LENGTH}
/>
handleChange("subject", e.target.value)}
error={errors.subject}
+ maxLength={SUBJECT_MAX_LENGTH}
/>