6
6
*/
7
7
8
8
import { Box } from '@mui/material' ;
9
- import { forwardRef , MouseEventHandler , Ref , TouchEventHandler , useCallback , useState } from 'react' ;
9
+ import { forwardRef , MouseEventHandler , Ref , TouchEventHandler , useCallback , useMemo , useState } from 'react' ;
10
10
import CardHeader from './card-header' ;
11
11
import { Diagram , DiagramParams , DiagramType } from './diagram.type' ;
12
12
import { UUID } from 'crypto' ;
@@ -16,7 +16,7 @@ import NetworkAreaDiagramContent from './networkAreaDiagram/network-area-diagram
16
16
import { ElementType , EquipmentType , mergeSx } from '@gridsuite/commons-ui' ;
17
17
import { DiagramMetadata , SLDMetadata } from '@powsybl/network-viewer' ;
18
18
import { DiagramAdditionalMetadata } from './diagram-common' ;
19
- import { FormattedMessage } from 'react-intl' ;
19
+ import { useIntl } from 'react-intl' ;
20
20
import { cardStyles } from './card-styles' ;
21
21
import { v4 } from 'uuid' ;
22
22
@@ -64,6 +64,7 @@ export const DiagramCard = forwardRef((props: DiagramCardProps, ref: Ref<HTMLDiv
64
64
const { style, children, ...otherProps } = reactGridLayoutCustomChildComponentProps ;
65
65
66
66
const [ diagramsInEditMode , setDiagramsInEditMode ] = useState < boolean > ( false ) ;
67
+ const intl = useIntl ( ) ;
67
68
68
69
const handleExpandAllVoltageLevels = useCallback ( ( ) => {
69
70
if ( diagram . type === DiagramType . NETWORK_AREA_DIAGRAM ) {
@@ -151,13 +152,19 @@ export const DiagramCard = forwardRef((props: DiagramCardProps, ref: Ref<HTMLDiv
151
152
[ createDiagram ]
152
153
) ;
153
154
155
+ const cardTitle = useMemo ( ( ) : string => {
156
+ if ( loading ) {
157
+ return intl . formatMessage ( { id : 'loadingOptions' } ) ;
158
+ }
159
+ if ( errorMessage ) {
160
+ return intl . formatMessage ( { id : 'diagramLoadingFail' } , { diagramName : diagram . name } ) ;
161
+ }
162
+ return diagram . name ;
163
+ } , [ loading , errorMessage , diagram . name , intl ] ) ;
164
+
154
165
return (
155
166
< Box sx = { mergeSx ( style , cardStyles . card ) } ref = { ref } { ...otherProps } >
156
- < CardHeader
157
- title = { loading ? < FormattedMessage id = "loadingOptions" /> : diagram . name }
158
- blinking = { blinking }
159
- onClose = { onClose }
160
- />
167
+ < CardHeader title = { cardTitle } blinking = { blinking } onClose = { onClose } />
161
168
{ errorMessage ? (
162
169
< >
163
170
< AlertCustomMessageNode message = { errorMessage } noMargin style = { cardStyles . alertMessage } />
0 commit comments