Skip to content

Commit 27496d4

Browse files
authored
Merge pull request #172 from Somnath-Chattaraj/main
Use pincode validator to check for valid pincodes
2 parents 0531009 + 3483c1f commit 27496d4

File tree

4 files changed

+68
-9
lines changed

4 files changed

+68
-9
lines changed

client/package-lock.json

+44
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

client/package.json

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
"chart.js": "^4.4.4",
1313
"flowbite-react": "^0.10.2",
1414
"framer-motion": "^11.11.1",
15+
"indian_address": "^1.0.0",
16+
"indian-pincodes": "^1.1.0",
1517
"lucide-react": "^0.447.0",
1618
"react": "^18.3.1",
1719
"react-animated-cursor": "^2.11.2",

client/src/modules/OPD/Registration.jsx

+14-7
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import { Link } from 'react-router-dom';
33
import axios from 'axios';
44
import Navbar from '../common/Navbar';
55
import '../../styles/OPD.css';
6+
// import pincodes from 'indian-pincodes';
7+
import {pininfo} from 'indian_address';
68

79
function OPDRegistrationForm() {
810
const [formData, setFormData] = useState({
@@ -46,13 +48,17 @@ function OPDRegistrationForm() {
4648
newErrors.address = 'Address must be at least 5 characters long';
4749
}
4850
if (!formData.department) newErrors.department = 'Department is required';
49-
if (!formData.pincode.trim()) {
50-
newErrors.pincode = 'Pincode is required';
51-
} else if (!/^\d{6}$/.test(formData.pincode.trim())) {
52-
newErrors.pincode = 'Pincode must be 6 digits';
53-
}
54-
if (!formData.reason.trim()) newErrors.reason = 'Reason is required';
55-
if (!formData.date) newErrors.date = 'Date is required';
51+
52+
if (!formData.pincode.trim()) {
53+
newErrors.pincode = 'Pincode is required';
54+
} else if (!pininfo[formData.pincode]) {
55+
newErrors.pincode = 'Invalid pincode'; // Handle invalid pincode
56+
} else {
57+
console.log("Pincode details:", pininfo[formData.pincode]);
58+
}
59+
if (!formData.reason.trim()) newErrors.reason = 'Reason is required'; // Validation for reason
60+
if (!formData.date) newErrors.date = 'Date is required'; // Validation for date
61+
5662

5763
if (formData.report.length > 0) {
5864
const allowedTypes = ['application/pdf', 'image/jpeg', 'image/png'];
@@ -68,6 +74,7 @@ function OPDRegistrationForm() {
6874
});
6975
}
7076

77+
7178
return newErrors;
7279
};
7380

client/src/modules/common/AuthForm.jsx

+8-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import Navbar from '../common/Navbar';
44
import { notify } from './notification';
55
import '../../styles/Login.css';
66
import { FaEye, FaEyeSlash } from 'react-icons/fa';
7+
import {pininfo} from 'indian_address';
78

89
const AuthPage = () => {
910
const [isRegistering, setIsRegistering] = useState(false);
@@ -61,8 +62,13 @@ const AuthPage = () => {
6162
if (!formData.phone || !/^\d{10}$/.test(formData.phone))
6263
newErrors.phone = "Phone number must be exactly 10 digits";
6364
if (!formData.address) newErrors.address = "Address is required";
64-
if (!formData.pincode || formData.pincode.length !==6)
65-
newErrors.pincode = "Pincode must be of 6 digits";
65+
if (!formData.pincode.trim()) {
66+
newErrors.pincode = 'Pincode is required';
67+
} else if (!pininfo[formData.pincode]) {
68+
newErrors.pincode = 'Invalid pincode'; // Handle invalid pincode
69+
} else {
70+
console.log("Pincode details:", pininfo[formData.pincode]);
71+
}
6672
}
6773
if (!formData.email) newErrors.email = 'Email is required (frontend)';
6874
if (!formData.password || formData.password.length < 8)

0 commit comments

Comments
 (0)