Skip to content

Commit 42ee1df

Browse files
fix: [Roles] Added roles for the entity are not displayed (Issue #2132 #2134) (#2144)
1 parent aae4903 commit 42ee1df

File tree

4 files changed

+46
-36
lines changed

4 files changed

+46
-36
lines changed

apps/ai-dial-admin/src/components/Common/DraggableItem/DraggableItem.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { BASE_BUTTON_ICON_PROPS } from '@/src/constants/main-layout';
99
interface Props {
1010
children: ReactNode;
1111
id: string;
12-
findItem?: (field: string) => number;
12+
findItem?: (field: string) => number | undefined;
1313
moveItem?: (field: string, atIndex: number) => void;
1414
}
1515

apps/ai-dial-admin/src/components/Grid/AgGridWrapper.tsx

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -128,27 +128,33 @@ const AgGridWrapper = <T extends object>({
128128

129129
const onGridReady = (event: GridReadyEvent) => {
130130
setGridApi(event.api);
131-
gridReadyCb?.(event);
131+
132132
event.api.sizeColumnsToFit();
133133

134-
const defaultSorts =
135-
columnDefs
136-
?.filter((col) => col.sort)
137-
.map(
138-
(col) =>
139-
({
140-
colId: col.field,
141-
sort: col.sort,
142-
}) as ColumnState,
143-
) || [];
144-
const columns = columnDefs?.map((col) => ({ ...col, sort: undefined }));
145-
event.api?.updateGridOptions({ columnDefs: columns, rowData });
146-
setGridColumnsState(event, defaultSorts);
134+
if (columnDefs) {
135+
const defaultSorts =
136+
columnDefs
137+
?.filter((col) => col.sort)
138+
.map(
139+
(col) =>
140+
({
141+
colId: col.field,
142+
sort: col.sort,
143+
}) as ColumnState,
144+
) || [];
145+
const columns = columnDefs?.map((col) => ({ ...col, sort: undefined }));
146+
event.api?.updateGridOptions({ columnDefs: columns, rowData });
147+
setGridColumnsState(event, defaultSorts);
148+
}
149+
150+
gridReadyCb?.(event);
147151
};
148152

149153
useEffect(() => {
150-
const columns = columnDefs?.map((col) => ({ ...col, sort: undefined }));
151-
gridApi?.updateGridOptions({ columnDefs: columns, rowData });
154+
if (columnDefs) {
155+
const columns = columnDefs?.map((col) => ({ ...col, sort: undefined }));
156+
gridApi?.updateGridOptions({ columnDefs: columns, rowData });
157+
}
152158
}, [columnDefs, gridApi, rowData]);
153159

154160
const tooltipRenderer = (params: { value: string }) => {

apps/ai-dial-admin/src/components/Grid/ColumnsPanel/ColumnsPanel.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ import { ColDef } from 'ag-grid-community';
55
import { FC, useCallback, useRef } from 'react';
66
import { useDrop } from 'react-dnd';
77

8+
import CloseButton from '@/src/components/Common/CloseButton/CloseButton';
89
import DraggableItem from '@/src/components/Common/DraggableItem/DraggableItem';
10+
import { COLUMN_PANEL_PREFIX } from '@/src/constants/grid-columns/grid-columns';
911
import { ButtonsI18nKey } from '@/src/constants/i18n';
10-
import CloseButton from '@/src/components/Common/CloseButton/CloseButton';
1112
import { useI18n } from '@/src/locales/client';
12-
import { COLUMN_PANEL_PREFIX } from '@/src/constants/grid-columns/grid-columns';
1313

1414
interface Props {
1515
columns: ColDef[];
@@ -18,7 +18,7 @@ interface Props {
1818
onReset: () => void;
1919
toggleColumnsPanel?: () => void;
2020
toggleColumnVisibility: (id?: string) => void;
21-
onFind?: (field: string) => number;
21+
onFind?: (field: string) => number | undefined;
2222
onMove?: (field: string, atIndex: number) => void;
2323
}
2424

apps/ai-dial-admin/src/components/Grid/GridView/GridView.tsx

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ const GridView = <T extends object>({
4343
);
4444
const isMobile = useIsMobileScreen();
4545
const isTablet = useIsOnlyTabletScreen();
46-
const [currentColDefs, setCurrentColDefs] = useState<ColDef[]>([]);
46+
const [currentColDefs, setCurrentColDefs] = useState<ColDef[] | undefined>(undefined);
4747
const [showResetButton, setShowResetButton] = useState(false);
4848
const [panelContainerClassName, setPanelContainerClassName] = useState(staticPanelContainerClassName);
4949
const [panelClassName, setPanelClassName] = useState(staticPanelClassName);
@@ -59,7 +59,7 @@ const GridView = <T extends object>({
5959
);
6060

6161
useEffect(() => {
62-
if (currentColDefs == null || currentColDefs.length === 0) {
62+
if ((currentColDefs == null || currentColDefs.length === 0) && columnDefs) {
6363
const storageColumns = storageKey ? getColumnVisibilityFromStorage(columnDefs, storageKey) : null;
6464
setCurrentColDefs(
6565
!(storageColumns && columnDefs && columnDefs.length > storageColumns?.length)
@@ -88,12 +88,14 @@ const GridView = <T extends object>({
8888

8989
const toggleColumnVisibility = useCallback(
9090
(id?: string) => {
91-
const newColDefs = currentColDefs.map((c) => (c.field === id ? { ...c, hide: !c.hide } : c));
92-
setCurrentColDefs(newColDefs);
93-
if (storageKey) {
94-
saveColumnVisibilityToStorage(newColDefs, storageKey);
91+
if (currentColDefs) {
92+
const newColDefs = currentColDefs?.map((c) => (c.field === id ? { ...c, hide: !c.hide } : c));
93+
setCurrentColDefs(newColDefs);
94+
if (storageKey) {
95+
saveColumnVisibilityToStorage(newColDefs, storageKey);
96+
}
97+
setShowResetButton(newColDefs.some((c, index) => c.hide !== columnDefs?.[index].hide));
9598
}
96-
setShowResetButton(newColDefs.some((c, index) => c.hide !== columnDefs?.[index].hide));
9799
},
98100
[currentColDefs, columnDefs, storageKey],
99101
);
@@ -108,21 +110,23 @@ const GridView = <T extends object>({
108110
};
109111

110112
const onFindColumn = useCallback(
111-
(field?: string) => currentColDefs.findIndex((c) => c.field === field),
113+
(field?: string) => currentColDefs?.findIndex((c) => c.field === field),
112114
[currentColDefs],
113115
);
114116

115117
const onMoveColumn = useCallback(
116118
(field: string, atIndex: number) => {
117119
const index = onFindColumn(field);
118-
const updatedColDefs = [...currentColDefs];
119-
const [removedColDef] = updatedColDefs.splice(index, 1);
120-
updatedColDefs.splice(atIndex, 0, removedColDef);
121-
if (storageKey) {
122-
saveColumnVisibilityToStorage(updatedColDefs, storageKey);
120+
if (index) {
121+
const updatedColDefs = [...(currentColDefs || [])];
122+
const [removedColDef] = updatedColDefs.splice(index, 1);
123+
updatedColDefs.splice(atIndex, 0, removedColDef);
124+
if (storageKey) {
125+
saveColumnVisibilityToStorage(updatedColDefs, storageKey);
126+
}
127+
setCurrentColDefs(updatedColDefs);
128+
setShowResetButton(checkColDefsChanges(updatedColDefs, columnDefs || []));
123129
}
124-
setCurrentColDefs(updatedColDefs);
125-
setShowResetButton(checkColDefsChanges(updatedColDefs, columnDefs || []));
126130
},
127131
[onFindColumn, currentColDefs, setShowResetButton, columnDefs, storageKey],
128132
);
@@ -144,7 +148,7 @@ const GridView = <T extends object>({
144148
<div className={panelContainerClassName}>
145149
<DndProvider backend={HTML5Backend}>
146150
<ColumnsPanel
147-
columns={currentColDefs}
151+
columns={currentColDefs || []}
148152
showResetButton={showResetButton}
149153
panelClassName={panelClassName}
150154
onReset={onResetToDefault}

0 commit comments

Comments
 (0)