@@ -9,10 +9,13 @@ import { IntlShape } from 'react-intl';
9
9
import { UUID } from 'crypto' ;
10
10
import { AgGridReact } from 'ag-grid-react' ;
11
11
import React from 'react' ;
12
- import { ColDef } from 'ag-grid-community' ;
12
+ import { ColDef , IRowNode } from 'ag-grid-community' ;
13
13
import { NameCellRenderer } from './renderers/name-cell-renderer' ;
14
14
import { DescriptionCellRenderer } from './renderers/description-cell-renderer' ;
15
- import { TypeCellRenderer } from './renderers/type-cell-renderer' ;
15
+ import {
16
+ TypeCellRenderer ,
17
+ getElementTypeTranslation ,
18
+ } from './renderers/type-cell-renderer' ;
16
19
import { UserCellRenderer } from './renderers/user-cell-renderer' ;
17
20
import { DateCellRenderer } from './renderers/date-cell-renderer' ;
18
21
import type { ElementAttributes } from '@gridsuite/commons-ui' ;
@@ -83,6 +86,7 @@ export const getColumnsDefinition = (
83
86
field : 'description' ,
84
87
cellRenderer : DescriptionCellRenderer ,
85
88
flex : 1.1 ,
89
+ sortable : false ,
86
90
} ,
87
91
{
88
92
headerName : intl . formatMessage ( {
@@ -94,6 +98,39 @@ export const getColumnsDefinition = (
94
98
childrenMetadata : childrenMetadata ,
95
99
} ,
96
100
flex : 2 ,
101
+ comparator : (
102
+ valueA : string ,
103
+ valueB : string ,
104
+ nodeA : IRowNode < ElementAttributes > ,
105
+ nodeB : IRowNode < ElementAttributes >
106
+ ) => {
107
+ const getTranslatedOrOriginalValue = (
108
+ node : IRowNode < ElementAttributes >
109
+ ) : string => {
110
+ const { type, elementUuid } = node . data ?? { } ;
111
+ if ( ! type ) {
112
+ return '' ;
113
+ }
114
+
115
+ const metaData = elementUuid
116
+ ? childrenMetadata [ elementUuid ] ?. specificMetadata
117
+ : null ;
118
+ const subtype = metaData ?. type ?. toString ( ) ?? null ;
119
+ const formatCase = metaData ?. format ?. toString ( ) ?? null ;
120
+
121
+ return getElementTypeTranslation (
122
+ type ,
123
+ subtype ,
124
+ formatCase ,
125
+ intl
126
+ ) ;
127
+ } ;
128
+
129
+ const translatedA = getTranslatedOrOriginalValue ( nodeA ) ;
130
+ const translatedB = getTranslatedOrOriginalValue ( nodeB ) ;
131
+
132
+ return translatedA . localeCompare ( translatedB ) ;
133
+ } ,
97
134
} ,
98
135
{
99
136
headerName : intl . formatMessage ( {
0 commit comments