rez-table-listing-mui 1.3.33 → 1.3.35

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,248 +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
1
  import { useEffect, useState } from "react";
247
2
  import {
248
3
  FilterFormComponentProps,
@@ -264,7 +19,6 @@ import {
264
19
  import CustomSearch from "./search";
265
20
  import { DeleteIcon, EditIcon } from "../../../../assets/svg";
266
21
  import SavedFilterEditComponent from "./saved-edit-filter";
267
- // import { filterStyles } from "../style";
268
22
  import { CheckBox } from "../../../../assets/svg";
269
23
  import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
270
24
 
@@ -285,7 +39,20 @@ const SavedFilter = ({
285
39
 
286
40
  const [searchTerm, setSearchTerm] = useState<string>("");
287
41
 
288
- const normalizeFilter = (f: any): FilterOperationListProps => {
42
+ const MyFilter = (f: any): FilterOperationListProps => {
43
+ return {
44
+ label: f.name || f.label || "Unnamed Filter",
45
+ value: f.id || f.value,
46
+ code: f.code ?? "",
47
+ is_shared: false,
48
+ created_by: f.created_by || "",
49
+ description: f.description || "",
50
+ is_owner: true, // My filter = always owner
51
+ is_editable: f.is_editable === true || f.is_editable === "true",
52
+ };
53
+ };
54
+
55
+ const SharedFilter = (f: any): FilterOperationListProps => {
289
56
  const prefs =
290
57
  f.sharedPreferences || f.preferences || f.meta || f.shared_meta || {};
291
58
 
@@ -293,11 +60,10 @@ const SavedFilter = ({
293
60
  label: f.name || f.label || "Unnamed Filter",
294
61
  value: f.id || f.value,
295
62
  code: f.code ?? "",
296
- is_shared: f.is_shared ?? prefs.is_shared ?? false,
63
+ is_shared: f.is_shared ?? prefs.is_shared ?? true,
297
64
  created_by: f.created_by || "shared_filter",
298
65
  description: f.description || "",
299
66
  is_owner: f.is_owner === true || prefs.is_owner === "true",
300
-
301
67
  is_editable:
302
68
  f.is_editable === true ||
303
69
  f.is_editable === "true" ||
@@ -306,13 +72,13 @@ const SavedFilter = ({
306
72
  };
307
73
  };
308
74
 
309
- const mappedSavedFilter: FilterOperationListProps[] =
310
- columnsData?.saved_filter?.map(normalizeFilter) ?? [];
311
- console.log("mappedSavedFilter", mappedSavedFilter);
75
+ // SEPARATE DATA MAPPINGS
76
+
77
+ const myFilters: FilterOperationListProps[] =
78
+ columnsData?.saved_filter?.map(MyFilter) ?? [];
312
79
 
313
- const mappedSharedFilter: FilterOperationListProps[] =
314
- columnsData?.shared_filter?.map(normalizeFilter) ?? [];
315
- console.log("mappedSharedFilter", mappedSharedFilter);
80
+ const sharedFilters: FilterOperationListProps[] =
81
+ columnsData?.shared_filter?.map(SharedFilter) ?? [];
316
82
 
317
83
  // Reset on unmount
318
84
  useEffect(() => {
@@ -341,6 +107,8 @@ const SavedFilter = ({
341
107
  };
342
108
  }, []);
343
109
 
110
+ // APPLY FILTER
111
+
344
112
  const applyFilterStates = (filter: FilterOperationListProps) => {
345
113
  const newFilterMaster = {
346
114
  ...filterMaster,
@@ -378,32 +146,87 @@ const SavedFilter = ({
378
146
  const handleApplyFilter = (filter: FilterOperationListProps) => {
379
147
  applyFilterStates(filter);
380
148
  };
149
+
381
150
  const [openAccordion, setOpenAccordion] = useState<"my" | "shared">("my");
382
151
 
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 saved filters yet." } = {}
396
- ) =>
152
+ // RENDER: MY FILTERS
153
+
154
+ const renderMyFilters = (source: FilterOperationListProps[]) =>
155
+ source.length === 0 ? (
156
+ <Typography>No My Filters</Typography>
157
+ ) : (
158
+ <List sx={{ display: "flex", flexDirection: "column", gap: 1 }}>
159
+ {source
160
+ .filter((f) =>
161
+ f.label?.toLowerCase().includes(searchTerm.toLowerCase())
162
+ )
163
+ .map((filter) => (
164
+ <ListItem
165
+ key={filter.value}
166
+ sx={{
167
+ cursor: "pointer",
168
+ borderRadius: "8px",
169
+ bgcolor: "#f2f6f8ff",
170
+ display: "flex",
171
+ justifyContent: "space-between",
172
+ gap: 1,
173
+ alignItems: "center",
174
+ "&:hover .action-icons": {
175
+ opacity: 1,
176
+ visibility: "visible",
177
+ },
178
+ }}
179
+ onClick={() => handleApplyFilter(filter)}
180
+ >
181
+ {filter.value === filterMaster?.saved_filters?.selectedId && (
182
+ <Box sx={{ display: "flex", alignItems: "center" }}>
183
+ <CheckBox />
184
+ </Box>
185
+ )}
186
+
187
+ <ListItemText primary={filter.label} />
188
+
189
+ <Box
190
+ onClick={(e) => e.stopPropagation()}
191
+ className="action-icons"
192
+ sx={{
193
+ display: "flex",
194
+ gap: 1,
195
+ opacity: 0,
196
+ visibility: "hidden",
197
+ transition: "opacity 0.2s ease, visibility 0.2s ease",
198
+ }}
199
+ >
200
+ <IconButton
201
+ size="large"
202
+ onClick={() => handleListItemClick(filter)}
203
+ >
204
+ <EditIcon />
205
+ </IconButton>
206
+
207
+ <IconButton
208
+ size="small"
209
+ onClick={() => {
210
+ setFilterToDelete(filter);
211
+ setDeleteFilterModalOpen?.(true);
212
+ }}
213
+ >
214
+ <DeleteIcon />
215
+ </IconButton>
216
+ </Box>
217
+ </ListItem>
218
+ ))}
219
+ </List>
220
+ );
221
+
222
+ // ----------------------------------------
223
+ // RENDER: SHARED FILTERS
224
+ // ----------------------------------------
225
+ const renderSharedFilters = (source: FilterOperationListProps[]) =>
397
226
  source.length === 0 ? (
398
- <Typography>{emptyMessage}</Typography>
227
+ <Typography>No Shared Filters</Typography>
399
228
  ) : (
400
- <List
401
- sx={{
402
- display: "flex",
403
- flexDirection: "column",
404
- gap: 1,
405
- }}
406
- >
229
+ <List sx={{ display: "flex", flexDirection: "column", gap: 1 }}>
407
230
  {source
408
231
  .filter((f) =>
409
232
  f.label?.toLowerCase().includes(searchTerm.toLowerCase())
@@ -413,11 +236,6 @@ const SavedFilter = ({
413
236
  key={filter.value}
414
237
  sx={{
415
238
  cursor: "pointer",
416
- // border:
417
- // filter.value ===
418
- // tableStates?.filterMaster?.saved_filters?.selectedId
419
- // ? `3px solid #7a5af8`
420
- // : "1px solid #C5C5C5",
421
239
  borderRadius: "8px",
422
240
  bgcolor: "#f2f6f8ff",
423
241
  display: "flex",
@@ -431,8 +249,7 @@ const SavedFilter = ({
431
249
  }}
432
250
  onClick={() => handleApplyFilter(filter)}
433
251
  >
434
- {filter.value ===
435
- tableStates?.filterMaster?.saved_filters?.selectedId && (
252
+ {filter.value === filterMaster?.saved_filters?.selectedId && (
436
253
  <Box sx={{ display: "flex", alignItems: "center" }}>
437
254
  <CheckBox />
438
255
  </Box>
@@ -451,11 +268,7 @@ const SavedFilter = ({
451
268
  transition: "opacity 0.2s ease, visibility 0.2s ease",
452
269
  }}
453
270
  >
454
- {(!isSharedList ||
455
- filter.is_editable === true ||
456
- filter.is_owner === true) && (
457
- // ||
458
- // String(filter.created_by) !== String(filter.user_id))
271
+ {(filter.is_editable || filter.is_owner) && (
459
272
  <IconButton
460
273
  size="large"
461
274
  onClick={() => handleListItemClick(filter)}
@@ -463,7 +276,7 @@ const SavedFilter = ({
463
276
  <EditIcon />
464
277
  </IconButton>
465
278
  )}
466
- {filter?.is_owner === true && (
279
+ {filter.is_owner && (
467
280
  <IconButton
468
281
  size="small"
469
282
  onClick={() => {
@@ -480,17 +293,14 @@ const SavedFilter = ({
480
293
  </List>
481
294
  );
482
295
 
296
+ // ----------------------------------------
297
+ // RENDER MAIN COMPONENT
298
+ // ----------------------------------------
483
299
  return (
484
- <Box
485
- // sx={{
486
- // ...filterStyles.filterMainComponentWrapper,
487
- // ...filterStyles.scrollbarCustom,
488
- // }}
489
- className="saved-filter-component-wrapper"
490
- >
300
+ <Box className="saved-filter-component-wrapper">
491
301
  {!editMode && (
492
302
  <>
493
- {/* Search Box */}
303
+ {/* Search */}
494
304
  <Box sx={{ mb: 2 }}>
495
305
  <CustomSearch
496
306
  value={searchTerm}
@@ -499,7 +309,7 @@ const SavedFilter = ({
499
309
  />
500
310
  </Box>
501
311
 
502
- {/* ---- My Filters Section ---- */}
312
+ {/* ---- My Filters ---- */}
503
313
  <Box
504
314
  sx={{
505
315
  background: "#fff",
@@ -510,7 +320,6 @@ const SavedFilter = ({
510
320
  }}
511
321
  >
512
322
  <Accordion
513
- // defaultExpanded
514
323
  disableGutters
515
324
  elevation={0}
516
325
  expanded={openAccordion === "my"}
@@ -527,17 +336,17 @@ const SavedFilter = ({
527
336
  <AccordionDetails
528
337
  sx={{
529
338
  p: "9px",
530
- maxHeight: "320px",
339
+ maxHeight: "230px",
531
340
  overflowY: "auto",
532
341
  scrollbarWidth: "thin",
533
342
  }}
534
343
  >
535
- {renderList(mappedSavedFilter, false)}
344
+ {renderMyFilters(myFilters)}
536
345
  </AccordionDetails>
537
346
  </Accordion>
538
347
  </Box>
539
348
 
540
- {/* ---- Shared Filters Section ---- */}
349
+ {/* ---- Shared Filters ---- */}
541
350
  <Box
542
351
  sx={{
543
352
  background: "#fff",
@@ -561,16 +370,15 @@ const SavedFilter = ({
561
370
  <Typography fontWeight={600}>Shared Filters</Typography>
562
371
  </AccordionSummary>
563
372
  <Divider sx={{ width: "100%" }} />
564
-
565
373
  <AccordionDetails
566
374
  sx={{
567
375
  p: "9px",
568
- maxHeight: "320px",
376
+ maxHeight: "230px",
569
377
  overflowY: "auto",
570
378
  scrollbarWidth: "thin",
571
379
  }}
572
380
  >
573
- {renderList(mappedSharedFilter, true)}
381
+ {renderSharedFilters(sharedFilters)}
574
382
  </AccordionDetails>
575
383
  </Accordion>
576
384
  </Box>
@@ -598,303 +406,3 @@ const SavedFilter = ({
598
406
  };
599
407
 
600
408
  export default SavedFilter;
601
-
602
- // import { useEffect, useState } from "react";
603
- // import {
604
- // FilterFormComponentProps,
605
- // FilterMasterStateProps,
606
- // } from "../../../types/filter";
607
- // import {
608
- // Accordion,
609
- // AccordionDetails,
610
- // AccordionSummary,
611
- // Box,
612
- // Divider,
613
- // IconButton,
614
- // List,
615
- // ListItem,
616
- // ListItemText,
617
- // Typography,
618
- // } from "@mui/material";
619
- // import CustomSearch from "./search";
620
- // import { DeleteIcon, EditIcon } from "../../../../assets/svg";
621
- // import SavedFilterEditComponent from "./saved-edit-filter";
622
- // import { CheckBox } from "../../../../assets/svg";
623
- // import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
624
-
625
- // const SavedFilter = ({
626
- // columnsData,
627
- // dropdownData,
628
- // tableStates,
629
- // editMode,
630
- // setEditMode,
631
- // setDeleteFilterModalOpen,
632
- // onSaveFilterButtonClick,
633
- // tabValue,
634
- // onChangeFunction,
635
- // filterComponentOptions,
636
- // }: FilterFormComponentProps) => {
637
- // const { filters, filterMaster, setFilterMaster, setFilterToDelete } =
638
- // tableStates;
639
-
640
- // const [searchTerm, setSearchTerm] = useState<string>("");
641
-
642
- // // ------------------------------
643
- // // APPLY FILTER STATE (same logic)
644
- // // ------------------------------
645
- // const applyFilterStates = (filter: any) => {
646
- // const newFilterMaster = {
647
- // ...filterMaster,
648
- // saved_filters: {
649
- // ...(filterMaster?.saved_filters ?? {}),
650
- // selectedId: filter?.value || filter?.id,
651
- // selectedName: filter?.label || filter?.name,
652
- // selectedCode: filter?.code,
653
- // shareWithTeam: filter?.is_shared,
654
- // allowTeamEdit: filter?.is_editable,
655
- // },
656
- // attributes: {
657
- // ...filterMaster?.attributes,
658
- // radio: [],
659
- // },
660
- // activeFilterTabIndex: tabValue,
661
- // } as FilterMasterStateProps;
662
-
663
- // setFilterMaster(newFilterMaster);
664
-
665
- // onChangeFunction &&
666
- // onChangeFunction({
667
- // filterMaster: newFilterMaster,
668
- // filters,
669
- // });
670
- // };
671
-
672
- // const handleListItemClick = (filter: any) => {
673
- // applyFilterStates(filter);
674
- // setEditMode && setEditMode(true);
675
- // setFilterToDelete(filter);
676
- // };
677
-
678
- // const handleApplyFilter = (filter: any) => {
679
- // applyFilterStates(filter);
680
- // };
681
-
682
- // // ============================
683
- // // ⭐ RENDER SAVED FILTER LIST
684
- // // ============================
685
- // const renderSavedFilterList = () => {
686
- // const list = columnsData?.saved_filter ?? [];
687
-
688
- // return list.length === 0 ? (
689
- // <Typography>No saved filters yet.</Typography>
690
- // ) : (
691
- // <List sx={{ display: "flex", flexDirection: "column", gap: 1 }}>
692
- // {list
693
- // .filter((f: any) =>
694
- // f.label?.toLowerCase().includes(searchTerm.toLowerCase())
695
- // )
696
- // .map((filter: any) => (
697
- // <ListItem
698
- // key={filter.value}
699
- // sx={{
700
- // cursor: "pointer",
701
- // borderRadius: "8px",
702
- // bgcolor: "#f2f6f8ff",
703
- // display: "flex",
704
- // justifyContent: "space-between",
705
- // gap: 1,
706
- // alignItems: "center",
707
- // "&:hover .action-icons": {
708
- // opacity: 1,
709
- // visibility: "visible",
710
- // },
711
- // }}
712
- // onClick={() => handleApplyFilter(filter)}
713
- // >
714
- // {filter.value === filterMaster?.saved_filters?.selectedId && (
715
- // <Box sx={{ display: "flex", alignItems: "center" }}>
716
- // <CheckBox />
717
- // </Box>
718
- // )}
719
-
720
- // <ListItemText primary={filter.label} />
721
-
722
- // <Box
723
- // onClick={(e) => e.stopPropagation()}
724
- // className="action-icons"
725
- // sx={{
726
- // display: "flex",
727
- // gap: 1,
728
- // opacity: 0,
729
- // visibility: "hidden",
730
- // transition: "all 0.2s ease",
731
- // }}
732
- // >
733
- // <IconButton
734
- // size="large"
735
- // onClick={() => handleListItemClick(filter)}
736
- // >
737
- // <EditIcon />
738
- // </IconButton>
739
-
740
- // <IconButton
741
- // size="small"
742
- // onClick={() => {
743
- // setFilterToDelete(filter);
744
- // setDeleteFilterModalOpen?.(true);
745
- // }}
746
- // >
747
- // <DeleteIcon />
748
- // </IconButton>
749
- // </Box>
750
- // </ListItem>
751
- // ))}
752
- // </List>
753
- // );
754
- // };
755
-
756
- // // ============================
757
- // // ⭐ RENDER SHARED FILTER LIST
758
- // // ============================
759
- // const renderSharedFilterList = () => {
760
- // const list = columnsData?.shared_filter ?? [];
761
-
762
- // return list.length === 0 ? (
763
- // <Typography>No shared filters yet.</Typography>
764
- // ) : (
765
- // <List sx={{ display: "flex", flexDirection: "column", gap: 1 }}>
766
- // {list
767
- // .filter((f: any) =>
768
- // f.name?.toLowerCase().includes(searchTerm.toLowerCase())
769
- // )
770
- // .map((filter: any) => (
771
- // <ListItem
772
- // key={filter.id}
773
- // sx={{
774
- // cursor: "pointer",
775
- // borderRadius: "8px",
776
- // bgcolor: "#f2f6f8ff",
777
- // display: "flex",
778
- // justifyContent: "space-between",
779
- // gap: 1,
780
- // alignItems: "center",
781
- // }}
782
- // onClick={() =>
783
- // handleApplyFilter({
784
- // id: filter.id,
785
- // value: filter.id,
786
- // name: filter.name,
787
- // label: filter.name,
788
- // code: filter.code,
789
- // })
790
- // }
791
- // >
792
- // {filter.id === filterMaster?.saved_filters?.selectedId && (
793
- // <Box sx={{ display: "flex", alignItems: "center" }}>
794
- // <CheckBox />
795
- // </Box>
796
- // )}
797
-
798
- // <ListItemText primary={filter.name} />
799
- // </ListItem>
800
- // ))}
801
- // </List>
802
- // );
803
- // };
804
-
805
- // return (
806
- // <Box className="saved-filter-component-wrapper">
807
- // {!editMode && (
808
- // <>
809
- // <Box sx={{ mb: 2 }}>
810
- // <CustomSearch
811
- // value={searchTerm}
812
- // onChange={setSearchTerm}
813
- // className="search-input"
814
- // />
815
- // </Box>
816
-
817
- // {/* ---- My Filters ---- */}
818
- // <Box
819
- // sx={{
820
- // background: "#fff",
821
- // borderRadius: "12px",
822
- // border: "1px solid #eee",
823
- // mb: 2,
824
- // overflow: "hidden",
825
- // }}
826
- // >
827
- // <Accordion defaultExpanded disableGutters elevation={0}>
828
- // <AccordionSummary
829
- // expandIcon={<ExpandMoreIcon fontSize="small" />}
830
- // >
831
- // <Typography fontWeight={600}>My Filters</Typography>
832
- // </AccordionSummary>
833
-
834
- // <Divider />
835
- // <AccordionDetails
836
- // sx={{
837
- // p: "9px",
838
- // maxHeight: "320px",
839
- // overflowY: "auto",
840
- // scrollbarWidth: "thin",
841
- // }}
842
- // >
843
- // {renderSavedFilterList()}
844
- // </AccordionDetails>
845
- // </Accordion>
846
- // </Box>
847
-
848
- // {/* ---- Shared Filters ---- */}
849
- // <Box
850
- // sx={{
851
- // background: "#fff",
852
- // borderRadius: "12px",
853
- // border: "1px solid #eee",
854
- // mb: 2,
855
- // overflow: "hidden",
856
- // }}
857
- // >
858
- // <Accordion disableGutters elevation={0}>
859
- // <AccordionSummary
860
- // expandIcon={<ExpandMoreIcon fontSize="small" />}
861
- // >
862
- // <Typography fontWeight={600}>Shared Filters</Typography>
863
- // </AccordionSummary>
864
-
865
- // <Divider />
866
- // <AccordionDetails
867
- // sx={{
868
- // p: "9px",
869
- // maxHeight: "320px",
870
- // overflowY: "auto",
871
- // scrollbarWidth: "thin",
872
- // }}
873
- // >
874
- // {renderSharedFilterList()}
875
- // </AccordionDetails>
876
- // </Accordion>
877
- // </Box>
878
- // </>
879
- // )}
880
-
881
- // {editMode && (
882
- // <SavedFilterEditComponent
883
- // columnsData={columnsData}
884
- // dropdownData={dropdownData}
885
- // tableStates={tableStates}
886
- // editMode={editMode}
887
- // setEditMode={setEditMode}
888
- // searchTerm={searchTerm}
889
- // setSearchTerm={setSearchTerm}
890
- // onSaveFilterButtonClick={onSaveFilterButtonClick}
891
- // setDeleteFilterModalOpen={setDeleteFilterModalOpen}
892
- // onChangeFunction={onChangeFunction}
893
- // filterComponentOptions={filterComponentOptions}
894
- // />
895
- // )}
896
- // </Box>
897
- // );
898
- // };
899
-
900
- // export default SavedFilter;