4
4
import PropTypes from 'prop-types' ;
5
5
import React , { Fragment , useEffect , useState } from 'react' ;
6
6
import i18next from 'i18next' ;
7
- import { useCookies } from 'react-cookie' ;
8
- import cx from 'classnames' ;
9
7
import Icon from '@digitransit-component/digitransit-component-icon' ;
10
8
import styles from './helpers/styles.scss' ;
11
9
import translations from './helpers/translations' ;
@@ -67,73 +65,6 @@ OriginToDestination.defaultProps = {
67
65
language : 'fi' ,
68
66
} ;
69
67
70
- function BubbleDialog ( { title, content, closeDialog, shouldRender, lang } ) {
71
- const [ show , setShow ] = useState ( false ) ;
72
- useEffect ( ( ) => {
73
- setTimeout ( ( ) => {
74
- setShow ( true ) ;
75
- } , 500 ) ;
76
- } , [ show ] ) ;
77
-
78
- return (
79
- < div
80
- className = { cx ( styles [ 'nearby-stops-bubble-dialog' ] , {
81
- [ styles [ 'visible' ] ] : shouldRender && show ,
82
- } ) }
83
- >
84
- < div
85
- id = "nearby-stops-bubble-dialog-container"
86
- className = { styles [ 'nearby-stops-bubble-dialog-container' ] }
87
- >
88
- < div >
89
- < div
90
- className = { cx (
91
- styles [ 'nearby-stops-bubble-dialog-header' ] ,
92
- styles [ lang ] ,
93
- ) }
94
- >
95
- { title }
96
- </ div >
97
- < div className = { styles [ 'nearby-stops-bubble-dialog-content' ] } >
98
- { content }
99
- </ div >
100
- < button
101
- className = { styles [ 'nearby-stops-bubble-dialog-close' ] }
102
- aria-label = { i18next . t ( 'close-nearby-teaser' ) }
103
- onClick = { event => {
104
- event . preventDefault ( ) ;
105
- closeDialog ( ) ;
106
- } }
107
- onKeyDown = { event => {
108
- event . preventDefault ( ) ;
109
- const space = [ 13 , ' ' , 'Spacebar' ] ;
110
- const enter = [ 32 , 'Enter' ] ;
111
- const key = event && event . key ;
112
- if ( key && space . concat ( enter ) . includes ( key ) ) {
113
- closeDialog ( ) ;
114
- }
115
- } }
116
- type = "button"
117
- >
118
- < Icon img = "close" />
119
- </ button >
120
- </ div >
121
- < div className = { styles [ 'nearby-stops-bubble-dialog-tip-container' ] } >
122
- < div className = { styles [ 'nearby-stops-bubble-dialog-tip' ] } />
123
- </ div >
124
- </ div >
125
- </ div >
126
- ) ;
127
- }
128
-
129
- BubbleDialog . propTypes = {
130
- title : PropTypes . string . isRequired ,
131
- content : PropTypes . string . isRequired ,
132
- closeDialog : PropTypes . func . isRequired ,
133
- shouldRender : PropTypes . bool . isRequired ,
134
- lang : PropTypes . string . isRequired ,
135
- } ;
136
-
137
68
/**
138
69
* Show button links to near you page for different travel modes
139
70
*
@@ -196,15 +127,11 @@ function NearStopsAndRoutes({
196
127
modeSet,
197
128
modeIconColors,
198
129
fontWeights,
199
- showTeaser,
200
130
} ) {
201
131
const [ modesWithAlerts , setModesWithAlerts ] = useState ( [ ] ) ;
202
- const [ cookies , setCookie ] = useCookies ( [ 'nearbyTeaserShown' ] ) ;
203
132
204
133
useEffect ( ( ) => {
205
- Object . keys ( translations ) . forEach ( lang => {
206
- i18next . addResourceBundle ( lang , 'translation' , translations [ lang ] ) ;
207
- } ) ;
134
+ i18next . changeLanguage ( language ) ;
208
135
if ( alertsContext ) {
209
136
alertsContext
210
137
. getModesWithAlerts ( alertsContext . currentTime , alertsContext . feedIds )
@@ -214,12 +141,6 @@ function NearStopsAndRoutes({
214
141
}
215
142
} , [ ] ) ;
216
143
217
- const closeBubbleDialog = ( ) =>
218
- setCookie ( 'nearbyTeaserShown' , true , {
219
- path : '/' ,
220
- maxAge : 10 * 365 * 24 * 60 * 60 ,
221
- } ) ;
222
-
223
144
let urlStart ;
224
145
if ( omitLanguageUrl ) {
225
146
urlStart = urlPrefix ;
@@ -328,20 +249,6 @@ function NearStopsAndRoutes({
328
249
: title [ language ] }
329
250
</ h2 >
330
251
) }
331
- { showTeaser && ! cookies ?. nearbyTeaserShown && (
332
- < BubbleDialog
333
- title = { i18next . t ( 'nearby-stops-teaser-header' , { lng : language } ) }
334
- content = { i18next . t ( 'nearby-stops-teaser-content' , {
335
- lng : language ,
336
- } ) }
337
- closeDialog = { closeBubbleDialog }
338
- shouldRender = {
339
- i18next . t ( 'nearby-stops-teaser-header' , { lng : language } ) !==
340
- 'nearby-stops-teaser-header'
341
- }
342
- lang = { language }
343
- />
344
- ) }
345
252
< div
346
253
className = {
347
254
! modes
@@ -381,7 +288,6 @@ NearStopsAndRoutes.propTypes = {
381
288
fontWeights : PropTypes . shape ( {
382
289
medium : PropTypes . number ,
383
290
} ) ,
384
- showTeaser : PropTypes . bool ,
385
291
} ;
386
292
387
293
NearStopsAndRoutes . defaultProps = {
@@ -407,7 +313,6 @@ NearStopsAndRoutes.defaultProps = {
407
313
fontWeights : {
408
314
medium : 500 ,
409
315
} ,
410
- showTeaser : false ,
411
316
} ;
412
317
413
318
/**
@@ -432,11 +337,8 @@ class CtrlPanel extends React.Component {
432
337
433
338
static SeparatorLine = SeparatorLine ;
434
339
435
- static BubbleDialog = BubbleDialog ;
436
-
437
340
static propTypes = {
438
341
children : PropTypes . arrayOf ( PropTypes . node ) ,
439
- language : PropTypes . string . isRequired ,
440
342
position : PropTypes . string . isRequired ,
441
343
fontWeights : PropTypes . shape ( {
442
344
medium : PropTypes . number ,
@@ -450,29 +352,25 @@ class CtrlPanel extends React.Component {
450
352
} ,
451
353
} ;
452
354
355
+ constructor ( props ) {
356
+ super ( props ) ;
357
+ Object . keys ( translations ) . forEach ( lang => {
358
+ i18next . addResourceBundle ( lang , 'translation' , translations [ lang ] ) ;
359
+ } ) ;
360
+ }
361
+
453
362
render ( ) {
454
363
const className =
455
364
this . props . position === 'bottom'
456
365
? styles [ 'main-bottom' ]
457
366
: styles [ 'main-left' ] ;
458
- const children = React . Children . map ( this . props . children , child => {
459
- if ( child ) {
460
- let lang = this . props . language ;
461
- if ( lang === undefined ) {
462
- lang = 'fi' ;
463
- }
464
- i18next . changeLanguage ( lang ) ;
465
- return React . cloneElement ( child , { lang } ) ;
466
- }
467
- return null ;
468
- } ) ;
469
367
return (
470
368
< div
471
369
key = "main"
472
370
className = { className }
473
371
style = { { '--font-weight-medium' : this . props . fontWeights . medium } }
474
372
>
475
- { children }
373
+ { this . props . children }
476
374
</ div >
477
375
) ;
478
376
}
0 commit comments