@djb25/digit-ui-module-ekyc 1.0.17 → 1.0.18
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/package.json +1 -1
- package/src/components/AssignEkyc.js +0 -17
- package/src/components/AssignEkycModal.js +208 -297
package/package.json
CHANGED
|
@@ -33,23 +33,6 @@ const AssignEkyc = () => {
|
|
|
33
33
|
{ enabled: !!tenantId, keepPreviousData: true }
|
|
34
34
|
);
|
|
35
35
|
|
|
36
|
-
const handleSort = useCallback((args) => {
|
|
37
|
-
if (args?.length === 0) return;
|
|
38
|
-
setSortParams(args);
|
|
39
|
-
}, []);
|
|
40
|
-
|
|
41
|
-
const fetchNextPage = () => {
|
|
42
|
-
setPageOffset((prevState) => prevState + pageSize);
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
const fetchPrevPage = () => {
|
|
46
|
-
setPageOffset((prevState) => prevState - pageSize);
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
const handlePageSizeChange = (e) => {
|
|
50
|
-
setPageSize(Number(e.target.value));
|
|
51
|
-
};
|
|
52
|
-
|
|
53
36
|
const searchDetails = useMemo(
|
|
54
37
|
() => ({
|
|
55
38
|
kno: formState?.searchForm?.kNumber || "",
|
|
@@ -1,225 +1,181 @@
|
|
|
1
|
-
import React, { useMemo, useState } from "react";
|
|
2
|
-
import { Modal, Close } from "@djb25/digit-ui-react-components";
|
|
1
|
+
import React, { useMemo, useState, useEffect } from "react";
|
|
2
|
+
import { Modal, Close, Table } from "@djb25/digit-ui-react-components";
|
|
3
3
|
|
|
4
4
|
const AssignEkycModal = ({ surveyor, closeModal }) => {
|
|
5
5
|
const [selectedKnos, setSelectedKnos] = useState([]);
|
|
6
|
-
|
|
6
|
+
const [assignmentType, setAssignmentType] = useState("KNO");
|
|
7
|
+
const [currentPage, setCurrentPage] = useState(0);
|
|
8
|
+
const [pageSize, setPageSize] = useState(10);
|
|
7
9
|
const [filters, setFilters] = useState({
|
|
10
|
+
kno: "", // search value
|
|
11
|
+
ekycStatus: "",
|
|
12
|
+
zoneName: "",
|
|
13
|
+
assembly: "",
|
|
14
|
+
ward: "",
|
|
15
|
+
mrkey: "",
|
|
8
16
|
pincode: "",
|
|
9
|
-
locality: "",
|
|
10
|
-
status: "",
|
|
11
|
-
route: "",
|
|
12
|
-
search: "",
|
|
13
17
|
});
|
|
14
18
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
route: "R1",
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
kno: "9182736450",
|
|
51
|
-
consumerName: "Priya Mehta",
|
|
52
|
-
locality: "Laxmi Nagar",
|
|
53
|
-
pincode: "110092",
|
|
54
|
-
status: "PENDING",
|
|
55
|
-
route: "R4",
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
kno: "7463829105",
|
|
59
|
-
consumerName: "Vikas Gupta",
|
|
60
|
-
locality: "Karol Bagh",
|
|
61
|
-
pincode: "110005",
|
|
62
|
-
status: "VERIFIED",
|
|
63
|
-
route: "R2",
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
kno: "1122334455",
|
|
67
|
-
consumerName: "Anjali Kapoor",
|
|
68
|
-
locality: "Saket",
|
|
69
|
-
pincode: "110017",
|
|
70
|
-
status: "PENDING",
|
|
71
|
-
route: "R5",
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
kno: "6677889900",
|
|
75
|
-
consumerName: "Rohit Yadav",
|
|
76
|
-
locality: "Uttam Nagar",
|
|
77
|
-
pincode: "110059",
|
|
78
|
-
status: "ASSIGNED",
|
|
79
|
-
route: "R3",
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
kno: "8899776655",
|
|
83
|
-
consumerName: "Deepak Chauhan",
|
|
84
|
-
locality: "Burari",
|
|
85
|
-
pincode: "110084",
|
|
86
|
-
status: "PENDING",
|
|
87
|
-
route: "R6",
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
kno: "5544332211",
|
|
91
|
-
consumerName: "Sneha Arora",
|
|
92
|
-
locality: "Shahdara",
|
|
93
|
-
pincode: "110032",
|
|
94
|
-
status: "VERIFIED",
|
|
95
|
-
route: "R4",
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
kno: "3344556677",
|
|
99
|
-
consumerName: "Karan Malhotra",
|
|
100
|
-
locality: "Mayur Vihar",
|
|
101
|
-
pincode: "110091",
|
|
102
|
-
status: "PENDING",
|
|
103
|
-
route: "R7",
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
kno: "9988776654",
|
|
107
|
-
consumerName: "Pooja Bansal",
|
|
108
|
-
locality: "Patel Nagar",
|
|
109
|
-
pincode: "110008",
|
|
110
|
-
status: "ASSIGNED",
|
|
111
|
-
route: "R5",
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
kno: "7766554433",
|
|
115
|
-
consumerName: "Harsh Jain",
|
|
116
|
-
locality: "Punjabi Bagh",
|
|
117
|
-
pincode: "110026",
|
|
118
|
-
status: "PENDING",
|
|
119
|
-
route: "R8",
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
kno: "2233445566",
|
|
123
|
-
consumerName: "Nitin Sharma",
|
|
124
|
-
locality: "Rajouri Garden",
|
|
125
|
-
pincode: "110027",
|
|
126
|
-
status: "VERIFIED",
|
|
127
|
-
route: "R1",
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
kno: "4433221100",
|
|
131
|
-
consumerName: "Megha Sethi",
|
|
132
|
-
locality: "Ashok Vihar",
|
|
133
|
-
pincode: "110052",
|
|
134
|
-
status: "PENDING",
|
|
135
|
-
route: "R9",
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
kno: "1010101010",
|
|
139
|
-
consumerName: "Aditya Rana",
|
|
140
|
-
locality: "Model Town",
|
|
141
|
-
pincode: "110009",
|
|
142
|
-
status: "ASSIGNED",
|
|
143
|
-
route: "R10",
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
kno: "2020202020",
|
|
147
|
-
consumerName: "Simran Kaur",
|
|
148
|
-
locality: "Tilak Nagar",
|
|
149
|
-
pincode: "110018",
|
|
150
|
-
status: "PENDING",
|
|
151
|
-
route: "R11",
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
kno: "3030303030",
|
|
155
|
-
consumerName: "Mohit Saini",
|
|
156
|
-
locality: "Narela",
|
|
157
|
-
pincode: "110040",
|
|
158
|
-
status: "VERIFIED",
|
|
159
|
-
route: "R6",
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
kno: "4040404040",
|
|
163
|
-
consumerName: "Ritika Sharma",
|
|
164
|
-
locality: "Bawana",
|
|
165
|
-
pincode: "110039",
|
|
166
|
-
status: "PENDING",
|
|
167
|
-
route: "R7",
|
|
168
|
-
},
|
|
19
|
+
const getAssignmentValue = () => {
|
|
20
|
+
switch (assignmentType) {
|
|
21
|
+
case "MRKEY":
|
|
22
|
+
return filters.mrkey;
|
|
23
|
+
|
|
24
|
+
case "ASSEMBLY":
|
|
25
|
+
return filters.assembly;
|
|
26
|
+
|
|
27
|
+
case "WARD":
|
|
28
|
+
return filters.ward;
|
|
29
|
+
|
|
30
|
+
case "KNO":
|
|
31
|
+
default:
|
|
32
|
+
return selectedKnos.join(",");
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const [debouncedFilters, setDebouncedFilters] = useState(filters);
|
|
37
|
+
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
const timer = setTimeout(() => {
|
|
40
|
+
setDebouncedFilters(filters);
|
|
41
|
+
}, 500);
|
|
42
|
+
|
|
43
|
+
return () => clearTimeout(timer);
|
|
44
|
+
}, [filters]);
|
|
45
|
+
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
setCurrentPage(0);
|
|
48
|
+
}, [debouncedFilters]);
|
|
49
|
+
|
|
50
|
+
const { data: applicationData, isLoading } = Digit.Hooks.ekyc.useEkycApplicationList(
|
|
169
51
|
{
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
pincode: "110020",
|
|
174
|
-
status: "ASSIGNED",
|
|
175
|
-
route: "R8",
|
|
176
|
-
},
|
|
177
|
-
];
|
|
52
|
+
tenantId: "dl.djb",
|
|
53
|
+
offset: currentPage * pageSize,
|
|
54
|
+
limit: pageSize,
|
|
178
55
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
56
|
+
...(debouncedFilters.kno && {
|
|
57
|
+
kno: debouncedFilters.kno,
|
|
58
|
+
}),
|
|
182
59
|
|
|
183
|
-
|
|
60
|
+
...(debouncedFilters.ekycStatus && {
|
|
61
|
+
ekycStatus: debouncedFilters.ekycStatus,
|
|
62
|
+
}),
|
|
184
63
|
|
|
185
|
-
|
|
64
|
+
...(debouncedFilters.zoneName && {
|
|
65
|
+
zoneName: debouncedFilters.zoneName,
|
|
66
|
+
}),
|
|
186
67
|
|
|
187
|
-
|
|
68
|
+
...(debouncedFilters.assembly && {
|
|
69
|
+
assembly: debouncedFilters.assembly,
|
|
70
|
+
}),
|
|
188
71
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
72
|
+
...(debouncedFilters.ward && {
|
|
73
|
+
ward: debouncedFilters.ward,
|
|
74
|
+
}),
|
|
192
75
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
76
|
+
...(debouncedFilters.mrkey && {
|
|
77
|
+
mrkey: debouncedFilters.mrkey,
|
|
78
|
+
}),
|
|
196
79
|
|
|
197
|
-
|
|
198
|
-
|
|
80
|
+
...(debouncedFilters.pincode && {
|
|
81
|
+
pincode: debouncedFilters.pincode,
|
|
82
|
+
}),
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
keepPreviousData: true,
|
|
86
|
+
}
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
const assignmentMutation = Digit.Hooks.ekyc.useEkycAssignmentCreate({
|
|
90
|
+
onSuccess: (response) => {
|
|
91
|
+
console.log("Assignment successful", response);
|
|
92
|
+
closeModal();
|
|
93
|
+
},
|
|
94
|
+
onError: (error) => {
|
|
95
|
+
console.error("Assignment failed", error);
|
|
96
|
+
// show toast here
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
const tableData = applicationData?.consumerList || [];
|
|
101
|
+
|
|
102
|
+
const handleAssign = () => {
|
|
103
|
+
assignmentMutation.mutate({
|
|
104
|
+
tenantId: "dl.djb",
|
|
105
|
+
surveyorId: surveyor?.uuid,
|
|
106
|
+
assignmentType: "KNO",
|
|
107
|
+
assignmentValue: getAssignmentValue(),
|
|
108
|
+
});
|
|
199
109
|
};
|
|
200
110
|
|
|
201
111
|
const handleSelectAll = () => {
|
|
202
|
-
const
|
|
112
|
+
const pageKnos = tableData.map((item) => item.kno);
|
|
203
113
|
|
|
204
|
-
const allSelected =
|
|
114
|
+
const allSelected = pageKnos.length > 0 && pageKnos.every((kno) => selectedKnos.includes(kno));
|
|
205
115
|
|
|
206
|
-
|
|
207
|
-
setSelectedKnos((prev) => prev.filter((kno) => !visibleKnos.includes(kno)));
|
|
208
|
-
} else {
|
|
209
|
-
setSelectedKnos((prev) => [...new Set([...prev, ...visibleKnos])]);
|
|
210
|
-
}
|
|
116
|
+
setSelectedKnos((prev) => (allSelected ? prev.filter((kno) => !pageKnos.includes(kno)) : [...new Set([...prev, ...pageKnos])]));
|
|
211
117
|
};
|
|
212
118
|
|
|
213
|
-
const
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
119
|
+
const handleFilterChange = (key, value) => {
|
|
120
|
+
setFilters((prev) => ({
|
|
121
|
+
...prev,
|
|
122
|
+
[key]: value,
|
|
123
|
+
}));
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
const columns = useMemo(
|
|
127
|
+
() => [
|
|
128
|
+
{
|
|
129
|
+
Header: () => (
|
|
130
|
+
<input
|
|
131
|
+
type="checkbox"
|
|
132
|
+
checked={tableData.length > 0 && tableData.every((item) => selectedKnos.includes(item.kno))}
|
|
133
|
+
onChange={handleSelectAll}
|
|
134
|
+
/>
|
|
135
|
+
),
|
|
136
|
+
id: "selection",
|
|
137
|
+
Cell: ({ row }) => {
|
|
138
|
+
const kno = row.original.kno;
|
|
219
139
|
|
|
220
|
-
|
|
140
|
+
return <input type="checkbox" checked={selectedKnos.includes(kno)} onChange={() => handleSelect(kno)} />;
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
Header: "KNO",
|
|
145
|
+
accessor: "kno",
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
Header: "Consumer Name",
|
|
149
|
+
accessor: (row) => `${row.firstName || ""} ${row.middleName || ""} ${row.lastName || ""}`.trim(),
|
|
150
|
+
id: "consumerName",
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
Header: "Zone",
|
|
154
|
+
accessor: "zoneName",
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
Header: "Pincode",
|
|
158
|
+
accessor: "pincode",
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
Header: "Status",
|
|
162
|
+
accessor: "status",
|
|
163
|
+
Cell: ({ value }) => (
|
|
164
|
+
<span className={`status-badge ${value === "ACTIVE" ? "verified" : value === "PENDING" ? "pending" : "assigned"}`}>{value}</span>
|
|
165
|
+
),
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
Header: "eKYC Status",
|
|
169
|
+
accessor: "ekycStatus",
|
|
170
|
+
Cell: ({ value }) => value || "-",
|
|
171
|
+
},
|
|
172
|
+
],
|
|
173
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
174
|
+
[selectedKnos, tableData]
|
|
175
|
+
);
|
|
221
176
|
|
|
222
|
-
|
|
177
|
+
const handleSelect = (kno) => {
|
|
178
|
+
setSelectedKnos((prev) => (prev.includes(kno) ? prev.filter((item) => item !== kno) : [...prev, kno]));
|
|
223
179
|
};
|
|
224
180
|
|
|
225
181
|
return (
|
|
@@ -234,126 +190,81 @@ const AssignEkycModal = ({ surveyor, closeModal }) => {
|
|
|
234
190
|
<div className="assign-knos-modal">
|
|
235
191
|
{/* Filters */}
|
|
236
192
|
<div className="filters-grid">
|
|
237
|
-
<input
|
|
238
|
-
className="form-control"
|
|
239
|
-
placeholder="Search by KNO / Consumer"
|
|
240
|
-
value={filters.search}
|
|
241
|
-
onChange={(e) =>
|
|
242
|
-
setFilters({
|
|
243
|
-
...filters,
|
|
244
|
-
search: e.target.value,
|
|
245
|
-
})
|
|
246
|
-
}
|
|
247
|
-
/>
|
|
193
|
+
<input className="form-control" placeholder="KNO" value={filters.kno} onChange={(e) => handleFilterChange("kno", e.target.value)} />
|
|
248
194
|
|
|
249
195
|
<input
|
|
250
196
|
className="form-control"
|
|
251
197
|
placeholder="Pincode"
|
|
252
198
|
value={filters.pincode}
|
|
253
|
-
onChange={(e) =>
|
|
254
|
-
setFilters({
|
|
255
|
-
...filters,
|
|
256
|
-
pincode: e.target.value,
|
|
257
|
-
})
|
|
258
|
-
}
|
|
199
|
+
onChange={(e) => handleFilterChange("pincode", e.target.value)}
|
|
259
200
|
/>
|
|
260
201
|
|
|
261
202
|
<input
|
|
262
203
|
className="form-control"
|
|
263
|
-
placeholder="
|
|
264
|
-
value={filters.
|
|
265
|
-
onChange={(e) =>
|
|
266
|
-
setFilters({
|
|
267
|
-
...filters,
|
|
268
|
-
locality: e.target.value,
|
|
269
|
-
})
|
|
270
|
-
}
|
|
204
|
+
placeholder="Zone"
|
|
205
|
+
value={filters.zoneName}
|
|
206
|
+
onChange={(e) => handleFilterChange("zoneName", e.target.value)}
|
|
271
207
|
/>
|
|
272
208
|
|
|
209
|
+
<input className="form-control" placeholder="Ward" value={filters.ward} onChange={(e) => handleFilterChange("ward", e.target.value)} />
|
|
210
|
+
|
|
273
211
|
<input
|
|
274
212
|
className="form-control"
|
|
275
|
-
placeholder="
|
|
276
|
-
value={filters.
|
|
277
|
-
onChange={(e) =>
|
|
278
|
-
setFilters({
|
|
279
|
-
...filters,
|
|
280
|
-
route: e.target.value,
|
|
281
|
-
})
|
|
282
|
-
}
|
|
213
|
+
placeholder="Assembly"
|
|
214
|
+
value={filters.assembly}
|
|
215
|
+
onChange={(e) => handleFilterChange("assembly", e.target.value)}
|
|
283
216
|
/>
|
|
284
217
|
|
|
285
|
-
<
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
setFilters({
|
|
290
|
-
...filters,
|
|
291
|
-
status: e.target.value,
|
|
292
|
-
})
|
|
293
|
-
}
|
|
294
|
-
>
|
|
295
|
-
<option value="">All Status</option>
|
|
218
|
+
<input className="form-control" placeholder="MR Key" value={filters.mrkey} onChange={(e) => handleFilterChange("mrkey", e.target.value)} />
|
|
219
|
+
|
|
220
|
+
<select className="form-control" value={filters.ekycStatus} onChange={(e) => handleFilterChange("ekycStatus", e.target.value)}>
|
|
221
|
+
<option value="">All eKYC Status</option>
|
|
296
222
|
<option value="PENDING">Pending</option>
|
|
297
|
-
<option value="
|
|
298
|
-
<option value="
|
|
223
|
+
<option value="APPROVED">Approved</option>
|
|
224
|
+
<option value="REJECTED">Rejected</option>
|
|
299
225
|
</select>
|
|
300
|
-
</div>
|
|
301
226
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
227
|
+
<select className="form-control" value={assignmentType} onChange={(e) => setAssignmentType(e.target.value)}>
|
|
228
|
+
<option value="KNO">KNO</option>
|
|
229
|
+
<option value="MRKEY">MR Key</option>
|
|
230
|
+
<option value="WARD">Ward</option>
|
|
231
|
+
<option value="ASSEMBLY">Assembly</option>
|
|
232
|
+
</select>
|
|
306
233
|
</div>
|
|
307
234
|
|
|
308
235
|
{/* Table */}
|
|
309
|
-
<
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
<
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
<div>{item.pincode}</div>
|
|
342
|
-
|
|
343
|
-
<div>
|
|
344
|
-
<span className={`status-badge ${item.status === "PENDING" ? "pending" : item.status === "VERIFIED" ? "verified" : "assigned"}`}>
|
|
345
|
-
{item.status}
|
|
346
|
-
</span>
|
|
347
|
-
</div>
|
|
348
|
-
|
|
349
|
-
<div>{item.route}</div>
|
|
350
|
-
</div>
|
|
351
|
-
))
|
|
352
|
-
) : (
|
|
353
|
-
<div className="empty-state">No KNO records found</div>
|
|
354
|
-
)}
|
|
355
|
-
</div>
|
|
356
|
-
</div>
|
|
236
|
+
<Table
|
|
237
|
+
tableTitle="eKYC Applications"
|
|
238
|
+
tableClass="ekycTable"
|
|
239
|
+
data={tableData}
|
|
240
|
+
columns={columns}
|
|
241
|
+
isLoading={isLoading}
|
|
242
|
+
totalRecords={applicationData?.totalCount || 0}
|
|
243
|
+
currentPage={currentPage}
|
|
244
|
+
pageSizeLimit={pageSize}
|
|
245
|
+
manualPagination={true}
|
|
246
|
+
isPaginationRequired={true}
|
|
247
|
+
onNextPage={() => {
|
|
248
|
+
if (currentPage < (applicationData?.totalPages || 1) - 1) {
|
|
249
|
+
setCurrentPage((prev) => prev + 1);
|
|
250
|
+
}
|
|
251
|
+
}}
|
|
252
|
+
onPrevPage={() => {
|
|
253
|
+
if (currentPage > 0) {
|
|
254
|
+
setCurrentPage((prev) => prev - 1);
|
|
255
|
+
}
|
|
256
|
+
}}
|
|
257
|
+
onFirstPage={() => {
|
|
258
|
+
setCurrentPage(0);
|
|
259
|
+
}}
|
|
260
|
+
onLastPage={() => {
|
|
261
|
+
setCurrentPage(Math.max((applicationData?.totalPages || 1) - 1, 0));
|
|
262
|
+
}}
|
|
263
|
+
onPageSizeChange={(e) => {
|
|
264
|
+
setPageSize(Number(e.target.value));
|
|
265
|
+
setCurrentPage(0);
|
|
266
|
+
}}
|
|
267
|
+
/>
|
|
357
268
|
</div>
|
|
358
269
|
</Modal>
|
|
359
270
|
);
|