rez-table-listing-mui 1.2.17 → 1.2.19
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.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/kanban/index.tsx +24 -21
- package/src/listing/components/filter/index.tsx +22 -0
- package/src/listing/libs/hooks/useEntityTableAPI.tsx +0 -50
- package/src/listing/libs/utils/apiColumn.ts +0 -1
- package/src/listing/libs/utils/common.ts +1 -1
- package/src/view/FIlterWrapper.tsx +90 -6
- package/src/view/ListingView.tsx +5 -3
package/package.json
CHANGED
package/src/kanban/index.tsx
CHANGED
|
@@ -84,7 +84,7 @@ const Kanban = ({
|
|
|
84
84
|
swimLane.sub_lanes
|
|
85
85
|
?.filter((subLane) => subLane.lane_id === laneId)
|
|
86
86
|
?.forEach((subLane) => {
|
|
87
|
-
data
|
|
87
|
+
data?.forEach((lead: any) => {
|
|
88
88
|
if (lead?.stage_id === subLane?.id && !seenLeadIds.has(lead?.id)) {
|
|
89
89
|
seenLeadIds.add(lead.id);
|
|
90
90
|
count++;
|
|
@@ -148,7 +148,7 @@ const Kanban = ({
|
|
|
148
148
|
</Box>
|
|
149
149
|
|
|
150
150
|
<Typography variant="h6" fontWeight="bold" sx={{ px: 2 }}>
|
|
151
|
-
{lane
|
|
151
|
+
{lane?.name}
|
|
152
152
|
</Typography>
|
|
153
153
|
</Box>
|
|
154
154
|
))}
|
|
@@ -193,7 +193,7 @@ const Kanban = ({
|
|
|
193
193
|
>
|
|
194
194
|
{swim_lane?.name} (
|
|
195
195
|
{
|
|
196
|
-
data
|
|
196
|
+
data?.filter(
|
|
197
197
|
(lead: any) => lead?.lead_status_id == swim_lane?.id
|
|
198
198
|
).length
|
|
199
199
|
}
|
|
@@ -212,7 +212,7 @@ const Kanban = ({
|
|
|
212
212
|
sx={{
|
|
213
213
|
...kanbanStyles.columnStyle,
|
|
214
214
|
bgcolor:
|
|
215
|
-
lane
|
|
215
|
+
lane?.color || COLOR_CONSTANTS[index % 4].color,
|
|
216
216
|
}}
|
|
217
217
|
key={lane.id}
|
|
218
218
|
>
|
|
@@ -220,18 +220,18 @@ const Kanban = ({
|
|
|
220
220
|
{swim_lane?.sub_lanes
|
|
221
221
|
?.filter(
|
|
222
222
|
(sub_lane: SubLane) =>
|
|
223
|
-
sub_lane.lane_id.toString() === lane
|
|
223
|
+
sub_lane.lane_id.toString() === lane?.id
|
|
224
224
|
)
|
|
225
225
|
?.map((sub_section: SubLane) => {
|
|
226
|
-
const subLaneKey = `${swim_lane
|
|
226
|
+
const subLaneKey = `${swim_lane?.id}-${lane?.id}-${sub_section?.id}`;
|
|
227
227
|
return (
|
|
228
228
|
<Accordion
|
|
229
229
|
key={sub_section.id}
|
|
230
230
|
expanded={
|
|
231
231
|
data?.filter(
|
|
232
232
|
(lead: any) =>
|
|
233
|
-
lead
|
|
234
|
-
lead
|
|
233
|
+
lead?.stage_id === sub_section?.id &&
|
|
234
|
+
lead?.lead_status_id == swim_lane?.id
|
|
235
235
|
)?.length === 0
|
|
236
236
|
? false
|
|
237
237
|
: subLaneExpanded[subLaneKey] || false
|
|
@@ -261,10 +261,10 @@ const Kanban = ({
|
|
|
261
261
|
display:
|
|
262
262
|
data?.filter(
|
|
263
263
|
(lead: any) =>
|
|
264
|
-
lead
|
|
265
|
-
sub_section
|
|
266
|
-
lead
|
|
267
|
-
swim_lane
|
|
264
|
+
lead?.stage_id ===
|
|
265
|
+
sub_section?.id &&
|
|
266
|
+
lead?.lead_status_id ==
|
|
267
|
+
swim_lane?.id
|
|
268
268
|
)?.length === 0
|
|
269
269
|
? "none"
|
|
270
270
|
: "block",
|
|
@@ -283,15 +283,17 @@ const Kanban = ({
|
|
|
283
283
|
sx={{
|
|
284
284
|
...kanbanStyles.subSectionCountContainer,
|
|
285
285
|
bgcolor:
|
|
286
|
-
lane
|
|
286
|
+
lane?.darkColor ||
|
|
287
287
|
COLOR_CONSTANTS[index % 4]
|
|
288
288
|
.darkColor,
|
|
289
289
|
}}
|
|
290
290
|
>
|
|
291
291
|
{data?.filter(
|
|
292
292
|
(lead: any) =>
|
|
293
|
-
lead
|
|
294
|
-
|
|
293
|
+
lead?.stage_id ===
|
|
294
|
+
sub_section?.id &&
|
|
295
|
+
lead?.lead_status_id ===
|
|
296
|
+
swim_lane?.id
|
|
295
297
|
)?.length || 0}
|
|
296
298
|
</Box>
|
|
297
299
|
<Typography
|
|
@@ -299,7 +301,7 @@ const Kanban = ({
|
|
|
299
301
|
color="#555354"
|
|
300
302
|
fontSize="12px"
|
|
301
303
|
>
|
|
302
|
-
{sub_section
|
|
304
|
+
{sub_section?.name}
|
|
303
305
|
</Typography>
|
|
304
306
|
</Box>
|
|
305
307
|
</AccordionSummary>
|
|
@@ -311,17 +313,18 @@ const Kanban = ({
|
|
|
311
313
|
const leadsForThisSubLane =
|
|
312
314
|
data?.filter(
|
|
313
315
|
(lead: any) =>
|
|
314
|
-
lead
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
316
|
+
lead?.stage_id ===
|
|
317
|
+
sub_section?.id &&
|
|
318
|
+
lead?.lead_status_id ==
|
|
319
|
+
swim_lane?.id &&
|
|
320
|
+
lead?.stage_group_id == lane?.id
|
|
318
321
|
) || [];
|
|
319
322
|
|
|
320
323
|
return leadsForThisSubLane.map(
|
|
321
324
|
(card: any) =>
|
|
322
325
|
(KanbanCardComponent && (
|
|
323
326
|
<KanbanCardComponent
|
|
324
|
-
key={card
|
|
327
|
+
key={card?.id}
|
|
325
328
|
cardData={card}
|
|
326
329
|
/>
|
|
327
330
|
)) ||
|
|
@@ -244,6 +244,28 @@ export function TableFilter({
|
|
|
244
244
|
label: editMode ? "Replace Filter" : "Save",
|
|
245
245
|
onClick: (inputValue) => {
|
|
246
246
|
if (editMode) {
|
|
247
|
+
const selectedId = filterMaster?.saved_filters?.selectedId;
|
|
248
|
+
const selectedName =
|
|
249
|
+
inputValue || filterMaster?.saved_filters?.selectedName;
|
|
250
|
+
|
|
251
|
+
const newFilterMasterState = {
|
|
252
|
+
...filterMaster,
|
|
253
|
+
saved_filters: {
|
|
254
|
+
...filterMaster?.attributes,
|
|
255
|
+
selectedId,
|
|
256
|
+
selectedName,
|
|
257
|
+
},
|
|
258
|
+
} as FilterMasterStateProps;
|
|
259
|
+
|
|
260
|
+
setFilterMaster(newFilterMasterState);
|
|
261
|
+
|
|
262
|
+
const newState = {
|
|
263
|
+
filterMaster: newFilterMasterState,
|
|
264
|
+
filters: filters,
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
onChangeFunction && onChangeFunction(newState);
|
|
268
|
+
|
|
247
269
|
onUpdateFilter && onUpdateFilter(inputValue || "");
|
|
248
270
|
setSaveFilterModalOpen(false);
|
|
249
271
|
setEditMode(false);
|
|
@@ -150,32 +150,10 @@ export const useDeleteFilterAPI = (tableStates: CraftTableOptionsProps) => {
|
|
|
150
150
|
onSuccess: async () => {
|
|
151
151
|
queryClient.invalidateQueries({ queryKey: ["meta"] });
|
|
152
152
|
|
|
153
|
-
console.log("on success is running");
|
|
154
|
-
|
|
155
153
|
const { filters, filterToDelete, filterMaster, setFilterMaster } =
|
|
156
154
|
tableStates;
|
|
157
155
|
|
|
158
|
-
console.log(
|
|
159
|
-
filterToDelete?.value === filterMaster?.saved_filters?.selectedId,
|
|
160
|
-
filterToDelete,
|
|
161
|
-
filterMaster
|
|
162
|
-
);
|
|
163
|
-
|
|
164
156
|
if (filterToDelete?.value === filterMaster?.saved_filters?.selectedId) {
|
|
165
|
-
console.log("inside if condition");
|
|
166
|
-
// const newFilterMasterState: FilterMasterStateProps = {
|
|
167
|
-
// ...filterMaster,
|
|
168
|
-
// attributes: {
|
|
169
|
-
// selected: filterMaster?.attributes.selected || "",
|
|
170
|
-
// radio: filterMaster?.attributes.radio || [],
|
|
171
|
-
// },
|
|
172
|
-
// saved_filters: {
|
|
173
|
-
// selectedId: "",
|
|
174
|
-
// selectedName: "",
|
|
175
|
-
// },
|
|
176
|
-
// activeFilterTabIndex: -1,
|
|
177
|
-
// };
|
|
178
|
-
|
|
179
157
|
const newFilterMasterState = {
|
|
180
158
|
...filterMaster,
|
|
181
159
|
saved_filters: {
|
|
@@ -184,7 +162,6 @@ export const useDeleteFilterAPI = (tableStates: CraftTableOptionsProps) => {
|
|
|
184
162
|
},
|
|
185
163
|
activeFilterTabIndex: -1,
|
|
186
164
|
};
|
|
187
|
-
console.log(" 1");
|
|
188
165
|
|
|
189
166
|
setFilterMaster(newFilterMasterState as FilterMasterStateProps);
|
|
190
167
|
|
|
@@ -193,8 +170,6 @@ export const useDeleteFilterAPI = (tableStates: CraftTableOptionsProps) => {
|
|
|
193
170
|
filters: filters,
|
|
194
171
|
};
|
|
195
172
|
|
|
196
|
-
console.log("first");
|
|
197
|
-
|
|
198
173
|
const payload = {
|
|
199
174
|
entity_type: MAPPED_ENTITY_TYPE,
|
|
200
175
|
mapped_entity_type: ENTITY_TYPE,
|
|
@@ -202,8 +177,6 @@ export const useDeleteFilterAPI = (tableStates: CraftTableOptionsProps) => {
|
|
|
202
177
|
type: "filter",
|
|
203
178
|
};
|
|
204
179
|
|
|
205
|
-
console.log("payload - ", payload);
|
|
206
|
-
|
|
207
180
|
await saveLayoutAPI(payload);
|
|
208
181
|
}
|
|
209
182
|
},
|
|
@@ -269,29 +242,6 @@ export const useCommonDropdownAPI = (
|
|
|
269
242
|
|
|
270
243
|
//ALL VIEW SETTINGS API
|
|
271
244
|
|
|
272
|
-
// export const useSettingsDropDownAPI = () => {
|
|
273
|
-
// const queryClient = useQueryClient();
|
|
274
|
-
|
|
275
|
-
// const viewSettingsDropDownMutation = useMutation({
|
|
276
|
-
// mutationKey: ["viewsettingsDropdown"],
|
|
277
|
-
// mutationFn: ({
|
|
278
|
-
// entity_type,
|
|
279
|
-
// column,
|
|
280
|
-
// sort_by,
|
|
281
|
-
// }: {
|
|
282
|
-
// entity_type: string;
|
|
283
|
-
// column: string;
|
|
284
|
-
// sort_by: string;
|
|
285
|
-
// }) => {
|
|
286
|
-
// return viewSettingsDropDown(entity_type, column, sort_by);
|
|
287
|
-
// },
|
|
288
|
-
// // onSuccess: () => {
|
|
289
|
-
// // queryClient.invalidateQueries({ queryKey: ["meta"] });
|
|
290
|
-
// // },
|
|
291
|
-
// });
|
|
292
|
-
|
|
293
|
-
// return { viewSettingsDropDownMutation };
|
|
294
|
-
|
|
295
245
|
export const useSettingsDropDownAPI = ({
|
|
296
246
|
entity_type,
|
|
297
247
|
column,
|
|
@@ -124,7 +124,6 @@ export const updateSavedFilter = async (
|
|
|
124
124
|
};
|
|
125
125
|
|
|
126
126
|
// ALL View Settings API
|
|
127
|
-
|
|
128
127
|
export const saveSettingsData = async (payload: any) => {
|
|
129
128
|
try {
|
|
130
129
|
const response = await api.post(`/entity/create?entity_type=${MAPPED_ENTITY_TYPE}`, payload);
|
|
@@ -79,7 +79,7 @@ export function customDebounce<T extends (...args: any[]) => any>(
|
|
|
79
79
|
//ENTITY TYPE
|
|
80
80
|
const ENVIRONMENT = "crm_dev";
|
|
81
81
|
export const ENTITY_TYPE = "LEAD";
|
|
82
|
-
export const MAPPED_ENTITY_TYPE = "
|
|
82
|
+
export const MAPPED_ENTITY_TYPE = "LYPR"; // LAP OR LYPR
|
|
83
83
|
|
|
84
84
|
const environments = {
|
|
85
85
|
adm_dev: "http://localhost:4010/api",
|
|
@@ -2,18 +2,102 @@ import { useEffect } from "react";
|
|
|
2
2
|
import { CraftTableFilter } from "..";
|
|
3
3
|
import { useGetNavigationLayoutAPI } from "../listing/libs/hooks/useGetNavigationLayoutAPI";
|
|
4
4
|
import { ENTITY_TYPE } from "../listing/libs/utils/common";
|
|
5
|
+
import {
|
|
6
|
+
useDeleteFilterAPI,
|
|
7
|
+
useSavedFilterAPI,
|
|
8
|
+
useUpdateFilterAPI,
|
|
9
|
+
} from "../listing/libs/hooks/useEntityTableAPI";
|
|
10
|
+
import { FilterMasterStateProps } from "../listing/types/filter";
|
|
5
11
|
|
|
6
12
|
const CraftTableFilterWrapper = ({
|
|
7
13
|
tableStates,
|
|
8
14
|
dropdownData,
|
|
9
|
-
onDeleteFilter,
|
|
10
|
-
onSaveFilter,
|
|
11
|
-
handleUpdateFilter,
|
|
12
15
|
onChangeFunction,
|
|
13
16
|
columnsData,
|
|
14
17
|
}: any) => {
|
|
15
18
|
const getNavigationLayoutQuery = useGetNavigationLayoutAPI(ENTITY_TYPE);
|
|
16
19
|
|
|
20
|
+
const { filters, filterMaster, setFilterMaster, filterToDelete } =
|
|
21
|
+
tableStates;
|
|
22
|
+
|
|
23
|
+
const { savedMutation } = useSavedFilterAPI(); //API CALL FOR SAVED FILTER
|
|
24
|
+
const { updateMutation } = useUpdateFilterAPI(); //API FOR UPDATE FILTER
|
|
25
|
+
const { deleteMutation } = useDeleteFilterAPI(tableStates); //API FOR DELETING FILTER
|
|
26
|
+
|
|
27
|
+
// API to handle saving a filter
|
|
28
|
+
const handleSaveFilter = (name: string) => {
|
|
29
|
+
const quickFilter = filters.map((f: any) => ({
|
|
30
|
+
filter_attribute: f.filter_attribute,
|
|
31
|
+
filter_operator: f.filter_operator,
|
|
32
|
+
filter_value: f.filter_value,
|
|
33
|
+
}));
|
|
34
|
+
|
|
35
|
+
const payload = {
|
|
36
|
+
name,
|
|
37
|
+
is_default: false,
|
|
38
|
+
mapped_entity_type: ENTITY_TYPE, // For that entity type
|
|
39
|
+
status: "ACTIVE",
|
|
40
|
+
entity_type: "SFM", // FIXED entity type
|
|
41
|
+
filterDetails: quickFilter,
|
|
42
|
+
};
|
|
43
|
+
const entity_type = "SFM";
|
|
44
|
+
savedMutation.mutate(
|
|
45
|
+
{ entity_type, payload },
|
|
46
|
+
{
|
|
47
|
+
onSuccess: (response) => {
|
|
48
|
+
const newFilterId = response?.id;
|
|
49
|
+
if (newFilterId) {
|
|
50
|
+
setFilterMaster(
|
|
51
|
+
(prev: FilterMasterStateProps) =>
|
|
52
|
+
({
|
|
53
|
+
...prev,
|
|
54
|
+
saved_filters: {
|
|
55
|
+
...prev?.saved_filters,
|
|
56
|
+
selectedId: newFilterId.toString(),
|
|
57
|
+
selectedName: name,
|
|
58
|
+
},
|
|
59
|
+
activeFilterTabIndex: 1,
|
|
60
|
+
} as FilterMasterStateProps)
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
}
|
|
65
|
+
);
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const handleUpdateFilter = () => {
|
|
69
|
+
const quickFilter = filters.map((f: any) => ({
|
|
70
|
+
filter_attribute: f.filter_attribute,
|
|
71
|
+
filter_operator: f.filter_operator,
|
|
72
|
+
filter_value: f.filter_value,
|
|
73
|
+
}));
|
|
74
|
+
|
|
75
|
+
const payload = {
|
|
76
|
+
name: filterMaster?.saved_filters?.selectedName, // Name of the filter
|
|
77
|
+
is_default: false,
|
|
78
|
+
id: filterMaster?.saved_filters?.selectedId,
|
|
79
|
+
mapped_entity_type: ENTITY_TYPE,
|
|
80
|
+
status: "ACTIVE",
|
|
81
|
+
entity_type: "SFM",
|
|
82
|
+
filterDetails: quickFilter,
|
|
83
|
+
};
|
|
84
|
+
const entity_type = "SFM";
|
|
85
|
+
updateMutation.mutate({ entity_type, payload });
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
const handleRemoveFilter = () => {
|
|
89
|
+
const payload = {
|
|
90
|
+
name: filterToDelete?.label,
|
|
91
|
+
id: filterToDelete?.value,
|
|
92
|
+
is_default: false,
|
|
93
|
+
mapped_entity_type: ENTITY_TYPE,
|
|
94
|
+
status: "INACTIVE",
|
|
95
|
+
entity_type: "SFM",
|
|
96
|
+
};
|
|
97
|
+
const entity_type = "SFM";
|
|
98
|
+
deleteMutation.mutate({ entity_type, payload });
|
|
99
|
+
};
|
|
100
|
+
|
|
17
101
|
useEffect(() => {
|
|
18
102
|
if (getNavigationLayoutQuery.isSuccess) {
|
|
19
103
|
const { setFilters, setFilterMaster } = tableStates;
|
|
@@ -33,11 +117,11 @@ const CraftTableFilterWrapper = ({
|
|
|
33
117
|
<CraftTableFilter
|
|
34
118
|
tableStates={tableStates}
|
|
35
119
|
onClose={() => tableStates.setShowTableFilter(false)}
|
|
36
|
-
onUpdateFilter={handleUpdateFilter}
|
|
37
120
|
columnsData={columnsData}
|
|
38
121
|
dropdownData={dropdownData || []}
|
|
39
|
-
|
|
40
|
-
|
|
122
|
+
onUpdateFilter={handleUpdateFilter}
|
|
123
|
+
onDeleteFilter={handleRemoveFilter}
|
|
124
|
+
onSaveFilter={handleSaveFilter}
|
|
41
125
|
onChangeFunction={onChangeFunction}
|
|
42
126
|
/>
|
|
43
127
|
);
|
package/src/view/ListingView.tsx
CHANGED
|
@@ -316,6 +316,8 @@ function ListingView() {
|
|
|
316
316
|
|
|
317
317
|
//API to update the filter
|
|
318
318
|
const handleUpdateFilter = () => {
|
|
319
|
+
console.log("handleUpdateFilter");
|
|
320
|
+
|
|
319
321
|
const quickFilter = filters.map((f) => ({
|
|
320
322
|
filter_attribute: f.filter_attribute,
|
|
321
323
|
filter_operator: f.filter_operator,
|
|
@@ -380,11 +382,11 @@ function ListingView() {
|
|
|
380
382
|
<CraftTableFilterWrapper
|
|
381
383
|
tableStates={tableStates}
|
|
382
384
|
onClose={() => tableStates.setShowTableFilter(false)}
|
|
383
|
-
onUpdateFilter={handleUpdateFilter}
|
|
384
385
|
columnsData={metaQuery.data || {}}
|
|
385
386
|
dropdownData={dropdownData || []}
|
|
386
|
-
|
|
387
|
-
|
|
387
|
+
// onUpdateFilter={handleUpdateFilter}
|
|
388
|
+
// onDeleteFilter={handleRemoveFilter}
|
|
389
|
+
// onSaveFilter={handleSaveFilter}
|
|
388
390
|
onChangeFunction={handleChangeFunction}
|
|
389
391
|
/>
|
|
390
392
|
),
|