@@ -8,6 +8,7 @@ import { MapMetadata } from 'models/MapMetadata'
8
8
import { Pose } from 'models/Pose'
9
9
import { MapCompass } from 'utils/MapCompass'
10
10
import { Deck } from 'models/Deck'
11
+ import { useLanguageContext } from 'components/Contexts/LanguageContext'
11
12
12
13
interface DeckProps {
13
14
deck : Deck
@@ -23,7 +24,6 @@ const StyledMap = styled.canvas`
23
24
const StyledMapLimits = styled . div `
24
25
display: flex;
25
26
flex-direction: column;
26
- padding-left: 30px;
27
27
justify-content: center;
28
28
align-items: center;
29
29
`
@@ -35,16 +35,24 @@ const StyledLoading = styled.div`
35
35
36
36
const StyledMapCompass = styled . div `
37
37
display: flex;
38
- flex-direction: columns ;
38
+ flex-direction: row ;
39
39
align-items: end;
40
40
`
41
41
42
+ const StyledCaption = styled . div `
43
+ display: flex;
44
+ flex-direction: column;
45
+ justify-content: left;
46
+ gap: 10px;
47
+ `
48
+
42
49
export const DeckMapView = ( { deck, markedRobotPosition } : DeckProps ) => {
43
50
const [ mapCanvas , setMapCanvas ] = useState < HTMLCanvasElement > ( document . createElement ( 'canvas' ) )
44
51
const [ mapImage , setMapImage ] = useState < HTMLImageElement > ( document . createElement ( 'img' ) )
45
52
const [ mapContext , setMapContext ] = useState < CanvasRenderingContext2D > ( )
46
53
const [ mapMetadata , setMapMetadata ] = useState < MapMetadata > ( )
47
54
const [ isLoading , setIsLoading ] = useState < boolean > ( )
55
+ const { TranslateText } = useLanguageContext ( )
48
56
49
57
const updateMap = useCallback ( ( ) => {
50
58
let context = mapCanvas . getContext ( '2d' )
@@ -65,6 +73,9 @@ export const DeckMapView = ({ deck, markedRobotPosition }: DeckProps) => {
65
73
return image
66
74
}
67
75
76
+ let mapName = mapMetadata ?. mapName . split ( '.' ) [ 0 ] . replace ( / [ ^ 0 - 9 a - z - A- Z ] / g, ' ' )
77
+ mapName = mapName ? mapName . charAt ( 0 ) . toUpperCase ( ) + mapName . slice ( 1 ) : ' '
78
+
68
79
useEffect ( ( ) => {
69
80
const processImageURL = ( imageBlob : Blob | string ) => {
70
81
const imageObjectURL = typeof imageBlob === 'string' ? imageBlob : URL . createObjectURL ( imageBlob as Blob )
@@ -125,13 +136,15 @@ export const DeckMapView = ({ deck, markedRobotPosition }: DeckProps) => {
125
136
) }
126
137
{ ! isLoading && (
127
138
< StyledMapLimits >
128
- < Typography variant = "h2" >
129
- { mapMetadata ?. mapName ? mapMetadata . mapName : 'No map available' }
130
- </ Typography >
131
- < StyledMapCompass >
132
- < StyledMap id = "deckMapCanvas" />
133
- { mapMetadata && < MapCompass /> }
134
- </ StyledMapCompass >
139
+ < StyledCaption >
140
+ < StyledMapCompass >
141
+ < StyledMap id = "deckMapCanvas" />
142
+ { mapMetadata && < MapCompass /> }
143
+ </ StyledMapCompass >
144
+ < Typography italic variant = "body_short" >
145
+ { TranslateText ( 'Map of' ) + ' ' + mapName }
146
+ </ Typography >
147
+ </ StyledCaption >
135
148
</ StyledMapLimits >
136
149
) }
137
150
</ >
0 commit comments