rez-table-listing-mui 1.3.57 → 1.3.58

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.3.57",
3
+ "version": "1.3.58",
4
4
  "type": "module",
5
5
  "description": "A rez table listing component built on TanStack Table",
6
6
  "main": "dist/index.js",
@@ -76,7 +76,7 @@ const AttributesFilter = ({
76
76
  } else {
77
77
  // Else, replace with new single selection
78
78
  const defaultOperator =
79
- columnsData?.operation_list[matchingColumn.element_type]?.[0]?.value ||
79
+ columnsData?.operation_list[matchingColumn.data_type]?.[0]?.value ||
80
80
  "in";
81
81
 
82
82
  const newFilter = {
@@ -173,7 +173,7 @@ const AttributesFilter = ({
173
173
  }}
174
174
  >
175
175
  {columnsData?.column_list
176
- ?.filter((column) => column.element_type.includes("select"))
176
+ ?.filter((column) => column.data_type.includes("select"))
177
177
  .map((column, index) => (
178
178
  <MenuItem
179
179
  key={index}
@@ -62,15 +62,14 @@ const FilterCriteria = ({
62
62
  const handleAddFilter = (
63
63
  attribute: FilterDataMainFilterEntityWiseCriteriaProps
64
64
  ) => {
65
- const dropdownOptions =
66
- columnsData?.operation_list[attribute?.element_type];
65
+ const dropdownOptions = columnsData?.operation_list[attribute?.data_type];
67
66
 
68
- const defaultValue = attribute.element_type === "multiselect" ? [] : "";
67
+ const defaultValue = attribute.data_type === "multiselect" ? [] : "";
69
68
 
70
69
  const defaultOperator = dropdownOptions?.[0]?.value || "";
71
70
 
72
71
  const matchingDropdownList =
73
- columnsData?.operation_list[attribute.element_type] || [];
72
+ columnsData?.operation_list[attribute.data_type] || [];
74
73
 
75
74
  const newFilter = {
76
75
  filter_attribute: attribute.attribute_key,
@@ -84,7 +83,7 @@ const FilterCriteria = ({
84
83
  // id: attribute?.id,
85
84
  filter_attribute_name: attribute?.name,
86
85
  filter_attribute_data_type:
87
- attribute?.element_type || attribute?.element_type,
86
+ attribute?.data_type || attribute?.element_type,
88
87
  datasource_list: attribute?.datasource_list,
89
88
  dropdown_list: matchingDropdownList,
90
89
  filter_entity_name: selectedFilterEntity?.label,
@@ -8,51 +8,65 @@ const LoginButton = () => {
8
8
  const handleLogin = async () => {
9
9
  setLoading(true);
10
10
  // const api_url = "https://api.eth-qa.rezolut.in/api/enrol/auth";
11
- const api_url = "http://localhost:6010/api/auth";
12
- const email_id = "admin@rezolut.in";
11
+ const api_url = "http://localhost:4011/api/auth";
12
+ const email_id = "shraddha.nandurkar@rezolut.in";
13
13
  const email_otp = "123456";
14
14
  const sub_domain = "universal";
15
15
 
16
16
  setLoading(true);
17
17
 
18
18
  await axios
19
- .post(`${api_url}/sso/otp/generate`, {
20
- identifier: email_id,
21
- service: "email",
19
+ .post(`${api_url}/sso/check-email`, {
20
+ email_id: email_id,
21
+ subdomain: sub_domain,
22
22
  })
23
- .then(async (otpAPIResponse) => {
23
+ .then(async (emailAPIResponse) => {
24
24
  await axios
25
- .post(`${api_url}/verify-otp`, {
25
+ .post(`${api_url}/sso/otp/generate`, {
26
26
  identifier: email_id,
27
27
  service: "email",
28
- reset: true,
29
- otp: "123456",
30
- otp_id: otpAPIResponse.data.otp_id,
31
- fcm_token: "",
32
- subdomain: "platform",
33
28
  })
34
- .then((otpVerifyResponse) => {
35
- const token = otpVerifyResponse.data.accessToken;
29
+ .then(async (otpAPIResponse) => {
30
+ await axios
31
+ .post(`${api_url}/verify-otp`, {
32
+ fcm_token: "",
33
+ identifier: email_id,
34
+ otp: email_otp,
35
+ otp_id: otpAPIResponse.data.otp_id,
36
+ reset: true,
37
+ service: "email",
38
+ subdomain: "universal",
39
+ })
40
+ .then((otpVerifyResponse) => {
41
+ const token = otpVerifyResponse.data.accessToken;
36
42
 
37
- if (token) {
38
- localStorage.setItem("authToken", token);
39
- alert("Login successful");
40
- window.location.reload(); // reload app to re-trigger axios with token
41
- } else {
42
- alert("Token not found in response.");
43
- }
43
+ if (token) {
44
+ localStorage.setItem("authToken", token);
45
+ alert("Login successful");
46
+ window.location.reload(); // reload app to re-trigger axios with token
47
+ } else {
48
+ alert("Token not found in response.");
49
+ }
50
+ })
51
+ .catch((error) => {
52
+ console.error("Login failed:", error);
53
+ alert("Login failed. Check console for details.");
54
+ })
55
+ .finally(() => {
56
+ setLoading(false);
57
+ });
44
58
  })
45
59
  .catch((error) => {
46
- console.error("OTP verification failed:", error);
47
- alert("OTP verification failed. Check console for details.");
60
+ console.error("Login failed:", error);
61
+ alert("Login failed. Check console for details.");
48
62
  })
49
63
  .finally(() => {
50
64
  setLoading(false);
51
65
  });
52
66
  })
53
67
  .catch((error) => {
54
- console.error("OTP generation failed:", error);
55
- alert("OTP generation failed. Check console for details.");
68
+ console.error("Login failed:", error);
69
+ alert("Login failed. Check console for details.");
56
70
  })
57
71
  .finally(() => {
58
72
  setLoading(false);
@@ -15,7 +15,10 @@ import {
15
15
  horizontalListSortingStrategy,
16
16
  SortableContext,
17
17
  } from "@dnd-kit/sortable";
18
- import { getColumnPinningStylesBody } from "../libs/utils/common";
18
+ import {
19
+ getColumnPinningStylesBody,
20
+ getDepthBackground,
21
+ } from "../libs/utils/common";
19
22
  import Checkbox from "./inputs/checkbox";
20
23
 
21
24
  interface TableBodyProps<T> {
@@ -39,7 +42,13 @@ function TableBody<T>({
39
42
 
40
43
  const renderRow = (row: Row<T>) => {
41
44
  const renderedRow = (
42
- <tr key={row.id} className="ts__body__tr">
45
+ <tr
46
+ key={row.id}
47
+ className="ts__body__tr"
48
+ style={{
49
+ backgroundColor: getDepthBackground(row.depth),
50
+ }}
51
+ >
43
52
  {enableRowSelection && (
44
53
  <td
45
54
  className="ts__body__td ts__body__checkbox"
@@ -47,6 +56,7 @@ function TableBody<T>({
47
56
  position: "sticky",
48
57
  left: 0,
49
58
  width: "50px",
59
+ backgroundColor: "inherit",
50
60
  }}
51
61
  >
52
62
  <Checkbox
@@ -66,10 +76,12 @@ function TableBody<T>({
66
76
  width: cell.column.getSize(),
67
77
  ...((wrapColumns.all_wrap || wrapColumns[cell.column.id]) && {
68
78
  wordBreak: "break-all",
79
+ backgroundColor: "inherit",
69
80
  // whiteSpace: "normal",
70
81
  }),
71
82
  } as React.CSSProperties,
72
83
  align: (cell.column.columnDef.meta as align)?.align || "left",
84
+ // backgroundColor: getDepthBackground(row.depth),
73
85
  };
74
86
 
75
87
  return enableColumnReordering ? (
@@ -326,21 +326,13 @@ const Sorting = ({
326
326
  const getCurrentLists = () => {
327
327
  if (sortingTabState?.isDefault) {
328
328
  return {
329
- showList:
330
- columnsData?.map((column: any) => ({
331
- label: column?.name,
332
- value: column?.attribute_key,
333
- })) || [],
329
+ showList: columnsData || [],
334
330
  hideList: columnTabState?.hide_list || [],
335
331
  };
336
332
  } else {
337
333
  const currentTab = sortingTabState?.tabs?.[activeTabIndex || 0];
338
334
  return {
339
- showList:
340
- columnsData?.map((column: any) => ({
341
- label: column?.name,
342
- value: column?.attribute_key,
343
- })) || [],
335
+ showList: columnsData || [],
344
336
  // hideList: currentTab?.hide_list || [],
345
337
  };
346
338
  }
@@ -54,11 +54,11 @@ export function QuickFilterSettings({
54
54
 
55
55
  const hasAPIData = Boolean(Object.entries(columnsData).length);
56
56
  let disbaledCondition =
57
- // quickTabStates?.show_list?.length === 0 || --> commented as per the requirement
58
- columnTabState?.isDefault
57
+ quickTabStates?.show_list?.length === 0 ||
58
+ (columnTabState?.isDefault
59
59
  ? columnTabState?.show_list?.length === 0
60
60
  : columnTabState?.tabs?.find((tab) => tab?.show_list?.length === 0)
61
- ?.show_list?.length === 0;
61
+ ?.show_list?.length === 0);
62
62
 
63
63
  const handleTabChange = (_: React.SyntheticEvent, newValue: number) => {
64
64
  setTabValue(newValue);
@@ -23,7 +23,7 @@ import {
23
23
  viewSettingsDropDown,
24
24
  getOperationList,
25
25
  getLayoutAttributes,
26
- getAttributes,
26
+ getSettingsColumnAttributes,
27
27
  } from "../utils/apiColumn";
28
28
  import {
29
29
  FilterDataMainFilterEntityListProps,
@@ -59,7 +59,7 @@ const entityListingCall = async ({
59
59
  responseStatus: number;
60
60
  data: EntityListingResponse;
61
61
  }> => {
62
- const url = `filter/adm`;
62
+ const url = `filter`;
63
63
 
64
64
  const body = {
65
65
  entity_type,
@@ -113,7 +113,7 @@ export const useEntityTableAPI = ({
113
113
  });
114
114
 
115
115
  return {
116
- tableData: data?.data,
116
+ tableData: data?.data.data,
117
117
  status: data?.responseStatus,
118
118
  isTableDataPending,
119
119
  };
@@ -356,21 +356,13 @@ export const useGetFilterEntityListAndCriteria = ({
356
356
 
357
357
  const filterEntityWiseCriteria = useQuery({
358
358
  queryKey: ["filterEntityWiseCriteria", selectedFilterEntity],
359
- queryFn: () => getAttributes(selectedFilterEntity?.value as string),
359
+ queryFn: () => getFilterCriteriaByEntity(selectedFilterEntity),
360
360
  enabled: !!selectedFilterEntity,
361
361
  });
362
362
 
363
363
  return { filterEntityList, filterEntityWiseCriteria };
364
364
  };
365
365
 
366
- export const useGetAttributes = (entity_type: string) => {
367
- const attributes = useQuery({
368
- queryKey: ["attributes", entity_type],
369
- queryFn: () => getAttributes(entity_type),
370
- });
371
-
372
- return { attributes };
373
- };
374
366
  export const useGetOperationList = () => {
375
367
  // First query to get meta data
376
368
  const operationList = useQuery({
@@ -383,30 +375,30 @@ export const useGetOperationList = () => {
383
375
 
384
376
  export const useGetLayoutAttributes = ({
385
377
  entity_type,
386
- element_type,
378
+ data_type,
387
379
  }: {
388
380
  entity_type: string;
389
- element_type?: string;
381
+ data_type?: string;
390
382
  }) => {
391
383
  // First query to get meta data
392
384
  const layoutAttributes = useQuery({
393
- queryKey: ["layoutAttributes", entity_type, element_type],
385
+ queryKey: ["layoutAttributes", entity_type, data_type],
394
386
  queryFn: () =>
395
387
  getLayoutAttributes({
396
388
  entity_type,
397
- element_type,
389
+ data_type,
398
390
  }),
399
391
  });
400
392
 
401
393
  return { layoutAttributes };
402
394
  };
403
395
 
404
- // export const useGetSettingsColumnAttributes = (entity_type: string) => {
405
- // // First query to get meta data
406
- // const settingsColumnAttributes = useQuery({
407
- // queryKey: ["settingsColumnAttributes", entity_type],
408
- // queryFn: () => getAttributes(entity_type),
409
- // });
396
+ export const useGetSettingsColumnAttributes = (entity_type: string) => {
397
+ // First query to get meta data
398
+ const settingsColumnAttributes = useQuery({
399
+ queryKey: ["settingsColumnAttributes", entity_type],
400
+ queryFn: () => getSettingsColumnAttributes(entity_type),
401
+ });
410
402
 
411
- // return { settingsColumnAttributes };
412
- // };
403
+ return { settingsColumnAttributes };
404
+ };
@@ -175,8 +175,12 @@ export const getFilterCriteriaByEntity = async (
175
175
  ) => {
176
176
  const params = { entity_type: selectedFilterEntity?.value };
177
177
 
178
- const response = await api.get(
179
- `/attribute-master/getAttributes?direct=false&entity_type=${selectedFilterEntity?.value}`
178
+ const response = await api.post(
179
+ `meta/get-filter-data`,
180
+ {},
181
+ {
182
+ params,
183
+ }
180
184
  );
181
185
 
182
186
  return response.data;
@@ -189,13 +193,13 @@ export const getOperationList = async () => {
189
193
 
190
194
  export const getLayoutAttributes = async ({
191
195
  entity_type,
192
- element_type,
196
+ data_type,
193
197
  }: {
194
198
  entity_type: string;
195
- element_type?: string;
199
+ data_type?: string;
196
200
  }) => {
197
201
  const params = {
198
- element_type,
202
+ data_type,
199
203
  };
200
204
  const response = await api.post(
201
205
  `/layout-preference/attributes`,
@@ -205,11 +209,7 @@ export const getLayoutAttributes = async ({
205
209
  return response.data;
206
210
  };
207
211
 
208
- export const getAttributes = async (entity_type: string) => {
209
- const response = await api.get(
210
- `/attribute-master/getAttributes?direct=false&entity_type=${entity_type}`
211
- );
212
- console.log("resss", response);
213
-
212
+ export const getSettingsColumnAttributes = async (entity_type: string) => {
213
+ const response = await api.get(`/attribute-master/getAll/${entity_type}`);
214
214
  return response.data;
215
215
  };
@@ -76,14 +76,20 @@ export function customDebounce<T extends (...args: any[]) => any>(
76
76
  };
77
77
  }
78
78
 
79
+ export const getDepthBackground = (depth: number) => {
80
+ if (depth === 0) return "white";
81
+ const shade = 255 - depth * 8; // reduce brightness per level
82
+ return `rgb(${shade}, ${shade}, ${shade})`;
83
+ };
84
+
79
85
  //ENTITY TYPE
80
- const ENVIRONMENT = "adm_dev";
81
- export const ENTITY_TYPE = "SCH";
86
+ const ENVIRONMENT = "crm_dev";
87
+ export const ENTITY_TYPE = "LEAD";
82
88
  export const MAPPED_ENTITY_TYPE = "LYPR"; // LAP OR LYPR
83
89
  export const USER_ID = 226;
84
90
 
85
91
  const environments = {
86
- adm_dev: "http://localhost:6010/api",
92
+ adm_dev: "http://localhost:4010/api",
87
93
  crm_dev: "http://localhost:4011/api",
88
94
  uat: "https://api.eth-qa.rezolut.in/api/enrol",
89
95
  };
@@ -80,7 +80,7 @@ export interface FilterColumnsListProps {
80
80
  searchable: string | null;
81
81
  attribute_key: string;
82
82
  sort_type: string | null;
83
- element_type: FilterInputDataTypes;
83
+ data_type: FilterInputDataTypes;
84
84
  data_source_type: string | null;
85
85
  datasource_list: any | null;
86
86
  visible: string;
@@ -356,7 +356,7 @@ export interface FilterDataMainFilterEntityWiseCriteriaProps {
356
356
  attribute_key: string;
357
357
  element_type: FilterInputDataTypes;
358
358
  datasource_list: any;
359
- element_type: FilterInputDataTypes;
359
+ data_type: FilterInputDataTypes;
360
360
  }
361
361
 
362
362
  export interface FilterDataProps {
@@ -48,6 +48,7 @@ const SavedFilterModal = ({
48
48
  entity_type: ENTITY_TYPE,
49
49
  selectedFilterEntity,
50
50
  });
51
+
51
52
  useEffect(() => {
52
53
  const data: any = filterEntityList?.data;
53
54
 
@@ -64,7 +65,7 @@ const SavedFilterModal = ({
64
65
  }, [filterEntityList?.data, filterEntityList?.isPending]);
65
66
 
66
67
  useEffect(() => {
67
- const data = filterEntityWiseCriteria?.data;
68
+ const data = filterEntityWiseCriteria?.data?.data?.attribute_list;
68
69
 
69
70
  setFilterData((prev: any) => ({
70
71
  ...prev,
@@ -4,7 +4,6 @@ import { useGetNavigationLayoutAPI } from "../listing/libs/hooks/useGetNavigatio
4
4
  import { ENTITY_TYPE } from "../listing/libs/utils/common";
5
5
  import {
6
6
  useDeleteFilterAPI,
7
- useGetAttributes,
8
7
  useGetFilterEntityListAndCriteria,
9
8
  useSavedFilterAPI,
10
9
  useUpdateFilterAPI,
@@ -71,7 +70,7 @@ const CraftTableFilterWrapper = ({
71
70
  }, [filterEntityList?.data, filterEntityList?.isPending]);
72
71
 
73
72
  useEffect(() => {
74
- const data = filterEntityWiseCriteria?.data;
73
+ const data = filterEntityWiseCriteria?.data?.data?.attribute_list;
75
74
 
76
75
  setFilterData((prev: any) => ({
77
76
  ...prev,
@@ -10,8 +10,11 @@ import { ENTITY_TYPE, MAPPED_ENTITY_TYPE } from "../listing/libs/utils/common";
10
10
  import {
11
11
  useCommonFilterDropdownAPI,
12
12
  useEntityTableAPI,
13
- useGetAttributes,
13
+ useGetFilterEntityListAndCriteria,
14
+ useGetLayoutAttributes,
14
15
  useGetOperationList,
16
+ useGetSettingsColumnAttributes,
17
+ useGetSettingsDataAPI,
15
18
  useSaveSettingsDataAPI,
16
19
  useSettingsDropDownAPI,
17
20
  } from "../listing/libs/hooks/useEntityTableAPI";
@@ -52,17 +55,24 @@ function ListingView() {
52
55
  const { defaultColumns } = useDefaultColumns();
53
56
 
54
57
  const { metaQuery } = useFetchData(ENTITY_TYPE);
55
-
56
58
  const { detailsQuery } = useDetailsQueryAPI(
57
59
  filterMaster?.saved_filters?.selectedId
58
60
  ? filterMaster?.saved_filters?.selectedId
59
61
  : metaQuery?.data?.default_filter?.value
60
62
  );
61
63
  const { saveSettingsDataMutation } = useSaveSettingsDataAPI(ENTITY_TYPE);
64
+ const { settingsColumnAttributes } =
65
+ useGetSettingsColumnAttributes(ENTITY_TYPE);
62
66
  const { operationList } = useGetOperationList();
63
67
 
64
- const { attributes } = useGetAttributes(ENTITY_TYPE);
68
+ const { layoutAttributes: quickTabAttributes } = useGetLayoutAttributes({
69
+ entity_type: ENTITY_TYPE,
70
+ data_type: "select",
71
+ });
65
72
 
73
+ const { layoutAttributes: sortingTabAttributes } = useGetLayoutAttributes({
74
+ entity_type: ENTITY_TYPE,
75
+ });
66
76
  const isColumnDefault =
67
77
  filterSettingStates?.columnTabState?.isDefault || false;
68
78
  const activeTabIndex = filterSettingStates?.columnTabState?.tabs?.findIndex(
@@ -108,58 +118,55 @@ function ListingView() {
108
118
  // ?.filter((col): col is ColumnDef<any> => col !== undefined); // Ensure non-undefined columns are returned
109
119
 
110
120
  // didnt know what above code was doing so rewrote it as below
111
- // const res = showList.map((item: any) => ({
112
- // id: item.value,
113
- // accessorKey: item.value,
114
- // header: item.label,
115
- // }));
116
-
117
- // return res;
118
- return allColumns;
121
+ const res = showList.map((item: any) => ({
122
+ id: item.value,
123
+ accessorKey: item.value,
124
+ header: item.label,
125
+ }));
126
+
127
+ return res;
119
128
  };
120
129
 
121
- setColumns(allColumns);
122
-
123
- // if (
124
- // savedColumnSettings &&
125
- // !savedColumnSettings.isDefault &&
126
- // savedColumnSettings.tabs
127
- // ) {
128
- // // Tab-wise view: find the active tab and use its show_list
129
- // const activeTabSettings = savedColumnSettings.tabs.find(
130
- // (tab) => tab.tab_name?.value == selectedTab.toLowerCase()
131
- // );
132
-
133
- // if (activeTabSettings?.show_list) {
134
- // const visibleColumns = new Set(
135
- // activeTabSettings.show_list.map((c) => c.value)
136
- // );
137
-
138
- // // First, filter columns based on visibleColumns
139
- // const filteredColumns = allColumns.filter((col: any) =>
140
- // visibleColumns.has(col?.accessorKey)
141
- // );
142
- // setColumns(
143
- // getOrderedColumns(activeTabSettings.show_list, filteredColumns)
144
- // );
145
- // } else {
146
- // // Fallback if no specific settings for the active tab are found
147
- // setColumns(allColumns);
148
- // }
149
- // } else if (savedColumnSettings && savedColumnSettings.show_list) {
150
- // // Default view: use the main show_list
151
- // const visibleColumns = new Set(
152
- // savedColumnSettings.show_list.map((c) => c.value)
153
- // );
154
- // const filtered = allColumns.filter((col: any) =>
155
- // visibleColumns.has(col?.accessorKey)
156
- // );
157
-
158
- // setColumns(getOrderedColumns(savedColumnSettings.show_list, filtered));
159
- // } else {
160
- // // No settings found, use all columns
161
- // setColumns(allColumns);
162
- // }
130
+ if (
131
+ savedColumnSettings &&
132
+ !savedColumnSettings.isDefault &&
133
+ savedColumnSettings.tabs
134
+ ) {
135
+ // Tab-wise view: find the active tab and use its show_list
136
+ const activeTabSettings = savedColumnSettings.tabs.find(
137
+ (tab) => tab.tab_name?.value == selectedTab.toLowerCase()
138
+ );
139
+
140
+ if (activeTabSettings?.show_list) {
141
+ const visibleColumns = new Set(
142
+ activeTabSettings.show_list.map((c) => c.value)
143
+ );
144
+
145
+ // First, filter columns based on visibleColumns
146
+ const filteredColumns = allColumns.filter((col: any) =>
147
+ visibleColumns.has(col?.accessorKey)
148
+ );
149
+ setColumns(
150
+ getOrderedColumns(activeTabSettings.show_list, filteredColumns)
151
+ );
152
+ } else {
153
+ // Fallback if no specific settings for the active tab are found
154
+ setColumns(allColumns);
155
+ }
156
+ } else if (savedColumnSettings && savedColumnSettings.show_list) {
157
+ // Default view: use the main show_list
158
+ const visibleColumns = new Set(
159
+ savedColumnSettings.show_list.map((c) => c.value)
160
+ );
161
+ const filtered = allColumns.filter((col: any) =>
162
+ visibleColumns.has(col?.accessorKey)
163
+ );
164
+
165
+ setColumns(getOrderedColumns(savedColumnSettings.show_list, filtered));
166
+ } else {
167
+ // No settings found, use all columns
168
+ setColumns(allColumns);
169
+ }
163
170
  } catch (error) {
164
171
  console.error("Failed to fetch metadata:", error);
165
172
  }
@@ -403,9 +410,6 @@ function ListingView() {
403
410
  queryClient.invalidateQueries({
404
411
  queryKey: ["GET_NAVIGATION_LAYOUT", ENTITY_TYPE],
405
412
  });
406
- queryClient.invalidateQueries({
407
- queryKey: ["meta", ENTITY_TYPE],
408
- });
409
413
  },
410
414
  }
411
415
  );
@@ -537,17 +541,14 @@ function ListingView() {
537
541
  onClose={() => setShowListViewSettings(false)}
538
542
  columnsData={metaQuery.data || {}}
539
543
  columnsDataLoading={metaQuery.isPending}
540
- quickTabAttributes={attributes?.data?.map((item) => ({
541
- label: item.name,
542
- value: item.attribute_key,
543
- }))}
544
- quickTabAttributesLoading={attributes?.data?.isLoading}
545
- columnTabAttributes={attributes?.data?.filter(
544
+ quickTabAttributes={quickTabAttributes?.data}
545
+ quickTabAttributesLoading={quickTabAttributes?.isLoading}
546
+ columnTabAttributes={settingsColumnAttributes?.data?.filter(
546
547
  (item) => item.attribute_key
547
548
  )}
548
- columnAttributesLoading={attributes?.data?.isLoading}
549
- sortingTabAttributes={attributes?.data}
550
- sortingTabAttributesLoading={attributes?.data?.isLoading}
549
+ columnAttributesLoading={settingsColumnAttributes?.isLoading}
550
+ sortingTabAttributes={sortingTabAttributes?.data}
551
+ sortingTabAttributesLoading={sortingTabAttributes?.isLoading}
551
552
  tabsApiData={settingsTabDropdownData || []}
552
553
  tabsApiDataLoading={settingsTabDropdownPending}
553
554
  onSaveSettingsData={handleSaveSettingsData}