rez-table-listing-mui 1.3.34 → 1.3.36

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.
@@ -1,607 +1,3 @@
1
- // import { useEffect, useState } from "react";
2
- // import {
3
- // FilterFormComponentProps,
4
- // FilterMasterStateProps,
5
- // FilterOperationListProps,
6
- // } from "../../../types/filter";
7
- // import {
8
- // Box,
9
- // IconButton,
10
- // List,
11
- // ListItem,
12
- // ListItemText,
13
- // Typography,
14
- // } from "@mui/material";
15
- // import CustomSearch from "./search";
16
- // import { DeleteIcon, EditIcon } from "../../../../assets/svg";
17
- // import SavedFilterEditComponent from "./saved-edit-filter";
18
- // import { filterStyles } from "../style";
19
- // import { CheckBox } from "../../../../assets/svg";
20
-
21
- // const SavedFilter = ({
22
- // columnsData,
23
- // dropdownData,
24
- // tableStates,
25
- // editMode,
26
- // setEditMode,
27
- // setDeleteFilterModalOpen,
28
- // setSavedFilterModalOpen,
29
- // tabValue,
30
- // onChangeFunction,
31
- // filterComponentOptions,
32
- // }: FilterFormComponentProps) => {
33
- // const { filters, filterMaster, setFilterMaster, setFilterToDelete } =
34
- // tableStates;
35
- // const [searchTerm, setSearchTerm] = useState<string>("");
36
-
37
- // // reset savedFilterEditValue when component unmounts
38
- // useEffect(() => {
39
- // return () => {
40
- // const editModeFromTabOptions =
41
- // filterComponentOptions?.tabOptions?.savedFilter?.editMode;
42
- // if (!editModeFromTabOptions) {
43
- // setEditMode && setEditMode(false);
44
- // setFilterMaster(
45
- // (prev) =>
46
- // ({
47
- // ...prev,
48
- // saved_filters: {
49
- // ...prev?.attributes,
50
- // selectedId: "",
51
- // selectedName: "",
52
- // selectedCode: "",
53
- // },
54
- // } as FilterMasterStateProps)
55
- // );
56
- // }
57
- // };
58
- // }, []);
59
-
60
- // const handleListItemClick = (filter: FilterOperationListProps) => {
61
- // const newFilterMasterState = {
62
- // ...filterMaster,
63
- // saved_filters: {
64
- // ...filterMaster?.attributes,
65
- // selectedId: filter?.value,
66
- // selectedName: filter?.label,
67
- // selectedCode: filter?.code,
68
- // },
69
- // attributes: {
70
- // ...filterMaster?.attributes,
71
- // radio: [],
72
- // },
73
- // activeFilterTabIndex: tabValue,
74
- // } as FilterMasterStateProps;
75
-
76
- // setFilterMaster(newFilterMasterState);
77
-
78
- // const newState = {
79
- // filterMaster: newFilterMasterState,
80
- // filters: filters,
81
- // };
82
-
83
- // onChangeFunction && onChangeFunction(newState);
84
-
85
- // // setEditfilter state on edit icon click
86
- // setEditMode && setEditMode(true);
87
- // setFilterToDelete(filter);
88
- // };
89
-
90
- // const handleAppyFilter = (filter: FilterOperationListProps) => {
91
- // const newFilterMasterState = {
92
- // ...filterMaster,
93
- // saved_filters: {
94
- // ...filterMaster?.attributes,
95
- // selectedId: filter?.value,
96
- // selectedName: filter?.label,
97
- // selectedCode: filter?.code,
98
- // },
99
- // attributes: {
100
- // ...filterMaster?.attributes,
101
- // radio: [],
102
- // },
103
- // activeFilterTabIndex: tabValue,
104
- // } as FilterMasterStateProps;
105
-
106
- // setFilterMaster(newFilterMasterState);
107
-
108
- // const newState = {
109
- // filterMaster: newFilterMasterState,
110
- // filters: filters,
111
- // };
112
-
113
- // onChangeFunction && onChangeFunction(newState);
114
- // };
115
-
116
- // const renderList = () => (
117
- // <>
118
- // <CustomSearch
119
- // value={searchTerm}
120
- // onChange={setSearchTerm}
121
- // className="search-input"
122
- // />
123
-
124
- // {columnsData?.saved_filter?.length === 0 ? (
125
- // <Typography sx={{ mt: 2 }}>No saved filters yet.</Typography>
126
- // ) : (
127
- // <List
128
- // sx={{
129
- // display: "flex",
130
- // flexDirection: "column",
131
- // gap: 1,
132
- // mt: 2,
133
- // }}
134
- // >
135
- // {columnsData?.saved_filter
136
- // ?.filter((filter) =>
137
- // filter.label?.toLowerCase().includes(searchTerm.toLowerCase())
138
- // )
139
- // ?.map((filter) => (
140
- // <ListItem
141
- // key={filter?.value}
142
- // sx={{
143
- // cursor: "pointer",
144
- // border:
145
- // filter?.value ===
146
- // tableStates?.filterMaster?.saved_filters?.selectedId
147
- // ? `3px solid #7a5af8`
148
- // : "1px solid #C5C5C5",
149
- // borderRadius: "8px",
150
- // display: "flex",
151
- // justifyContent: "space-between",
152
- // gap: 1,
153
- // alignItems: "center",
154
- // "&:hover .action-icons": {
155
- // opacity: 1,
156
- // visibility: "visible",
157
- // },
158
- // }}
159
- // onClick={() => handleAppyFilter(filter)}
160
- // >
161
- // {filter?.value ===
162
- // tableStates?.filterMaster?.saved_filters?.selectedId && (
163
- // <Box
164
- // sx={{
165
- // display: "flex",
166
- // alignItems: "center",
167
- // cursor: "pointer",
168
- // color: "green",
169
- // rounded: "full",
170
- // }}
171
- // >
172
- // <CheckBox />
173
- // </Box>
174
- // )}
175
- // <ListItemText primary={filter?.label} />
176
-
177
- // <Box
178
- // onClick={(e) => e.stopPropagation()}
179
- // className="action-icons"
180
- // sx={{
181
- // display: "flex",
182
- // gap: 1,
183
- // opacity: 0,
184
- // visibility: "hidden",
185
- // transition: "opacity 0.2s ease, visibility 0.2s ease",
186
- // }}
187
- // >
188
- // <IconButton
189
- // size="large"
190
- // onClick={() => handleListItemClick(filter)}
191
- // >
192
- // <EditIcon />
193
- // </IconButton>
194
-
195
- // <IconButton
196
- // size="small"
197
- // onClick={() => {
198
- // setFilterToDelete(filter);
199
- // setDeleteFilterModalOpen?.(true);
200
- // }}
201
- // >
202
- // <DeleteIcon />
203
- // </IconButton>
204
- // </Box>
205
- // </ListItem>
206
- // ))}
207
- // </List>
208
- // )}
209
- // </>
210
- // );
211
-
212
- // const mainBoxStyles = {
213
- // ...filterStyles.filterMainComponentWrapper,
214
- // ...filterStyles.scrollbarCustom,
215
- // };
216
-
217
- // return (
218
- // <Box sx={mainBoxStyles} className="saved-filter-component-wrapper">
219
- // {/* Render search input and list */}
220
- // {!editMode && renderList()}
221
-
222
- // {editMode && (
223
- // <SavedFilterEditComponent
224
- // columnsData={columnsData}
225
- // dropdownData={dropdownData}
226
- // tableStates={tableStates}
227
- // editMode={editMode}
228
- // setEditMode={setEditMode}
229
- // searchTerm={searchTerm}
230
- // setSearchTerm={setSearchTerm}
231
- // setSavedFilterModalOpen={setSavedFilterModalOpen}
232
- // setDeleteFilterModalOpen={setDeleteFilterModalOpen}
233
- // onChangeFunction={onChangeFunction}
234
- // filterComponentOptions={filterComponentOptions}
235
- // />
236
- // )}
237
- // </Box>
238
- // );
239
- // };
240
-
241
- // export default SavedFilter;
242
-
243
- // do not delete this logic rework this
244
- // ----------------------------------------------------------------------------------------------------------------------------
245
-
246
- // import { useEffect, useState } from "react";
247
- // import {
248
- // FilterFormComponentProps,
249
- // FilterMasterStateProps,
250
- // FilterOperationListProps,
251
- // } from "../../../types/filter";
252
- // import {
253
- // Accordion,
254
- // AccordionDetails,
255
- // AccordionSummary,
256
- // Box,
257
- // Divider,
258
- // IconButton,
259
- // List,
260
- // ListItem,
261
- // ListItemText,
262
- // Typography,
263
- // } from "@mui/material";
264
- // import CustomSearch from "./search";
265
- // import { DeleteIcon, EditIcon } from "../../../../assets/svg";
266
- // import SavedFilterEditComponent from "./saved-edit-filter";
267
- // // import { filterStyles } from "../style";
268
- // import { CheckBox } from "../../../../assets/svg";
269
- // import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
270
-
271
- // const SavedFilter = ({
272
- // columnsData,
273
- // dropdownData,
274
- // tableStates,
275
- // editMode,
276
- // setEditMode,
277
- // setDeleteFilterModalOpen,
278
- // onSaveFilterButtonClick,
279
- // tabValue,
280
- // onChangeFunction,
281
- // filterComponentOptions,
282
- // }: FilterFormComponentProps) => {
283
- // const { filters, filterMaster, setFilterMaster, setFilterToDelete } =
284
- // tableStates;
285
-
286
- // const [searchTerm, setSearchTerm] = useState<string>("");
287
-
288
- // const normalizeFilter = (f: any): FilterOperationListProps => {
289
- // const prefs =
290
- // f.sharedPreferences || f.preferences || f.meta || f.shared_meta || {};
291
-
292
- // return {
293
- // label: f.name || f.label || "Unnamed Filter",
294
- // value: f.id || f.value,
295
- // code: f.code ?? "",
296
- // is_shared: f.is_shared ?? prefs.is_shared ?? false,
297
- // created_by: f.created_by || "shared_filter",
298
- // description: f.description || "",
299
- // is_owner: f.is_owner === true || prefs.is_owner === "true",
300
-
301
- // is_editable:
302
- // f.is_editable === true ||
303
- // f.is_editable === "true" ||
304
- // prefs.is_editable === true ||
305
- // prefs.is_editable === "true",
306
- // };
307
- // };
308
-
309
- // const mappedSavedFilter: FilterOperationListProps[] =
310
- // columnsData?.saved_filter?.map(normalizeFilter) ?? [];
311
- // // console.log("mappedSavedFilter", mappedSavedFilter);
312
-
313
- // const mappedSharedFilter: FilterOperationListProps[] =
314
- // columnsData?.shared_filter?.map(normalizeFilter) ?? [];
315
- // // console.log("mappedSharedFilter", mappedSharedFilter);
316
-
317
- // // Reset on unmount
318
- // useEffect(() => {
319
- // return () => {
320
- // const editModeFromTab =
321
- // filterComponentOptions?.tabOptions?.savedFilter?.editMode;
322
-
323
- // if (!editModeFromTab) {
324
- // setEditMode && setEditMode(false);
325
- // setFilterMaster(
326
- // (prev) =>
327
- // ({
328
- // ...prev,
329
- // saved_filters: {
330
- // ...(prev?.saved_filters ?? {}),
331
- // selectedId: "",
332
- // selectedName: "",
333
- // description: "",
334
- // selectedCode: "",
335
- // shareWithTeam: undefined,
336
- // allowTeamEdit: undefined,
337
- // },
338
- // } as FilterMasterStateProps)
339
- // );
340
- // }
341
- // };
342
- // }, []);
343
-
344
- // const applyFilterStates = (filter: FilterOperationListProps) => {
345
- // const newFilterMaster = {
346
- // ...filterMaster,
347
- // saved_filters: {
348
- // ...(filterMaster?.saved_filters ?? {}),
349
- // selectedId: filter.value,
350
- // selectedName: filter.label,
351
- // description: filter.description,
352
- // selectedCode: filter.code,
353
- // shareWithTeam: filter.is_shared,
354
- // allowTeamEdit: filter.is_editable,
355
- // },
356
- // attributes: {
357
- // ...filterMaster?.attributes,
358
- // radio: [],
359
- // },
360
- // activeFilterTabIndex: tabValue,
361
- // } as FilterMasterStateProps;
362
-
363
- // setFilterMaster(newFilterMaster);
364
-
365
- // onChangeFunction &&
366
- // onChangeFunction({
367
- // filterMaster: newFilterMaster,
368
- // filters,
369
- // });
370
- // };
371
-
372
- // const handleListItemClick = (filter: FilterOperationListProps) => {
373
- // applyFilterStates(filter);
374
- // setEditMode && setEditMode(true);
375
- // setFilterToDelete(filter);
376
- // };
377
-
378
- // const handleApplyFilter = (filter: FilterOperationListProps) => {
379
- // applyFilterStates(filter);
380
- // };
381
- // const [openAccordion, setOpenAccordion] = useState<"my" | "shared">("my");
382
-
383
- // /**
384
- // * renderList
385
- // * @param source - list to render
386
- // * @param isSharedList - true when rendering Shared Filters (default false)
387
- // *
388
- // * Behavior:
389
- // * - If isSharedList === true -> show Edit icon ONLY when filter.is_editable === true
390
- // * - If isSharedList === false -> show Edit icon always (or as per filter.is_editable if you prefer)
391
- // */
392
- // const renderList = (
393
- // source: FilterOperationListProps[],
394
- // isSharedList: boolean = false,
395
- // { emptyMessage = "No filters yet." } = {}
396
- // ) =>
397
- // source.length === 0 ? (
398
- // <Typography>{emptyMessage}</Typography>
399
- // ) : (
400
- // <List
401
- // sx={{
402
- // display: "flex",
403
- // flexDirection: "column",
404
- // gap: 1,
405
- // }}
406
- // >
407
- // {source
408
- // .filter((f) =>
409
- // f.label?.toLowerCase().includes(searchTerm.toLowerCase())
410
- // )
411
- // .map((filter) => (
412
- // <ListItem
413
- // key={filter.value}
414
- // sx={{
415
- // cursor: "pointer",
416
- // // border:
417
- // // filter.value ===
418
- // // tableStates?.filterMaster?.saved_filters?.selectedId
419
- // // ? `3px solid #7a5af8`
420
- // // : "1px solid #C5C5C5",
421
- // borderRadius: "8px",
422
- // bgcolor: "#f2f6f8ff",
423
- // display: "flex",
424
- // justifyContent: "space-between",
425
- // gap: 1,
426
- // alignItems: "center",
427
- // "&:hover .action-icons": {
428
- // opacity: 1,
429
- // visibility: "visible",
430
- // },
431
- // }}
432
- // onClick={() => handleApplyFilter(filter)}
433
- // >
434
- // {filter.value ===
435
- // tableStates?.filterMaster?.saved_filters?.selectedId && (
436
- // <Box sx={{ display: "flex", alignItems: "center" }}>
437
- // <CheckBox />
438
- // </Box>
439
- // )}
440
-
441
- // <ListItemText primary={filter.label} />
442
-
443
- // <Box
444
- // onClick={(e) => e.stopPropagation()}
445
- // className="action-icons"
446
- // sx={{
447
- // display: "flex",
448
- // gap: 1,
449
- // opacity: 0,
450
- // visibility: "hidden",
451
- // transition: "opacity 0.2s ease, visibility 0.2s ease",
452
- // }}
453
- // >
454
- // {((!isSharedList && filter.is_editable === true) ||
455
- // filter.is_owner === true) && (
456
- // // ||
457
- // // String(filter.created_by) !== String(filter.user_id))
458
- // <IconButton
459
- // size="large"
460
- // onClick={() => handleListItemClick(filter)}
461
- // >
462
- // <EditIcon />
463
- // </IconButton>
464
- // )}
465
- // {filter?.is_owner === true && (
466
- // <IconButton
467
- // size="small"
468
- // onClick={() => {
469
- // setFilterToDelete(filter);
470
- // setDeleteFilterModalOpen?.(true);
471
- // }}
472
- // >
473
- // <DeleteIcon />
474
- // </IconButton>
475
- // )}
476
- // </Box>
477
- // </ListItem>
478
- // ))}
479
- // </List>
480
- // );
481
-
482
- // return (
483
- // <Box
484
- // // sx={{
485
- // // ...filterStyles.filterMainComponentWrapper,
486
- // // ...filterStyles.scrollbarCustom,
487
- // // }}
488
- // className="saved-filter-component-wrapper"
489
- // >
490
- // {!editMode && (
491
- // <>
492
- // {/* Search Box */}
493
- // <Box sx={{ mb: 2 }}>
494
- // <CustomSearch
495
- // value={searchTerm}
496
- // onChange={setSearchTerm}
497
- // className="search-input"
498
- // />
499
- // </Box>
500
-
501
- // {/* ---- My Filters Section ---- */}
502
- // <Box
503
- // sx={{
504
- // background: "#fff",
505
- // borderRadius: "12px",
506
- // border: "1px solid #eee",
507
- // mb: 2,
508
- // overflow: "hidden",
509
- // }}
510
- // >
511
- // <Accordion
512
- // // defaultExpanded
513
- // disableGutters
514
- // elevation={0}
515
- // expanded={openAccordion === "my"}
516
- // onChange={() =>
517
- // setOpenAccordion(openAccordion === "my" ? "shared" : "my")
518
- // }
519
- // >
520
- // <AccordionSummary
521
- // expandIcon={<ExpandMoreIcon fontSize="small" />}
522
- // >
523
- // <Typography fontWeight={600}>My Filters</Typography>
524
- // </AccordionSummary>
525
- // <Divider sx={{ width: "100%" }} />
526
- // <AccordionDetails
527
- // sx={{
528
- // p: "9px",
529
- // maxHeight: "320px",
530
- // overflowY: "auto",
531
- // scrollbarWidth: "thin",
532
- // }}
533
- // >
534
- // {renderList(mappedSavedFilter) || (
535
- // <Typography>No My Filters</Typography>
536
- // )}
537
- // </AccordionDetails>
538
- // </Accordion>
539
- // </Box>
540
-
541
- // {/* ---- Shared Filters Section ---- */}
542
- // <Box
543
- // sx={{
544
- // background: "#fff",
545
- // borderRadius: "12px",
546
- // border: "1px solid #eee",
547
- // mb: 2,
548
- // overflow: "hidden",
549
- // }}
550
- // >
551
- // <Accordion
552
- // disableGutters
553
- // elevation={0}
554
- // expanded={openAccordion === "shared"}
555
- // onChange={() =>
556
- // setOpenAccordion(openAccordion === "shared" ? "my" : "shared")
557
- // }
558
- // >
559
- // <AccordionSummary
560
- // expandIcon={<ExpandMoreIcon fontSize="small" />}
561
- // >
562
- // <Typography fontWeight={600}>Shared Filters</Typography>
563
- // </AccordionSummary>
564
- // <Divider sx={{ width: "100%" }} />
565
-
566
- // <AccordionDetails
567
- // sx={{
568
- // p: "9px",
569
- // maxHeight: "320px",
570
- // overflowY: "auto",
571
- // scrollbarWidth: "thin",
572
- // }}
573
- // >
574
- // {renderList(mappedSharedFilter) || (
575
- // <Typography>No Shared Filters</Typography>
576
- // )}
577
- // </AccordionDetails>
578
- // </Accordion>
579
- // </Box>
580
- // </>
581
- // )}
582
-
583
- // {/* Edit Component */}
584
- // {editMode && (
585
- // <SavedFilterEditComponent
586
- // columnsData={columnsData}
587
- // dropdownData={dropdownData}
588
- // tableStates={tableStates}
589
- // editMode={editMode}
590
- // setEditMode={setEditMode}
591
- // searchTerm={searchTerm}
592
- // setSearchTerm={setSearchTerm}
593
- // onSaveFilterButtonClick={onSaveFilterButtonClick}
594
- // setDeleteFilterModalOpen={setDeleteFilterModalOpen}
595
- // onChangeFunction={onChangeFunction}
596
- // filterComponentOptions={filterComponentOptions}
597
- // />
598
- // )}
599
- // </Box>
600
- // );
601
- // };
602
-
603
- // export default SavedFilter;
604
-
605
1
  import { useEffect, useState } from "react";
606
2
  import {
607
3
  FilterFormComponentProps,
@@ -724,6 +120,7 @@ const SavedFilter = ({
724
120
  selectedCode: filter.code,
725
121
  shareWithTeam: filter.is_shared,
726
122
  allowTeamEdit: filter.is_editable,
123
+ is_owner: filter.is_owner,
727
124
  },
728
125
  attributes: {
729
126
  ...filterMaster?.attributes,
@@ -940,7 +337,7 @@ const SavedFilter = ({
940
337
  <AccordionDetails
941
338
  sx={{
942
339
  p: "9px",
943
- maxHeight: "320px",
340
+ maxHeight: "230px",
944
341
  overflowY: "auto",
945
342
  scrollbarWidth: "thin",
946
343
  }}
@@ -955,9 +352,9 @@ const SavedFilter = ({
955
352
  sx={{
956
353
  background: "#fff",
957
354
  borderRadius: "12px",
958
- // border: "1px solid "#eee",
959
- // mb: 2,
960
- // overflow: "hidden",
355
+ border: "1px solid #eee",
356
+ mb: 2,
357
+ overflow: "hidden",
961
358
  }}
962
359
  >
963
360
  <Accordion
@@ -977,7 +374,7 @@ const SavedFilter = ({
977
374
  <AccordionDetails
978
375
  sx={{
979
376
  p: "9px",
980
- maxHeight: "320px",
377
+ maxHeight: "230px",
981
378
  overflowY: "auto",
982
379
  scrollbarWidth: "thin",
983
380
  }}
@@ -1010,303 +407,3 @@ const SavedFilter = ({
1010
407
  };
1011
408
 
1012
409
  export default SavedFilter;
1013
-
1014
- // import { useEffect, useState } from "react";
1015
- // import {
1016
- // FilterFormComponentProps,
1017
- // FilterMasterStateProps,
1018
- // } from "../../../types/filter";
1019
- // import {
1020
- // Accordion,
1021
- // AccordionDetails,
1022
- // AccordionSummary,
1023
- // Box,
1024
- // Divider,
1025
- // IconButton,
1026
- // List,
1027
- // ListItem,
1028
- // ListItemText,
1029
- // Typography,
1030
- // } from "@mui/material";
1031
- // import CustomSearch from "./search";
1032
- // import { DeleteIcon, EditIcon } from "../../../../assets/svg";
1033
- // import SavedFilterEditComponent from "./saved-edit-filter";
1034
- // import { CheckBox } from "../../../../assets/svg";
1035
- // import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
1036
-
1037
- // const SavedFilter = ({
1038
- // columnsData,
1039
- // dropdownData,
1040
- // tableStates,
1041
- // editMode,
1042
- // setEditMode,
1043
- // setDeleteFilterModalOpen,
1044
- // onSaveFilterButtonClick,
1045
- // tabValue,
1046
- // onChangeFunction,
1047
- // filterComponentOptions,
1048
- // }: FilterFormComponentProps) => {
1049
- // const { filters, filterMaster, setFilterMaster, setFilterToDelete } =
1050
- // tableStates;
1051
-
1052
- // const [searchTerm, setSearchTerm] = useState<string>("");
1053
-
1054
- // // ------------------------------
1055
- // // APPLY FILTER STATE (same logic)
1056
- // // ------------------------------
1057
- // const applyFilterStates = (filter: any) => {
1058
- // const newFilterMaster = {
1059
- // ...filterMaster,
1060
- // saved_filters: {
1061
- // ...(filterMaster?.saved_filters ?? {}),
1062
- // selectedId: filter?.value || filter?.id,
1063
- // selectedName: filter?.label || filter?.name,
1064
- // selectedCode: filter?.code,
1065
- // shareWithTeam: filter?.is_shared,
1066
- // allowTeamEdit: filter?.is_editable,
1067
- // },
1068
- // attributes: {
1069
- // ...filterMaster?.attributes,
1070
- // radio: [],
1071
- // },
1072
- // activeFilterTabIndex: tabValue,
1073
- // } as FilterMasterStateProps;
1074
-
1075
- // setFilterMaster(newFilterMaster);
1076
-
1077
- // onChangeFunction &&
1078
- // onChangeFunction({
1079
- // filterMaster: newFilterMaster,
1080
- // filters,
1081
- // });
1082
- // };
1083
-
1084
- // const handleListItemClick = (filter: any) => {
1085
- // applyFilterStates(filter);
1086
- // setEditMode && setEditMode(true);
1087
- // setFilterToDelete(filter);
1088
- // };
1089
-
1090
- // const handleApplyFilter = (filter: any) => {
1091
- // applyFilterStates(filter);
1092
- // };
1093
-
1094
- // // ============================
1095
- // // ⭐ RENDER SAVED FILTER LIST
1096
- // // ============================
1097
- // const renderSavedFilterList = () => {
1098
- // const list = columnsData?.saved_filter ?? [];
1099
-
1100
- // return list.length === 0 ? (
1101
- // <Typography>No saved filters yet.</Typography>
1102
- // ) : (
1103
- // <List sx={{ display: "flex", flexDirection: "column", gap: 1 }}>
1104
- // {list
1105
- // .filter((f: any) =>
1106
- // f.label?.toLowerCase().includes(searchTerm.toLowerCase())
1107
- // )
1108
- // .map((filter: any) => (
1109
- // <ListItem
1110
- // key={filter.value}
1111
- // sx={{
1112
- // cursor: "pointer",
1113
- // borderRadius: "8px",
1114
- // bgcolor: "#f2f6f8ff",
1115
- // display: "flex",
1116
- // justifyContent: "space-between",
1117
- // gap: 1,
1118
- // alignItems: "center",
1119
- // "&:hover .action-icons": {
1120
- // opacity: 1,
1121
- // visibility: "visible",
1122
- // },
1123
- // }}
1124
- // onClick={() => handleApplyFilter(filter)}
1125
- // >
1126
- // {filter.value === filterMaster?.saved_filters?.selectedId && (
1127
- // <Box sx={{ display: "flex", alignItems: "center" }}>
1128
- // <CheckBox />
1129
- // </Box>
1130
- // )}
1131
-
1132
- // <ListItemText primary={filter.label} />
1133
-
1134
- // <Box
1135
- // onClick={(e) => e.stopPropagation()}
1136
- // className="action-icons"
1137
- // sx={{
1138
- // display: "flex",
1139
- // gap: 1,
1140
- // opacity: 0,
1141
- // visibility: "hidden",
1142
- // transition: "all 0.2s ease",
1143
- // }}
1144
- // >
1145
- // <IconButton
1146
- // size="large"
1147
- // onClick={() => handleListItemClick(filter)}
1148
- // >
1149
- // <EditIcon />
1150
- // </IconButton>
1151
-
1152
- // <IconButton
1153
- // size="small"
1154
- // onClick={() => {
1155
- // setFilterToDelete(filter);
1156
- // setDeleteFilterModalOpen?.(true);
1157
- // }}
1158
- // >
1159
- // <DeleteIcon />
1160
- // </IconButton>
1161
- // </Box>
1162
- // </ListItem>
1163
- // ))}
1164
- // </List>
1165
- // );
1166
- // };
1167
-
1168
- // // ============================
1169
- // // ⭐ RENDER SHARED FILTER LIST
1170
- // // ============================
1171
- // const renderSharedFilterList = () => {
1172
- // const list = columnsData?.shared_filter ?? [];
1173
-
1174
- // return list.length === 0 ? (
1175
- // <Typography>No shared filters yet.</Typography>
1176
- // ) : (
1177
- // <List sx={{ display: "flex", flexDirection: "column", gap: 1 }}>
1178
- // {list
1179
- // .filter((f: any) =>
1180
- // f.name?.toLowerCase().includes(searchTerm.toLowerCase())
1181
- // )
1182
- // .map((filter: any) => (
1183
- // <ListItem
1184
- // key={filter.id}
1185
- // sx={{
1186
- // cursor: "pointer",
1187
- // borderRadius: "8px",
1188
- // bgcolor: "#f2f6f8ff",
1189
- // display: "flex",
1190
- // justifyContent: "space-between",
1191
- // gap: 1,
1192
- // alignItems: "center",
1193
- // }}
1194
- // onClick={() =>
1195
- // handleApplyFilter({
1196
- // id: filter.id,
1197
- // value: filter.id,
1198
- // name: filter.name,
1199
- // label: filter.name,
1200
- // code: filter.code,
1201
- // })
1202
- // }
1203
- // >
1204
- // {filter.id === filterMaster?.saved_filters?.selectedId && (
1205
- // <Box sx={{ display: "flex", alignItems: "center" }}>
1206
- // <CheckBox />
1207
- // </Box>
1208
- // )}
1209
-
1210
- // <ListItemText primary={filter.name} />
1211
- // </ListItem>
1212
- // ))}
1213
- // </List>
1214
- // );
1215
- // };
1216
-
1217
- // return (
1218
- // <Box className="saved-filter-component-wrapper">
1219
- // {!editMode && (
1220
- // <>
1221
- // <Box sx={{ mb: 2 }}>
1222
- // <CustomSearch
1223
- // value={searchTerm}
1224
- // onChange={setSearchTerm}
1225
- // className="search-input"
1226
- // />
1227
- // </Box>
1228
-
1229
- // {/* ---- My Filters ---- */}
1230
- // <Box
1231
- // sx={{
1232
- // background: "#fff",
1233
- // borderRadius: "12px",
1234
- // border: "1px solid #eee",
1235
- // mb: 2,
1236
- // overflow: "hidden",
1237
- // }}
1238
- // >
1239
- // <Accordion defaultExpanded disableGutters elevation={0}>
1240
- // <AccordionSummary
1241
- // expandIcon={<ExpandMoreIcon fontSize="small" />}
1242
- // >
1243
- // <Typography fontWeight={600}>My Filters</Typography>
1244
- // </AccordionSummary>
1245
-
1246
- // <Divider />
1247
- // <AccordionDetails
1248
- // sx={{
1249
- // p: "9px",
1250
- // maxHeight: "320px",
1251
- // overflowY: "auto",
1252
- // scrollbarWidth: "thin",
1253
- // }}
1254
- // >
1255
- // {renderSavedFilterList()}
1256
- // </AccordionDetails>
1257
- // </Accordion>
1258
- // </Box>
1259
-
1260
- // {/* ---- Shared Filters ---- */}
1261
- // <Box
1262
- // sx={{
1263
- // background: "#fff",
1264
- // borderRadius: "12px",
1265
- // border: "1px solid #eee",
1266
- // mb: 2,
1267
- // overflow: "hidden",
1268
- // }}
1269
- // >
1270
- // <Accordion disableGutters elevation={0}>
1271
- // <AccordionSummary
1272
- // expandIcon={<ExpandMoreIcon fontSize="small" />}
1273
- // >
1274
- // <Typography fontWeight={600}>Shared Filters</Typography>
1275
- // </AccordionSummary>
1276
-
1277
- // <Divider />
1278
- // <AccordionDetails
1279
- // sx={{
1280
- // p: "9px",
1281
- // maxHeight: "320px",
1282
- // overflowY: "auto",
1283
- // scrollbarWidth: "thin",
1284
- // }}
1285
- // >
1286
- // {renderSharedFilterList()}
1287
- // </AccordionDetails>
1288
- // </Accordion>
1289
- // </Box>
1290
- // </>
1291
- // )}
1292
-
1293
- // {editMode && (
1294
- // <SavedFilterEditComponent
1295
- // columnsData={columnsData}
1296
- // dropdownData={dropdownData}
1297
- // tableStates={tableStates}
1298
- // editMode={editMode}
1299
- // setEditMode={setEditMode}
1300
- // searchTerm={searchTerm}
1301
- // setSearchTerm={setSearchTerm}
1302
- // onSaveFilterButtonClick={onSaveFilterButtonClick}
1303
- // setDeleteFilterModalOpen={setDeleteFilterModalOpen}
1304
- // onChangeFunction={onChangeFunction}
1305
- // filterComponentOptions={filterComponentOptions}
1306
- // />
1307
- // )}
1308
- // </Box>
1309
- // );
1310
- // };
1311
-
1312
- // export default SavedFilter;