rez-table-listing-mui 1.0.48 → 1.0.49

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rez-table-listing-mui",
3
- "version": "1.0.48",
3
+ "version": "1.0.49",
4
4
  "type": "module",
5
5
  "description": "A rez table listing component built on TanStack Table",
6
6
  "main": "dist/index.js",
package/src/App.tsx CHANGED
@@ -31,7 +31,7 @@ function App() {
31
31
  const [columns, setColumns] = useState<any[]>([]);
32
32
  const [searchTerm, setSearchTerm] = useState("");
33
33
  // const [data, setData] = useState<Person[]>(() => makeData(50, 3, 2));
34
- // const [entity_type] = useState(ENTITY_TYPE); //OR UPR BRD
34
+ // const [entity_type] = useState(ENTITY_TYPE); //OR UPR AYR
35
35
 
36
36
  const [selectedTab, setSelectedTab] = useState("ALL");
37
37
 
@@ -45,7 +45,7 @@ function App() {
45
45
 
46
46
  const { defaultColumns } = useDefaultColumns();
47
47
 
48
- const { metaQuery } = useFetchData("BRD");
48
+ const { metaQuery } = useFetchData("AYR");
49
49
  const { detailsQuery } = useDetailsQueryAPI(
50
50
  filterMaster?.saved_filters?.selectedId
51
51
  ? filterMaster?.saved_filters?.selectedId
@@ -55,16 +55,16 @@ function App() {
55
55
  const { savedMutation } = useSavedFilterAPI(); //API CALL FOR SAVED FILTER
56
56
  const { deleteMutation } = useDeleteFilterAPI(); //API FOR DELETING FILTER
57
57
  const { updateMutation } = useUpdateFilterAPI(); //API FOR UPDATE FILTER
58
- const { saveSettingsDataMutation } = useSaveSettingsDataAPI("BRD");
58
+ const { saveSettingsDataMutation } = useSaveSettingsDataAPI("AYR");
59
59
  const { dropdownData } = useCommonDropdownAPI(metaQuery.data);
60
60
  const { settingsTabDropdownData, settingsTabDropdownPending } =
61
61
  useSettingsDropDownAPI({
62
- entity_type: "BRD",
62
+ entity_type: "AYR",
63
63
  column: filterSettingStates?.quickTabStates?.attribute,
64
64
  sort_by: filterSettingStates?.quickTabStates?.sorting,
65
65
  });
66
66
 
67
- const { getSettingsAPIData } = useGetSettingsDataAPI("BRD");
67
+ const { getSettingsAPIData } = useGetSettingsDataAPI("AYR");
68
68
 
69
69
  useEffect(() => {
70
70
  // setTimeout(() => {
@@ -73,7 +73,7 @@ function App() {
73
73
 
74
74
  const fetchMeta = async () => {
75
75
  try {
76
- const { res: allColumns } = await entityTableMetaMaster("BRD");
76
+ const { res: allColumns } = await entityTableMetaMaster("AYR");
77
77
 
78
78
  const savedColumnSettings = filterSettingStates.settingsData?.column;
79
79
 
@@ -91,10 +91,22 @@ function App() {
91
91
  const visibleColumns = new Set(
92
92
  activeTabSettings.show_list.map((c) => c.value)
93
93
  );
94
- const filtered = allColumns.filter((col: any) =>
94
+
95
+ // First, filter columns based on visibleColumns
96
+ const filteredColumns = allColumns.filter((col: any) =>
95
97
  visibleColumns.has(col.accessorKey)
96
98
  );
97
- setColumns(filtered);
99
+
100
+ // Then, order the filtered columns based on the sequence in show_list
101
+ const orderedColumns = activeTabSettings.show_list
102
+ .map((showItem) =>
103
+ filteredColumns.find(
104
+ (col: any) => col.accessorKey === showItem.value
105
+ )
106
+ )
107
+ .filter((col: any) => col !== undefined); // To ensure we filter out any undefined columns
108
+
109
+ setColumns(orderedColumns);
98
110
  } else {
99
111
  // Fallback if no specific settings for the active tab are found
100
112
  setColumns(allColumns);
@@ -134,7 +146,7 @@ function App() {
134
146
  const { tableData } = useEntityTableAPI({
135
147
  page: 0,
136
148
  size: 50,
137
- entity_type: "BRD",
149
+ entity_type: "AYR",
138
150
  tabs: {
139
151
  columnName: "status",
140
152
  sortBy: "ASC",
@@ -213,7 +225,7 @@ function App() {
213
225
  const payload = {
214
226
  name,
215
227
  is_default: false,
216
- mapped_entity_type: "BRD", // For that entity type
228
+ mapped_entity_type: "AYR", // For that entity type
217
229
  status: "ACTIVE",
218
230
  entity_type: "SFM", // FIXED entity type
219
231
  filterDetails: quickFilter,
@@ -237,7 +249,7 @@ function App() {
237
249
  name: filterToDelete?.label,
238
250
  id: filterToDelete?.value,
239
251
  is_default: false,
240
- mapped_entity_type: "BRD",
252
+ mapped_entity_type: "AYR",
241
253
  status: "INACTIVE",
242
254
  entity_type: "SFM",
243
255
  };
@@ -257,7 +269,7 @@ function App() {
257
269
  name: filterMaster?.saved_filters?.selectedName, // Name of the filter
258
270
  is_default: false,
259
271
  id: filterMaster?.saved_filters?.selectedId,
260
- mapped_entity_type: "BRD",
272
+ mapped_entity_type: "AYR",
261
273
  status: "ACTIVE",
262
274
  entity_type: "SFM",
263
275
  filterDetails: quickFilter,
@@ -269,7 +281,7 @@ function App() {
269
281
  const handleSaveSettingsData = (settingsData: SettingsDataProps) => {
270
282
  const payload = {
271
283
  entity_type: "LAP",
272
- mapped_entity_type: "BRD",
284
+ mapped_entity_type: "AYR",
273
285
  layout_json: settingsData,
274
286
  };
275
287
 
@@ -18,121 +18,81 @@ const FormDatePicker = ({
18
18
  filter,
19
19
  control,
20
20
  sx,
21
- views = ["day", "month", "year"], // default to full date picker
21
+ views = ["day", "month", "year"],
22
22
  onValueChange,
23
23
  }: FormDatePickerProps) => {
24
24
  return (
25
25
  <Controller
26
- name={`${filter?.name}.value`} // Use consistent field structure
26
+ name={`${filter?.name}.value`}
27
27
  control={control}
28
- defaultValue={
29
- filter.filter_value
30
- ? moment(filter.filter_value, "DD-MM-YYYY").toDate()
31
- : null
32
- }
33
- render={({ field }) => (
34
- <LocalizationProvider dateAdapter={AdapterDateFns}>
35
- <DatePicker
36
- {...field}
37
- views={views}
38
- value={
39
- field.value ? moment(field.value, "DD-MM-YYYY").toDate() : null
40
- }
41
- onChange={(date) => {
42
- let formatted = "";
43
- if (date) {
44
- if (views?.length === 1 && views[0] === "year") {
45
- formatted = moment(date).format("YYYY");
46
- } else {
47
- formatted = moment(date).format("DD-MM-YYYY");
48
- }
49
- }
50
- field.onChange(formatted);
51
- onValueChange?.();
52
- }}
53
- format={
54
- views?.length === 1 && views[0] === "year" ? "yyyy" : "dd-MM-yyyy"
55
- }
56
- sx={{
57
- "& .MuiOutlinedInput-input": {
58
- padding: "12px 20px",
59
- },
60
- ...sx,
61
- }}
62
- slotProps={{
63
- textField: {
64
- size: "small",
65
- fullWidth: true,
66
- placeholder:
67
- views?.length === 1 && views[0] === "year"
68
- ? "YYYY"
69
- : "DD-MM-YYYY",
70
- },
71
- }}
72
- />
73
- </LocalizationProvider>
74
- )}
28
+ defaultValue={filter.filter_value || ""}
29
+ render={({ field }) => {
30
+ const isYearOnly = views.length === 1 && views[0] === "year";
31
+ // Convert string year (e.g., "2025") to Date for DatePicker, or null if empty
32
+ const displayValue = isYearOnly
33
+ ? field.value
34
+ ? new Date(Number(field.value), 0, 1)
35
+ : null
36
+ : field.value
37
+ ? moment(field.value, "DD-MM-YYYY").toDate()
38
+ : null;
39
+
40
+ return (
41
+ <LocalizationProvider dateAdapter={AdapterDateFns}>
42
+ <DatePicker
43
+ views={views}
44
+ value={displayValue}
45
+ onChange={(date) => {
46
+ // Handle picker selection or typed input
47
+ const formatted = date
48
+ ? isYearOnly
49
+ ? moment(date).format("YYYY")
50
+ : moment(date).format("DD-MM-YYYY")
51
+ : "";
52
+ field.onChange(formatted);
53
+ onValueChange?.();
54
+ }}
55
+ format={isYearOnly ? "yyyy" : "dd-MM-yyyy"}
56
+ sx={{
57
+ "& .MuiOutlinedInput-input": {
58
+ padding: "8.5px 14px",
59
+ fontSize: "14px",
60
+ color: "#000",
61
+ },
62
+ "& .MuiInputBase-root": {
63
+ bgcolor: "white",
64
+ },
65
+ ...sx,
66
+ }}
67
+ slotProps={{
68
+ textField: {
69
+ size: "small",
70
+ fullWidth: true,
71
+ placeholder: isYearOnly ? "YYYY" : "DD-MM-YYYY",
72
+ inputProps: isYearOnly
73
+ ? {
74
+ maxLength: 4, // Limit to 4 digits
75
+ inputMode: "numeric", // Optimize for numeric input
76
+ pattern: "[0-9]*", // Restrict to numbers
77
+ }
78
+ : undefined,
79
+ onBlur: () => {
80
+ if (isYearOnly) {
81
+ const value = field.value;
82
+ if (value && !/^\d{4}$/.test(value)) {
83
+ field.onChange("");
84
+ onValueChange?.();
85
+ }
86
+ }
87
+ },
88
+ },
89
+ }}
90
+ />
91
+ </LocalizationProvider>
92
+ );
93
+ }}
75
94
  />
76
95
  );
77
96
  };
78
97
 
79
98
  export default FormDatePicker;
80
-
81
- // import { Controller } from "react-hook-form";
82
- // import { LocalizationProvider } from "@mui/x-date-pickers/LocalizationProvider";
83
- // import { DatePicker } from "@mui/x-date-pickers/DatePicker";
84
- // import { AdapterDateFns } from "@mui/x-date-pickers/AdapterDateFns";
85
- // import moment from "moment";
86
- // import { UpdatedFilterStateProps } from "../../../../../types/filter";
87
- // import { SxProps, Theme } from "@mui/material";
88
-
89
- // const FormDatePicker = ({
90
- // filter,
91
- // control,
92
- // sx,
93
- // }: {
94
- // filter: UpdatedFilterStateProps;
95
- // control: any;
96
- // sx?: SxProps<Theme>;
97
- // }) => {
98
- // return (
99
- // <Controller
100
- // name={`${filter?.name}.value`} // or use a consistent structure like `filters.${index}.filter_value`
101
- // control={control}
102
- // defaultValue={
103
- // filter.filter_value
104
- // ? moment(filter.filter_value, "DD-MM-YYYY").toDate()
105
- // : null
106
- // }
107
- // render={({ field }) => (
108
- // <LocalizationProvider dateAdapter={AdapterDateFns}>
109
- // <DatePicker
110
- // sx={{
111
- // "& .MuiOutlinedInput-input": {
112
- // padding: "12px 20px",
113
- // },
114
- // }}
115
- // {...field}
116
- // value={
117
- // field.value ? moment(field.value, "DD-MM-YYYY").toDate() : null
118
- // }
119
- // onChange={(date) => {
120
- // const formatted = date ? moment(date).format("DD-MM-YYYY") : "";
121
- // field.onChange(formatted);
122
- // }}
123
- // format="dd-MM-yyyy"
124
- // slotProps={{
125
- // textField: {
126
- // size: "small",
127
- // fullWidth: true,
128
- // placeholder: "DD-MM-YYYY",
129
- // },
130
- // }}
131
- // />
132
- // </LocalizationProvider>
133
- // )}
134
- // />
135
- // );
136
- // };
137
-
138
- // export default FormDatePicker;
@@ -45,8 +45,8 @@ const FilterCriteria = ({
45
45
  },
46
46
  }));
47
47
 
48
- const [showFilterOptions, setShowFilterOption] = useState(false);
49
- const { filters, setFilters } = tableStates;
48
+ const { filters, setFilters, showFilterOptions, setShowFilterOption } =
49
+ tableStates;
50
50
 
51
51
  const filterButtonRef = useRef<HTMLButtonElement>(null);
52
52
 
@@ -41,6 +41,8 @@ const FilterForm = ({
41
41
  dropdownData,
42
42
  searchTerm = "",
43
43
  setSearchTerm,
44
+ criteriaSearchTerm = "",
45
+ setCriteriaSearchTerm,
44
46
  selectedFilters,
45
47
  setSelectedFilters,
46
48
  handleRemoveFilter,
@@ -53,6 +55,8 @@ const FilterForm = ({
53
55
  dropdownData: FilterDropdownDataProps;
54
56
  searchTerm?: string;
55
57
  setSearchTerm: React.Dispatch<React.SetStateAction<string>>;
58
+ criteriaSearchTerm?: string;
59
+ setCriteriaSearchTerm: React.Dispatch<React.SetStateAction<string>>;
56
60
  selectedFilters: UpdatedFilterStateProps[];
57
61
  setSelectedFilters: React.Dispatch<
58
62
  React.SetStateAction<UpdatedFilterStateProps[]>
@@ -91,7 +95,7 @@ const FilterForm = ({
91
95
  control,
92
96
  watch,
93
97
  reset,
94
- formState: { isDirty },
98
+ // formState: { isDirty },
95
99
  setValue,
96
100
  unregister,
97
101
  } = useForm<FormValues & { dummyChange: string }>({
@@ -231,8 +235,8 @@ const FilterForm = ({
231
235
  columnsData={columnsData}
232
236
  tableStates={tableStates}
233
237
  setSelectedFilters={setSelectedFilters}
234
- searchTerm={searchTerm}
235
- setSearchTerm={setSearchTerm}
238
+ searchTerm={criteriaSearchTerm}
239
+ setSearchTerm={setCriteriaSearchTerm}
236
240
  />
237
241
 
238
242
  {!editMode && (
@@ -315,7 +319,7 @@ const FilterForm = ({
315
319
  onValueChange={updateFiltersFromForm}
316
320
  />
317
321
  ) : filter.data_type === "select" ? (
318
- <FormSelect
322
+ <FormMultiSelect
319
323
  filter={filter}
320
324
  control={control}
321
325
  dropdownData={dropdownData}
@@ -362,7 +366,7 @@ const FilterForm = ({
362
366
  <Button
363
367
  variant="contained"
364
368
  fullWidth
365
- disabled={!isDirty && editMode}
369
+ // disabled={!isDirty && editMode}
366
370
  sx={{
367
371
  color: "white",
368
372
  backgroundColor: "#7A5AF8",
@@ -16,6 +16,7 @@ const MainFilter = ({
16
16
  setSavedFilterModalOpen,
17
17
  }: FilterFormComponentProps) => {
18
18
  const [searchTerm, setSearchTerm] = useState<string>("");
19
+ const [criteriaSearchTerm, setCriteriaSearchTerm] = useState<string>("");
19
20
 
20
21
  const { setFilters, setFilterMaster } = tableStates;
21
22
 
@@ -52,6 +53,8 @@ const MainFilter = ({
52
53
  columnsData={columnsData}
53
54
  searchTerm={searchTerm}
54
55
  setSearchTerm={setSearchTerm}
56
+ criteriaSearchTerm={criteriaSearchTerm}
57
+ setCriteriaSearchTerm={setCriteriaSearchTerm}
55
58
  selectedFilters={selectedFilters}
56
59
  setSelectedFilters={setSelectedFilters}
57
60
  handleRemoveFilter={handleRemoveFilter}
@@ -19,6 +19,8 @@ const SavedFilterEditComponent = ({
19
19
  setEditMode,
20
20
  searchTerm,
21
21
  setSearchTerm,
22
+ criteriaSearchTerm,
23
+ setCriteriaSearchTerm,
22
24
  setSavedFilterModalOpen,
23
25
  setDeleteFilterModalOpen,
24
26
  }: {
@@ -33,6 +35,8 @@ const SavedFilterEditComponent = ({
33
35
  setEditMode?: React.Dispatch<React.SetStateAction<boolean>>;
34
36
  searchTerm?: string;
35
37
  setSearchTerm: React.Dispatch<React.SetStateAction<string>>;
38
+ criteriaSearchTerm?: string;
39
+ setCriteriaSearchTerm: React.Dispatch<React.SetStateAction<string>>;
36
40
  setSavedFilterModalOpen?: React.Dispatch<React.SetStateAction<boolean>>;
37
41
  setDeleteFilterModalOpen?: React.Dispatch<React.SetStateAction<boolean>>;
38
42
  }) => {
@@ -95,6 +99,8 @@ const SavedFilterEditComponent = ({
95
99
  dropdownData={dropdownData}
96
100
  searchTerm={searchTerm}
97
101
  setSearchTerm={setSearchTerm}
102
+ criteriaSearchTerm={criteriaSearchTerm}
103
+ setCriteriaSearchTerm={setCriteriaSearchTerm}
98
104
  setSavedFilterModalOpen={setSavedFilterModalOpen}
99
105
  setDeleteFilterModalOpen={setDeleteFilterModalOpen}
100
106
  />
@@ -31,6 +31,7 @@ const SavedFilter = ({
31
31
  }: FilterFormComponentProps) => {
32
32
  const { setFilterMaster, setFilterToDelete } = tableStates;
33
33
  const [searchTerm, setSearchTerm] = useState<string>("");
34
+ const [criteriaSearchTerm, setCriteriaSearchTerm] = useState<string>("");
34
35
 
35
36
  // reset savedFilterEditValue when component unmounts
36
37
  useEffect(() => {
@@ -149,6 +150,8 @@ const SavedFilter = ({
149
150
  setEditMode={setEditMode}
150
151
  searchTerm={searchTerm}
151
152
  setSearchTerm={setSearchTerm}
153
+ criteriaSearchTerm={criteriaSearchTerm}
154
+ setCriteriaSearchTerm={setCriteriaSearchTerm}
152
155
  setSavedFilterModalOpen={setSavedFilterModalOpen}
153
156
  setDeleteFilterModalOpen={setDeleteFilterModalOpen}
154
157
  />
@@ -1,6 +1,7 @@
1
1
  import React, { useState } from "react";
2
- import { TextField, InputAdornment } from "@mui/material";
2
+ import { TextField, InputAdornment, IconButton } from "@mui/material";
3
3
  import SearchIcon from "@mui/icons-material/Search";
4
+ import { CloseIcon } from "../../../../assets/svg";
4
5
 
5
6
  interface SearchInputProps {
6
7
  value: string;
@@ -22,6 +23,11 @@ const CustomSearch = ({
22
23
  onChange?.(val);
23
24
  };
24
25
 
26
+ const handleClear = () => {
27
+ setSearch(""); // Clear the search value
28
+ onChange?.(""); // Propagate the cleared value
29
+ };
30
+
25
31
  return (
26
32
  <TextField
27
33
  fullWidth
@@ -39,6 +45,17 @@ const CustomSearch = ({
39
45
  />
40
46
  </InputAdornment>
41
47
  ),
48
+ endAdornment: search && ( // Show the clear icon only when there's a value
49
+ <InputAdornment position="end">
50
+ <IconButton
51
+ edge="end"
52
+ onClick={handleClear}
53
+ sx={{ color: "#888888", fontSize: "20px" }}
54
+ >
55
+ <CloseIcon />
56
+ </IconButton>
57
+ </InputAdornment>
58
+ ),
42
59
  }}
43
60
  sx={{
44
61
  "& .MuiOutlinedInput-root": {
@@ -36,8 +36,14 @@ export function TableFilter({
36
36
 
37
37
  const [searchTerm, setSearchTerm] = useState<string>("");
38
38
 
39
- const { filters, setFilters, filterToDelete, filterMaster, setFilterMaster } =
40
- tableStates;
39
+ const {
40
+ filters,
41
+ setFilters,
42
+ filterToDelete,
43
+ filterMaster,
44
+ setFilterMaster,
45
+ setShowFilterOption,
46
+ } = tableStates;
41
47
 
42
48
  const filterNameInput: InputField = {
43
49
  label: "Filter Name",
@@ -137,6 +143,7 @@ export function TableFilter({
137
143
  onClick={(e) => {
138
144
  e.stopPropagation();
139
145
  onClose && onClose();
146
+ setShowFilterOption(false);
140
147
  }}
141
148
  aria-label="close"
142
149
  >
@@ -256,11 +263,19 @@ export function TableFilter({
256
263
  },
257
264
  {
258
265
  label: "Delete",
259
-
260
266
  onClick: () => {
261
267
  onDeleteFilter && onDeleteFilter();
262
268
  setDeleteFilterModalOpen(false);
263
269
  setEditMode && setEditMode(false);
270
+ setSelectedFilters([]);
271
+ setFilters([]);
272
+ setFilterMaster(
273
+ (prev) =>
274
+ ({
275
+ ...prev,
276
+ activeFilterTabIndex: -1,
277
+ } as FilterMasterStateProps)
278
+ );
264
279
  },
265
280
  variant: "contained",
266
281
  sx: {
@@ -26,8 +26,40 @@ interface ListingValuesProps {
26
26
  containerId: string;
27
27
  tabsApiDataLoading?: boolean;
28
28
  onItemToggle: (itemId: string, fromContainerId: string) => void;
29
+ enableDragAndDrop?: boolean;
29
30
  }
30
31
 
32
+ const ListingValuesContent = ({
33
+ item,
34
+ containerId,
35
+ onItemToggle,
36
+ }: {
37
+ item: FilterValue;
38
+ containerId: string;
39
+ onItemToggle: (itemId: string, fromContainerId: string) => void;
40
+ }) => {
41
+ return (
42
+ <Box
43
+ sx={{
44
+ display: "flex",
45
+ alignItems: "center",
46
+ justifyContent: "space-between",
47
+ gap: 1,
48
+ flex: 1,
49
+ color: containerId === "tabs" ? "black" : "#9e9d9b",
50
+ }}
51
+ >
52
+ <Typography>{item.label}</Typography>
53
+ <IconButton
54
+ size="small"
55
+ onClick={() => onItemToggle(item.id, containerId)}
56
+ >
57
+ {containerId === "tabs" ? <EyeIcon /> : <ClosedEyeIcon />}
58
+ </IconButton>
59
+ </Box>
60
+ );
61
+ };
62
+
31
63
  const ListingValues = ({
32
64
  filteredValues,
33
65
  buttonText,
@@ -38,6 +70,7 @@ const ListingValues = ({
38
70
  containerId,
39
71
  tabsApiDataLoading,
40
72
  onItemToggle,
73
+ enableDragAndDrop = true,
41
74
  }: ListingValuesProps) => {
42
75
  const { setNodeRef } = useDroppable({
43
76
  id: containerId,
@@ -73,39 +106,39 @@ const ListingValues = ({
73
106
  )}
74
107
 
75
108
  <Box ref={setNodeRef} sx={listingValuesStyles.draggableContainer}>
76
- <SortableContext
77
- items={filteredValues.map((item) => item.id)}
78
- strategy={verticalListSortingStrategy}
79
- >
109
+ {enableDragAndDrop ? (
110
+ <SortableContext
111
+ items={filteredValues.map((item) => item.id)}
112
+ strategy={verticalListSortingStrategy}
113
+ >
114
+ <Box sx={listingValuesStyles.draggableCover}>
115
+ {filteredValues.map((item) => (
116
+ <DraggableListItem
117
+ key={item.id}
118
+ id={item.id}
119
+ containerId={containerId}
120
+ >
121
+ <ListingValuesContent
122
+ item={item}
123
+ containerId={containerId}
124
+ onItemToggle={onItemToggle}
125
+ />
126
+ </DraggableListItem>
127
+ ))}
128
+ </Box>
129
+ </SortableContext>
130
+ ) : (
80
131
  <Box sx={listingValuesStyles.draggableCover}>
81
132
  {filteredValues.map((item) => (
82
- <DraggableListItem
133
+ <ListingValuesContent
83
134
  key={item.id}
84
- id={item.id}
135
+ item={item}
85
136
  containerId={containerId}
86
- >
87
- <Box
88
- sx={{
89
- display: "flex",
90
- alignItems: "center",
91
- flex: 1,
92
- color: containerId === "tabs" ? "black" : "#9e9d9b",
93
- }}
94
- >
95
- <Typography>{item.label}</Typography>
96
- </Box>
97
-
98
- {/* on click i want to append this item in the show list and remove it from the hide list */}
99
- <IconButton
100
- size="small"
101
- onClick={() => onItemToggle(item.id, containerId)}
102
- >
103
- {containerId === "tabs" ? <EyeIcon /> : <ClosedEyeIcon />}
104
- </IconButton>
105
- </DraggableListItem>
137
+ onItemToggle={onItemToggle}
138
+ />
106
139
  ))}
107
140
  </Box>
108
- </SortableContext>
141
+ )}
109
142
  </Box>
110
143
  </Box>
111
144
  )}
@@ -16,7 +16,6 @@ import { craftTableFilterSettingsOptionsProps } from "../../../types/table-optio
16
16
  import CustomToggleSwitchButton from "./toggle-button-switch";
17
17
  import { FilterColumnsDataProps } from "../../../types/filter";
18
18
  import { TOGGLE_BUTTON_TABS } from "../constants";
19
- import { ColumnTabConfigProps } from "../../../types/filter-settings";
20
19
  import CustomTabs from "../tabs/horizontal";
21
20
 
22
21
  export interface ColumnItem {
@@ -39,14 +38,8 @@ const ColumnTab = ({ filterSettingStates, columnsData }: ColumnTabProps) => {
39
38
  const [searchTerm, setSearchTerm] = useState<string>("");
40
39
  const [selectedTabIndex, setSelectedTabIndex] = useState<number>(0);
41
40
 
42
- const {
43
- quickTabStates,
44
- columnTabState,
45
- setColumnTabState,
46
- settingsData,
47
- sortingTabState,
48
- setSortingTabState,
49
- } = filterSettingStates;
41
+ const { quickTabStates, columnTabState, setColumnTabState, settingsData } =
42
+ filterSettingStates;
50
43
 
51
44
  useEffect(() => {
52
45
  const mappedColumns: ColumnItem[] =