diff --git a/src/App.js b/src/App.js
deleted file mode 100644
index 05e5df7..0000000
--- a/src/App.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function App() {
- return
form validation homework
;
-}
-
-export default App;
diff --git a/src/App.jsx b/src/App.jsx
new file mode 100644
index 0000000..10eaf3f
--- /dev/null
+++ b/src/App.jsx
@@ -0,0 +1,12 @@
+import './index.css'
+import ContactForm from './ContactForm';
+function App() {
+ return
+
form validation homework
+
+ ;
+}
+
+export default App;
+
+
diff --git a/src/ContactForm.jsx b/src/ContactForm.jsx
new file mode 100644
index 0000000..8a67ad9
--- /dev/null
+++ b/src/ContactForm.jsx
@@ -0,0 +1,95 @@
+import TextField from '@mui/material/TextField';
+import Button from '@mui/material/Button';
+import * as Yup from 'yup';
+import { Formik, Form } from 'formik';
+
+function ContactForm() {
+ const validationSchema = Yup.object().shape({
+ name: Yup.string()
+ .min(4, ' name is too short')
+ .max(16, 'name is too long')
+ .required('name is required'),
+ email: Yup.string()
+ .email('invalid email')
+ .required('email is required'),
+ message: Yup.string()
+ .min(30, ' the message is too short')
+ .max(300, 'the message too long')
+ .required('message is required'),
+ phone: Yup.string()
+ .matches(
+ /^(((?:\+|00)964)|(0)*)7\d{9}$/gm,
+ "phone number is invalid"
+ )
+ .required('number is required'),
+ })
+ return (
+
+ console.log(values)}
+ validationSchema={validationSchema}
+ >
+ {({ values, errors, touched, handleChange }) => (
+
+ )}
+
+
+
+
+ )
+
+}
+
+export default ContactForm;
\ No newline at end of file