refactor: Update source code with the NPCI and CBS API
This commit is contained in:
@@ -14,43 +14,13 @@ interface accountData {
|
||||
custname: string;
|
||||
}
|
||||
|
||||
const MockBeneficiaryData =
|
||||
[
|
||||
{
|
||||
'stBankName': 'Kangra Central Co-operative Bank',
|
||||
'stBenAccountNo': '50077736845',
|
||||
'stBenName': 'RAJAT MAHARANA',
|
||||
},
|
||||
{
|
||||
'stBankName': 'Kangra Central Co-operative Bank',
|
||||
'stBenAccountNo': '50077742351',
|
||||
'stBenName': 'RAJAT MAHARANA',
|
||||
},
|
||||
{
|
||||
'stBankName': 'Kangra Central Co-operative Bank',
|
||||
'stBenAccountNo': '20002076570',
|
||||
'stBenName': 'Mr. PUSHKAR . SHARMA',
|
||||
},
|
||||
{
|
||||
'stBankName': 'State Bank of India',
|
||||
'stBenAccountNo': '50077742361',
|
||||
'stIFSC': 'SBIN0004567',
|
||||
'stBenName': 'Sachin Sharma',
|
||||
},
|
||||
{
|
||||
'stBankName': 'ICICI',
|
||||
'stBenAccountNo': '90088842361',
|
||||
'stIFSC': 'ICICI0004567',
|
||||
'stBenName': 'Eshika Paul',
|
||||
},
|
||||
]
|
||||
|
||||
export default function SendToBeneficiaryOwn() {
|
||||
const router = useRouter();
|
||||
const [bankType, setBankType] = useState("own");
|
||||
const [authorized, setAuthorized] = useState<boolean | null>(null);
|
||||
const [accountData, setAccountData] = useState<accountData[]>([]);
|
||||
const [selectedAccNo, setSelectedAccNo] = useState<string | null>(null);
|
||||
const [beneficiaryData, setBeneficiaryData] = useState<any[]>([]);
|
||||
const [beneficiaryAcc, setBeneficiaryAcc] = useState<string | null>(null);
|
||||
const [beneficiaryName, setBeneficiaryName] = useState<string | null>(null);
|
||||
const [beneficiaryType, setBeneficiaryType] = useState<string | null>(null);
|
||||
@@ -77,25 +47,35 @@ export default function SendToBeneficiaryOwn() {
|
||||
label: `${acc.stAccountNo} (${acc.stAccountType})`,
|
||||
}));
|
||||
|
||||
const benAccountOption = MockBeneficiaryData.filter((ben_acc) =>
|
||||
bankType === 'own' ? ben_acc.stBankName === 'Kangra Central Co-operative Bank' : true)
|
||||
.map((ben_acc) => ({
|
||||
value: ben_acc.stBenAccountNo,
|
||||
label: `${ben_acc.stBenAccountNo}-${ben_acc.stBenName}`,
|
||||
|
||||
}));
|
||||
const handleBeneficiary = (benAcc: string | null) => {
|
||||
if (benAcc) {
|
||||
setBeneficiaryAcc(benAcc);
|
||||
const selected = MockBeneficiaryData.find((item) => item.stBenAccountNo === benAcc);
|
||||
if (selected)
|
||||
setBeneficiaryName(selected.stBenName);
|
||||
const FetchBeneficiaryDetails = async () => {
|
||||
try {
|
||||
const token = localStorage.getItem("access_token");
|
||||
const response = await fetch("/api/beneficiary", {
|
||||
method: "GET",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
Authorization: `Bearer ${token}`,
|
||||
},
|
||||
});
|
||||
const data = await response.json();
|
||||
console.log(data);
|
||||
if (response.ok && Array.isArray(data)) {
|
||||
setBeneficiaryData(data);
|
||||
} else {
|
||||
notifications.show({
|
||||
title: "Error",
|
||||
message: "Unable to fetch beneficiary list",
|
||||
color: "red",
|
||||
});
|
||||
}
|
||||
} catch {
|
||||
notifications.show({
|
||||
title: "Error",
|
||||
message: "Something went wrong while fetching beneficiaries",
|
||||
color: "red",
|
||||
});
|
||||
}
|
||||
else {
|
||||
setBeneficiaryAcc('');
|
||||
setBeneficiaryName('');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const FetchAccountDetails = async () => {
|
||||
try {
|
||||
@@ -136,9 +116,37 @@ export default function SendToBeneficiaryOwn() {
|
||||
useEffect(() => {
|
||||
if (authorized) {
|
||||
FetchAccountDetails();
|
||||
FetchBeneficiaryDetails();
|
||||
}
|
||||
}, [authorized]);
|
||||
|
||||
const benAccountOption = beneficiaryData
|
||||
.filter((ben) =>
|
||||
bankType === "own" ? ben.ifscCode?.startsWith("KACE") : true
|
||||
)
|
||||
.map((ben) => ({
|
||||
value: ben.accountNo,
|
||||
label: `${ben.accountNo} - ${ben.name}`,
|
||||
}));
|
||||
|
||||
const handleBeneficiary = (benAcc: string | null) => {
|
||||
if (benAcc) {
|
||||
setBeneficiaryAcc(benAcc);
|
||||
const selected = beneficiaryData.find(
|
||||
(item) => item.accountNo === benAcc
|
||||
);
|
||||
if (selected) {
|
||||
setBeneficiaryName(selected.name);
|
||||
setBeneficiaryType(selected.accountType);
|
||||
}
|
||||
|
||||
} else {
|
||||
setBeneficiaryAcc(null);
|
||||
setBeneficiaryName(null);
|
||||
setBeneficiaryType(null);
|
||||
}
|
||||
};
|
||||
|
||||
async function handleProceed() {
|
||||
if (!selectedAccNo || !beneficiaryAcc! || !beneficiaryName || !beneficiaryType || !amount || !remarks) {
|
||||
notifications.show({
|
||||
@@ -253,7 +261,6 @@ export default function SendToBeneficiaryOwn() {
|
||||
};
|
||||
|
||||
if (!authorized) return null;
|
||||
|
||||
return (
|
||||
<>
|
||||
<Modal
|
||||
@@ -351,7 +358,6 @@ export default function SendToBeneficiaryOwn() {
|
||||
withAsterisk
|
||||
readOnly={showOtpField}
|
||||
/>
|
||||
|
||||
<TextInput
|
||||
label="Amount"
|
||||
type="number"
|
||||
|
||||
@@ -43,11 +43,11 @@ const MockBeneficiaryData =
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
export default function SendToBeneficiaryOthers() {
|
||||
const router = useRouter();
|
||||
const [authorized, setAuthorized] = useState<boolean | null>(null);
|
||||
const [accountData, setAccountData] = useState<accountData[]>([]);
|
||||
const [beneficiaryData, setBeneficiaryData] = useState<any[]>([]);
|
||||
const [selectedAccNo, setSelectedAccNo] = useState<string | null>(null);
|
||||
const [beneficiaryAcc, setBeneficiaryAcc] = useState<string | null>(null);
|
||||
const [beneficiaryName, setBeneficiaryName] = useState<string | null>(null);
|
||||
@@ -70,31 +70,63 @@ export default function SendToBeneficiaryOthers() {
|
||||
setGenerateOtp(value);
|
||||
return value;
|
||||
}
|
||||
|
||||
const FetchBeneficiaryDetails = async () => {
|
||||
try {
|
||||
const token = localStorage.getItem("access_token");
|
||||
const response = await fetch("/api/beneficiary", {
|
||||
method: "GET",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
Authorization: `Bearer ${token}`,
|
||||
},
|
||||
});
|
||||
const data = await response.json();
|
||||
console.log(data);
|
||||
if (response.ok && Array.isArray(data)) {
|
||||
setBeneficiaryData(data);
|
||||
} else {
|
||||
notifications.show({
|
||||
title: "Error",
|
||||
message: "Unable to fetch beneficiary list",
|
||||
color: "red",
|
||||
});
|
||||
}
|
||||
} catch {
|
||||
notifications.show({
|
||||
title: "Error",
|
||||
message: "Something went wrong while fetching beneficiaries",
|
||||
color: "red",
|
||||
});
|
||||
}
|
||||
};
|
||||
const selectedAccount = accountData.find((acc) => acc.stAccountNo === selectedAccNo);
|
||||
const accountOptions = accountData.map((acc) => ({
|
||||
value: acc.stAccountNo,
|
||||
label: `${acc.stAccountNo} (${acc.stAccountType})`,
|
||||
}));
|
||||
|
||||
const benAccountOption = MockBeneficiaryData.filter((ben_acc) =>
|
||||
ben_acc.stBankName !== 'Kangra Central Co-operative Bank')
|
||||
.map((ben_acc) => ({
|
||||
value: ben_acc.stBenAccountNo,
|
||||
label: ben_acc.stBenAccountNo,
|
||||
const benAccountOption = beneficiaryData.
|
||||
filter((ben) => !ben.ifscCode?.startsWith("KACE"))
|
||||
.map((ben) => ({
|
||||
value: ben.accountNo,
|
||||
label: `${ben.accountNo} - ${ben.name}`,
|
||||
|
||||
}));
|
||||
const handleBeneficiary = (benAcc: string | null) => {
|
||||
if (benAcc) {
|
||||
setBeneficiaryAcc(benAcc);
|
||||
const selected = MockBeneficiaryData.find((item) => item.stBenAccountNo === benAcc);
|
||||
if (selected)
|
||||
setBeneficiaryName(selected.stBenName);
|
||||
setBeneficiaryIFSC(selected?.stIFSC ?? '');
|
||||
}
|
||||
else {
|
||||
setBeneficiaryAcc('');
|
||||
setBeneficiaryName('');
|
||||
setBeneficiaryIFSC('');
|
||||
|
||||
const handleBeneficiary = (ben: string | null) => {
|
||||
if (ben) {
|
||||
setBeneficiaryAcc(ben);
|
||||
const selected = beneficiaryData.find((item) => item.accountNo === ben && !item.ifscCode?.startsWith("KACE"));
|
||||
if (selected) {
|
||||
setBeneficiaryName(selected.name);
|
||||
setBeneficiaryIFSC(selected?.ifscCode ?? '');
|
||||
}
|
||||
else {
|
||||
setBeneficiaryAcc('');
|
||||
setBeneficiaryName('');
|
||||
setBeneficiaryIFSC('');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,6 +169,7 @@ export default function SendToBeneficiaryOthers() {
|
||||
useEffect(() => {
|
||||
if (authorized) {
|
||||
FetchAccountDetails();
|
||||
FetchBeneficiaryDetails();
|
||||
}
|
||||
}, [authorized]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user