@djb25/digit-ui-module-ekyc 1.0.24 → 1.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +573 -526
- package/dist/index.modern.js.map +1 -1
- package/package.json +3 -1
- package/src/Module.js +0 -2
- package/src/components/AadhaarVerification.js +17 -54
- package/src/components/AssignEkyc.js +10 -67
- package/src/components/AssignEkycModal.js +21 -4
- package/src/components/EKYCCard.js +6 -8
- package/src/components/SearchFormFieldsComponent.js +4 -4
- package/src/components/SurveyorDetailsCard.js +220 -27
- package/src/hook/SupervisorInboxTableConfig.js +2 -53
- package/src/hook/useInboxTableConfig.js +4 -4
- package/src/pages/citizen/Inbox.js +5 -5
- package/src/pages/citizen/index.js +44 -17
- package/src/pages/employee/EKYCForm.js +21 -20
- package/src/pages/employee/Inbox.js +11 -7
- package/src/pages/employee/index.js +42 -13
- package/src/utils/reportDownloader.js +75 -0
- package/src/components/AddressDetails.js +0 -207
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@djb25/digit-ui-module-ekyc",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.25",
|
|
4
4
|
"description": "Digit UI Module for Ekyc",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.modern.js",
|
|
@@ -23,6 +23,8 @@
|
|
|
23
23
|
"microbundle-crl": "^0.13.11",
|
|
24
24
|
"react": "17.0.2",
|
|
25
25
|
"react-dom": "17.0.2",
|
|
26
|
+
"jspdf": "^2.5.1",
|
|
27
|
+
"jspdf-autotable": "^3.8.2",
|
|
26
28
|
"react-i18next": "11.16.2",
|
|
27
29
|
"react-icons": "^5.6.0",
|
|
28
30
|
"react-router-dom": "5.3.0",
|
package/src/Module.js
CHANGED
|
@@ -12,7 +12,6 @@ import CitizenApp from "./pages/citizen";
|
|
|
12
12
|
import PropertyInfo from "./components/PropertyInfo";
|
|
13
13
|
import MeterDetails from "./components/MeterDetails";
|
|
14
14
|
import AadhaarVerification from "./components/AadhaarVerification";
|
|
15
|
-
import AddressDetails from "./components/AddressDetails";
|
|
16
15
|
|
|
17
16
|
export const EkycModule = ({ stateCode, userType, tenants }) => {
|
|
18
17
|
const { path, url } = useRouteMatch();
|
|
@@ -66,7 +65,6 @@ const componentsToRegister = {
|
|
|
66
65
|
EKYC_INBOX_FILTER: (props) => <Filter {...props} />,
|
|
67
66
|
EkycLinks,
|
|
68
67
|
AadhaarVerification,
|
|
69
|
-
AddressDetails,
|
|
70
68
|
PropertyInfo,
|
|
71
69
|
MeterDetails,
|
|
72
70
|
};
|
|
@@ -1,17 +1,6 @@
|
|
|
1
|
-
|
|
2
1
|
import React, { useState, Fragment, useEffect } from "react";
|
|
3
2
|
import { useLocation } from "react-router-dom";
|
|
4
|
-
import {
|
|
5
|
-
CardLabel,
|
|
6
|
-
TextInput,
|
|
7
|
-
Dropdown,
|
|
8
|
-
UploadFile,
|
|
9
|
-
RadioButtons,
|
|
10
|
-
Toast,
|
|
11
|
-
FormStep,
|
|
12
|
-
Loader,
|
|
13
|
-
CheckBox
|
|
14
|
-
} from "@djb25/digit-ui-react-components";
|
|
3
|
+
import { CardLabel, TextInput, Dropdown, UploadFile, RadioButtons, Toast, FormStep, Loader, CheckBox } from "@djb25/digit-ui-react-components";
|
|
15
4
|
const AadhaarVerification = ({ config, onSelect, formData }) => {
|
|
16
5
|
const location = useLocation();
|
|
17
6
|
const flowState = location.state || {};
|
|
@@ -122,30 +111,13 @@ const AadhaarVerification = ({ config, onSelect, formData }) => {
|
|
|
122
111
|
}, [searchData, formData?.connectionDetails, searchKno]);
|
|
123
112
|
|
|
124
113
|
// 🔹 OPTIONS
|
|
125
|
-
const consumerTypeOptions = [
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
];
|
|
130
|
-
|
|
131
|
-
const
|
|
132
|
-
{ name: "Self" },
|
|
133
|
-
{ name: "Tenanted" },
|
|
134
|
-
];
|
|
135
|
-
|
|
136
|
-
const genderOptions = [
|
|
137
|
-
{ name: "Male" },
|
|
138
|
-
{ name: "Female" },
|
|
139
|
-
{ name: "Others" },
|
|
140
|
-
{ name: "Not prefer to say" },
|
|
141
|
-
];
|
|
142
|
-
|
|
143
|
-
const identityTypeOptions = [
|
|
144
|
-
{ name: "Aadhaar Card" },
|
|
145
|
-
{ name: "Driving License" },
|
|
146
|
-
{ name: "Passport" },
|
|
147
|
-
{ name: "Voter ID" },
|
|
148
|
-
];
|
|
114
|
+
const consumerTypeOptions = [{ name: "Individual" }, { name: "Govt" }, { name: "Company_Society_Org" }];
|
|
115
|
+
|
|
116
|
+
const occupantOptions = [{ name: "Self" }, { name: "Tenanted" }];
|
|
117
|
+
|
|
118
|
+
const genderOptions = [{ name: "Male" }, { name: "Female" }, { name: "Others" }, { name: "Not prefer to say" }];
|
|
119
|
+
|
|
120
|
+
const identityTypeOptions = [{ name: "Aadhaar Card" }, { name: "Driving License" }, { name: "Passport" }, { name: "Voter ID" }];
|
|
149
121
|
|
|
150
122
|
const yesNo = [{ name: "Yes" }, { name: "No" }];
|
|
151
123
|
|
|
@@ -176,8 +148,7 @@ const AadhaarVerification = ({ config, onSelect, formData }) => {
|
|
|
176
148
|
if (!mobile) return false;
|
|
177
149
|
if (!residents || Number(residents) <= 0) return false;
|
|
178
150
|
|
|
179
|
-
if (occupantType?.name === "Tenanted" && !documentId && !ownerMobile)
|
|
180
|
-
return false;
|
|
151
|
+
if (occupantType?.name === "Tenanted" && !documentId && !ownerMobile) return false;
|
|
181
152
|
|
|
182
153
|
return consent; // consent must be true
|
|
183
154
|
};
|
|
@@ -230,7 +201,7 @@ const AadhaarVerification = ({ config, onSelect, formData }) => {
|
|
|
230
201
|
await updateMutation.mutateAsync({
|
|
231
202
|
RequestInfo: {},
|
|
232
203
|
updateType: "CONSUMER",
|
|
233
|
-
...data
|
|
204
|
+
...data,
|
|
234
205
|
});
|
|
235
206
|
setToast({ type: "success", message: "Data updated successfully!" });
|
|
236
207
|
onSelect(config.key, data);
|
|
@@ -246,7 +217,6 @@ const AadhaarVerification = ({ config, onSelect, formData }) => {
|
|
|
246
217
|
return (
|
|
247
218
|
<Fragment>
|
|
248
219
|
<FormStep onSelect={onStepSelect} config={config} isDisabled={!isValid()}>
|
|
249
|
-
|
|
250
220
|
<div>
|
|
251
221
|
<CardLabel>Consumer Type *</CardLabel>
|
|
252
222
|
<Dropdown option={consumerTypeOptions} selected={consumerType} select={setConsumerType} />
|
|
@@ -306,8 +276,7 @@ const AadhaarVerification = ({ config, onSelect, formData }) => {
|
|
|
306
276
|
<CardLabel>No. of Residents *</CardLabel>
|
|
307
277
|
<TextInput value={residents} onChange={(e) => setResidents(e.target.value)} />
|
|
308
278
|
</div>
|
|
309
|
-
<div>
|
|
310
|
-
{console.log("identityType",identityType)}
|
|
279
|
+
<div>
|
|
311
280
|
<CardLabel>Type of Identity *</CardLabel>
|
|
312
281
|
<Dropdown option={identityTypeOptions} selected={identityType} select={setIdentityType} />
|
|
313
282
|
</div>
|
|
@@ -322,10 +291,10 @@ const AadhaarVerification = ({ config, onSelect, formData }) => {
|
|
|
322
291
|
|
|
323
292
|
<div>
|
|
324
293
|
<CardLabel>Informant Is Consumer</CardLabel>
|
|
325
|
-
<CheckBox
|
|
326
|
-
label="Yes, the informant is the consumer"
|
|
327
|
-
checked={informantIsConsumer}
|
|
328
|
-
onChange={(e) => setInformantIsConsumer(e.target.checked)}
|
|
294
|
+
<CheckBox
|
|
295
|
+
label="Yes, the informant is the consumer"
|
|
296
|
+
checked={informantIsConsumer}
|
|
297
|
+
onChange={(e) => setInformantIsConsumer(e.target.checked)}
|
|
329
298
|
/>
|
|
330
299
|
</div>
|
|
331
300
|
|
|
@@ -401,15 +370,9 @@ const AadhaarVerification = ({ config, onSelect, formData }) => {
|
|
|
401
370
|
</Fragment>
|
|
402
371
|
)}
|
|
403
372
|
</FormStep>
|
|
404
|
-
{toast && (
|
|
405
|
-
<Toast
|
|
406
|
-
error={toast.type === "error"}
|
|
407
|
-
label={toast.message}
|
|
408
|
-
onClose={() => setToast(null)}
|
|
409
|
-
/>
|
|
410
|
-
)}
|
|
373
|
+
{toast && <Toast error={toast.type === "error"} label={toast.message} onClose={() => setToast(null)} />}
|
|
411
374
|
</Fragment>
|
|
412
375
|
);
|
|
413
376
|
};
|
|
414
377
|
|
|
415
|
-
export default AadhaarVerification;
|
|
378
|
+
export default AadhaarVerification;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import React, { useMemo, useCallback, useReducer
|
|
2
|
-
import { useLocation } from "react-router-dom";
|
|
1
|
+
import React, { useMemo, useCallback, useReducer } from "react";
|
|
3
2
|
import { InboxComposer } from "@djb25/digit-ui-react-components";
|
|
4
3
|
import SupervisorInboxTableConfig from "../hook/SupervisorInboxTableConfig";
|
|
5
4
|
import SearchFormFieldsComponents from "./SearchFormFieldsComponent";
|
|
5
|
+
import { formInitValue, formReducer } from "../../../vendor/src/config/tableConfig";
|
|
6
6
|
|
|
7
7
|
// Mock data removed in favor of API integration
|
|
8
8
|
|
|
@@ -11,20 +11,8 @@ const AssignEkyc = () => {
|
|
|
11
11
|
if (!tenantId || tenantId === "dl") {
|
|
12
12
|
tenantId = "dl.djb"; // Force tenantId to dl.djb for EKYC APIs in citizen portal
|
|
13
13
|
}
|
|
14
|
-
const location = useLocation();
|
|
15
|
-
const formInitValue = {
|
|
16
|
-
filterForm: {},
|
|
17
|
-
searchForm: {},
|
|
18
|
-
tableForm: {
|
|
19
|
-
limit: 10,
|
|
20
|
-
offset: 0,
|
|
21
|
-
sortBy: "createdTime",
|
|
22
|
-
sortOrder: "DESC",
|
|
23
|
-
},
|
|
24
|
-
};
|
|
25
14
|
|
|
26
15
|
const [formState, dispatch] = useReducer(formReducer, formInitValue);
|
|
27
|
-
const userDetails = Digit.SessionStorage.get("User");
|
|
28
16
|
|
|
29
17
|
let paginationParms = {
|
|
30
18
|
limit: formState?.tableForm?.limit || 10,
|
|
@@ -45,11 +33,7 @@ const AssignEkyc = () => {
|
|
|
45
33
|
filters.mobileNumber = mobileNumber;
|
|
46
34
|
}
|
|
47
35
|
|
|
48
|
-
const { data: dashboardData, isLoading } = Digit.Hooks.fsm.useSurveyorSearch(
|
|
49
|
-
tenantId,
|
|
50
|
-
filters,
|
|
51
|
-
{ enabled: !!tenantId, keepPreviousData: true }
|
|
52
|
-
);
|
|
36
|
+
const { data: dashboardData, isLoading } = Digit.Hooks.fsm.useSurveyorSearch(tenantId, filters, { enabled: !!tenantId, keepPreviousData: true });
|
|
53
37
|
|
|
54
38
|
const { isLoading: isDataSearchLoading, data } = Digit.Hooks.ekyc.useEkycAssignmentProgress({
|
|
55
39
|
enabled: !!tenantId,
|
|
@@ -63,38 +47,23 @@ const AssignEkyc = () => {
|
|
|
63
47
|
const filteredData = useMemo(() => {
|
|
64
48
|
return (sourceData || []).map((item) => {
|
|
65
49
|
const owner = item?.owner || {};
|
|
66
|
-
|
|
67
50
|
const roleCodes = owner?.roles?.map((role) => role.code)?.join(", ") || "";
|
|
68
51
|
|
|
69
52
|
return {
|
|
70
53
|
...item,
|
|
71
|
-
|
|
72
54
|
id: item?.id || "",
|
|
73
|
-
|
|
74
55
|
surveyorName: item?.name || owner?.name || "",
|
|
75
|
-
|
|
76
56
|
mobileNo: item?.mobileNo || owner?.mobileNumber || "",
|
|
77
|
-
|
|
78
57
|
email: owner?.emailId || "",
|
|
79
|
-
|
|
80
58
|
vendorId: item?.vendorId || "",
|
|
81
|
-
|
|
82
59
|
tenantId: item?.tenantId || "",
|
|
83
|
-
|
|
84
60
|
supervisorId: item?.supervisorId || "",
|
|
85
|
-
|
|
86
61
|
status: item?.status || "",
|
|
87
|
-
|
|
88
62
|
roleCodes,
|
|
89
|
-
|
|
90
63
|
userName: owner?.userName || "",
|
|
91
|
-
|
|
92
64
|
gender: owner?.gender || "",
|
|
93
|
-
|
|
94
65
|
serviceType: item?.additionalDetails?.serviceType || "",
|
|
95
|
-
|
|
96
66
|
createdTime: item?.auditDetails?.createdTime || 0,
|
|
97
|
-
|
|
98
67
|
lastModifiedTime: item?.auditDetails?.lastModifiedTime || 0,
|
|
99
68
|
};
|
|
100
69
|
});
|
|
@@ -102,9 +71,8 @@ const AssignEkyc = () => {
|
|
|
102
71
|
|
|
103
72
|
const totalRecords = dashboardData?.dashboardInfo?.totalRecords || dashboardData?.totalCount || 0;
|
|
104
73
|
|
|
105
|
-
const checkPathName = location.pathname.includes("ekyc/inbox");
|
|
106
74
|
const PropsForInboxLinks = {
|
|
107
|
-
headerText:
|
|
75
|
+
headerText: "EKYC_MODULE",
|
|
108
76
|
};
|
|
109
77
|
|
|
110
78
|
const SearchFormFields = useCallback(
|
|
@@ -123,8 +91,8 @@ const AssignEkyc = () => {
|
|
|
123
91
|
|
|
124
92
|
const onSearchFormSubmit = (data) => {
|
|
125
93
|
data.hasOwnProperty("") && delete data?.[""];
|
|
126
|
-
dispatch({ action: "mutateTableForm", data: { ...tableOrderFormDefaultValues }
|
|
127
|
-
dispatch({ action: "mutateSearchForm", data
|
|
94
|
+
dispatch({ action: "mutateTableForm", data: { ...tableOrderFormDefaultValues } });
|
|
95
|
+
dispatch({ action: "mutateSearchForm", data });
|
|
128
96
|
};
|
|
129
97
|
|
|
130
98
|
const searchFormDefaultValues = {
|
|
@@ -156,34 +124,12 @@ const AssignEkyc = () => {
|
|
|
156
124
|
|
|
157
125
|
const propsForFilterForm = {
|
|
158
126
|
FilterFormFields,
|
|
159
|
-
onFilterFormSubmit: () => {},
|
|
127
|
+
onFilterFormSubmit: () => { },
|
|
160
128
|
filterFormDefaultValues: "",
|
|
161
129
|
resetFilterFormDefaultValues: "",
|
|
162
|
-
onFilterFormReset: () => {},
|
|
130
|
+
onFilterFormReset: () => { },
|
|
163
131
|
};
|
|
164
132
|
|
|
165
|
-
function formReducer(state, payload) {
|
|
166
|
-
const storageKey = payload.checkPathName ? "EKYC.INBOX" : "EKYC.SW.INBOX";
|
|
167
|
-
|
|
168
|
-
// ✅ safety for SLA
|
|
169
|
-
switch (payload.action) {
|
|
170
|
-
case "mutateSearchForm":
|
|
171
|
-
Digit.SessionStorage.set(storageKey, { ...state, searchForm: payload.data });
|
|
172
|
-
return { ...state, searchForm: payload.data };
|
|
173
|
-
|
|
174
|
-
case "mutateFilterForm":
|
|
175
|
-
Digit.SessionStorage.set(storageKey, { ...state, filterForm: payload.data });
|
|
176
|
-
return { ...state, filterForm: payload.data };
|
|
177
|
-
|
|
178
|
-
case "mutateTableForm":
|
|
179
|
-
Digit.SessionStorage.set(storageKey, { ...state, tableForm: payload.data });
|
|
180
|
-
return { ...state, tableForm: payload.data };
|
|
181
|
-
|
|
182
|
-
default:
|
|
183
|
-
return state; // ✅ IMPORTANT
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
133
|
const onPageSizeChange = (e) => {
|
|
188
134
|
const newLimit = Number(e.target.value);
|
|
189
135
|
|
|
@@ -194,7 +140,6 @@ const AssignEkyc = () => {
|
|
|
194
140
|
limit: newLimit,
|
|
195
141
|
offset: 0, // reset page
|
|
196
142
|
},
|
|
197
|
-
checkPathName,
|
|
198
143
|
});
|
|
199
144
|
};
|
|
200
145
|
|
|
@@ -212,7 +157,6 @@ const AssignEkyc = () => {
|
|
|
212
157
|
sortBy: id,
|
|
213
158
|
sortOrder: desc ? "DESC" : "ASC",
|
|
214
159
|
},
|
|
215
|
-
checkPathName,
|
|
216
160
|
});
|
|
217
161
|
}
|
|
218
162
|
}
|
|
@@ -227,7 +171,6 @@ const AssignEkyc = () => {
|
|
|
227
171
|
dispatch,
|
|
228
172
|
onSortingByData,
|
|
229
173
|
tenantId,
|
|
230
|
-
checkPathName,
|
|
231
174
|
inboxStyles: { overflowX: "scroll", overflowY: "hidden" },
|
|
232
175
|
tableStyle: { width: "70%" },
|
|
233
176
|
},
|
|
@@ -274,9 +217,9 @@ const AssignEkyc = () => {
|
|
|
274
217
|
<InboxComposer
|
|
275
218
|
{...{
|
|
276
219
|
isInboxLoading,
|
|
277
|
-
PropsForInboxLinks,
|
|
220
|
+
// PropsForInboxLinks,
|
|
278
221
|
...propsForSearchForm,
|
|
279
|
-
...propsForFilterForm,
|
|
222
|
+
// ...propsForFilterForm,
|
|
280
223
|
// ...propsForMobileSortForm,
|
|
281
224
|
propsForInboxTable,
|
|
282
225
|
// propsForInboxMobileCards,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useMemo, useState, useEffect } from "react";
|
|
2
2
|
import { Modal, Close, Table, Toast } from "@djb25/digit-ui-react-components";
|
|
3
3
|
|
|
4
|
-
const AssignEkycModal = ({ surveyor, closeModal }) => {
|
|
4
|
+
const AssignEkycModal = ({ surveyor, closeModal, refetchDashboard }) => {
|
|
5
5
|
const [selectedKnos, setSelectedKnos] = useState([]);
|
|
6
6
|
const [isBulkSelection, setIsBulkSelection] = useState(false);
|
|
7
7
|
const [currentPage, setCurrentPage] = useState(0);
|
|
@@ -95,7 +95,8 @@ const AssignEkycModal = ({ surveyor, closeModal }) => {
|
|
|
95
95
|
setShowToast(true);
|
|
96
96
|
|
|
97
97
|
// optional delay so user can see the success toast
|
|
98
|
-
setTimeout(() => {
|
|
98
|
+
setTimeout(async () => {
|
|
99
|
+
await refetchDashboard();
|
|
99
100
|
closeModal();
|
|
100
101
|
}, 1000);
|
|
101
102
|
},
|
|
@@ -255,7 +256,23 @@ const AssignEkycModal = ({ surveyor, closeModal }) => {
|
|
|
255
256
|
onChange={(e) => handleFilterChange("zoneName", e.target.value)}
|
|
256
257
|
/>
|
|
257
258
|
|
|
258
|
-
|
|
259
|
+
{/* <SelectEkycZones
|
|
260
|
+
t={t}
|
|
261
|
+
isMultiSelect={false}
|
|
262
|
+
config={{
|
|
263
|
+
key: "zoneCode",
|
|
264
|
+
}}
|
|
265
|
+
formData={{
|
|
266
|
+
zoneIds: filters.zoneCode ? [{ code: filters.zoneCode, name: filters.zoneName }] : [],
|
|
267
|
+
}}
|
|
268
|
+
onSelect={(key, value) => {
|
|
269
|
+
console.log(value);
|
|
270
|
+
handleFilterChange("zoneName", value);
|
|
271
|
+
}}
|
|
272
|
+
placeHolder="Zones"
|
|
273
|
+
/> */}
|
|
274
|
+
|
|
275
|
+
{/* <input className="form-control" placeholder="Ward" value={filters.ward} onChange={(e) => handleFilterChange("ward", e.target.value)} />
|
|
259
276
|
|
|
260
277
|
<input
|
|
261
278
|
className="form-control"
|
|
@@ -271,7 +288,7 @@ const AssignEkycModal = ({ surveyor, closeModal }) => {
|
|
|
271
288
|
<option value="PENDING">Pending</option>
|
|
272
289
|
<option value="APPROVED">Approved</option>
|
|
273
290
|
<option value="REJECTED">Rejected</option>
|
|
274
|
-
</select>
|
|
291
|
+
</select> */}
|
|
275
292
|
</div>
|
|
276
293
|
|
|
277
294
|
{/* Table */}
|
|
@@ -17,9 +17,13 @@ const EKYCCard = () => {
|
|
|
17
17
|
],
|
|
18
18
|
links: [
|
|
19
19
|
{
|
|
20
|
-
label: t("
|
|
21
|
-
link: `/digit-ui/employee/ekyc/dashboard`,
|
|
20
|
+
label: t("CEO_M.F_DOR_FINANCE_VIEW"),
|
|
21
|
+
link: `/digit-ui/employee/ekyc/ceo-dashboard`,
|
|
22
22
|
},
|
|
23
|
+
// {
|
|
24
|
+
// label: t("EKYC_DASHBOARD"),
|
|
25
|
+
// link: `/digit-ui/employee/ekyc/dashboard`,
|
|
26
|
+
// },
|
|
23
27
|
{
|
|
24
28
|
label: t("EKYC_INBOX"),
|
|
25
29
|
link: `/digit-ui/employee/ekyc/inbox`,
|
|
@@ -32,16 +36,10 @@ const EKYCCard = () => {
|
|
|
32
36
|
// label: t("EKYC_UPDATE_KYC"),
|
|
33
37
|
// link: `/digit-ui/employee/ekyc/update-kyc`
|
|
34
38
|
// },
|
|
35
|
-
{
|
|
36
|
-
label: t("CEO_M.F_DOR_FINANCE_VIEW"),
|
|
37
|
-
link: `/digit-ui/employee/ekyc/ceo-dashboard`,
|
|
38
|
-
},
|
|
39
|
-
|
|
40
39
|
// {
|
|
41
40
|
// label: t("EKYC_MAPPING"),
|
|
42
41
|
// link: `/digit-ui/employee/ekyc/mapping`,
|
|
43
42
|
// },
|
|
44
|
-
|
|
45
43
|
{
|
|
46
44
|
label: t("EKYC_ASSIGN"),
|
|
47
45
|
link: `/digit-ui/employee/ekyc/assign`,
|
|
@@ -12,24 +12,24 @@ const SearchFormFieldsComponents = ({ searchFormState, controlSearchForm }) => {
|
|
|
12
12
|
{/* MOBILE NUMBER */}
|
|
13
13
|
<span className="mobile-input">
|
|
14
14
|
<Label className="flex-roww flex-gap-2">
|
|
15
|
-
{t("
|
|
15
|
+
{t("EKYC_K.NUMBER") || "K Number"}
|
|
16
16
|
<CustomTooltip message={t("EKYC_MOBILE_NUMBER_MESSAGE")} />
|
|
17
17
|
</Label>
|
|
18
18
|
|
|
19
19
|
<Controller
|
|
20
|
-
name="
|
|
20
|
+
name="kNumber"
|
|
21
21
|
control={controlSearchForm}
|
|
22
22
|
defaultValue=""
|
|
23
23
|
rules={{
|
|
24
24
|
pattern: {
|
|
25
25
|
value: /^[0-9]{10}$/,
|
|
26
|
-
message: t("
|
|
26
|
+
message: t("ERR_INVALID_KNO"),
|
|
27
27
|
},
|
|
28
28
|
}}
|
|
29
29
|
render={({ onChange, value }) => <TextInput value={value || ""} onChange={(e) => onChange(e.target.value)} />}
|
|
30
30
|
/>
|
|
31
31
|
|
|
32
|
-
{errors?.
|
|
32
|
+
{errors?.kNumber && <CardLabelError>{errors.kNumber.message}</CardLabelError>}
|
|
33
33
|
</span>
|
|
34
34
|
|
|
35
35
|
{/* K NAME */}
|