@@ -52,6 +52,7 @@ import styles from './Simulator.module.css';
52
52
import { LocationRequestTemplate } from 'containers/Chat/ChatMessages/ChatMessage/LocationRequestTemplate/LocationRequestTemplate' ;
53
53
import { BackdropLoader } from 'containers/Flow/FlowTranslation' ;
54
54
import { SIMULATOR_RELEASE_SUBSCRIPTION } from 'graphql/subscriptions/PeriodicInfo' ;
55
+ import { PollMessage } from 'containers/Chat/ChatMessages/ChatMessage/PollMessage/PollMessage' ;
55
56
56
57
export interface SimulatorProps {
57
58
setShowSimulator ?: any ;
@@ -63,6 +64,7 @@ export interface SimulatorProps {
63
64
interactiveMessage ?: any ;
64
65
showHeader ?: boolean ;
65
66
hasResetButton ?: boolean ;
67
+ pollContent ?: any ;
66
68
}
67
69
68
70
interface Sender {
@@ -124,6 +126,7 @@ const Simulator = ({
124
126
interactiveMessage,
125
127
showHeader = true ,
126
128
hasResetButton = false ,
129
+ pollContent,
127
130
} : SimulatorProps ) => {
128
131
const [ inputMessage , setInputMessage ] = useState ( '' ) ;
129
132
const [ simulatedMessages , setSimulatedMessage ] = useState < any > ( ) ;
@@ -268,7 +271,13 @@ const Simulator = ({
268
271
} ) ;
269
272
} ;
270
273
271
- const renderMessage = ( messageObject : any , direction : string , index : number , isInteractive : boolean = false ) => {
274
+ const renderMessage = (
275
+ messageObject : any ,
276
+ direction : string ,
277
+ index : number ,
278
+ isInteractive : boolean ,
279
+ isPollContent : boolean = false
280
+ ) => {
272
281
const { insertedAt, type, media, location, interactiveContent, bspMessageId, templateType } = messageObject ;
273
282
274
283
const messageType = isInteractive ? templateType : type ;
@@ -320,26 +329,31 @@ const Simulator = ({
320
329
}
321
330
}
322
331
332
+ let messageBody : any = (
333
+ < >
334
+ < ChatMessageType
335
+ type = { messageType }
336
+ media = { media }
337
+ body = { body }
338
+ location = { location }
339
+ isSimulatedMessage = { isSimulatedMessage }
340
+ />
341
+ < TimeComponent direction = { direction } insertedAt = { insertedAt } />
342
+ </ >
343
+ ) ;
344
+ if ( isInteractiveContentPresent && direction !== 'send' ) {
345
+ messageBody = template ;
346
+ } else if ( isPollContent ) {
347
+ messageBody = < PollMessage pollContent = { pollContent } isSimulator /> ;
348
+ }
349
+
323
350
return (
324
351
< div key = { index } >
325
352
< div
326
353
className = { getStyleForDirection ( direction , isInteractiveContentPresent , messageType ) }
327
354
data-testid = "simulatorMessage"
328
355
>
329
- { isInteractiveContentPresent && direction !== 'send' ? (
330
- template
331
- ) : (
332
- < >
333
- < ChatMessageType
334
- type = { messageType }
335
- media = { media }
336
- body = { body }
337
- location = { location }
338
- isSimulatedMessage = { isSimulatedMessage }
339
- />
340
- < TimeComponent direction = { direction } insertedAt = { insertedAt } />
341
- </ >
342
- ) }
356
+ { messageBody }
343
357
</ div >
344
358
< div className = { styles . TemplateButtons } >
345
359
< TemplateButtons
@@ -356,17 +370,17 @@ const Simulator = ({
356
370
const chatMessage = messages
357
371
. map ( ( simulatorMessage : any , index : number ) => {
358
372
if ( simulatorMessage . receiver . id === simulatorId ) {
359
- return renderMessage ( simulatorMessage , 'received' , index ) ;
373
+ return renderMessage ( simulatorMessage , 'received' , index , false ) ;
360
374
}
361
- return renderMessage ( simulatorMessage , 'send' , index ) ;
375
+ return renderMessage ( simulatorMessage , 'send' , index , false ) ;
362
376
} )
363
377
. reverse ( ) ;
364
378
setSimulatedMessage ( chatMessage ) ;
365
379
} ;
366
380
367
381
const getPreviewMessage = ( ) => {
368
382
if ( message && message . type ) {
369
- const previewMessage = renderMessage ( message , 'received' , 0 ) ;
383
+ const previewMessage = renderMessage ( message , 'received' , 0 , false ) ;
370
384
if ( [ 'STICKER' , 'AUDIO' ] . includes ( message . type ) ) {
371
385
setSimulatedMessage ( previewMessage ) ;
372
386
} else if ( message . body || message . media ?. caption ) {
@@ -380,6 +394,7 @@ const Simulator = ({
380
394
if ( interactiveMessage ) {
381
395
const { templateType, interactiveContent } = interactiveMessage ;
382
396
const previewMessage = renderMessage ( interactiveMessage , 'received' , 0 , true ) ;
397
+
383
398
setSimulatedMessage ( previewMessage ) ;
384
399
if ( templateType === LIST ) {
385
400
const { items } = JSON . parse ( interactiveContent ) ;
@@ -388,6 +403,11 @@ const Simulator = ({
388
403
setIsDrawerOpen ( false ) ;
389
404
}
390
405
}
406
+
407
+ if ( pollContent ) {
408
+ const previewMessage = renderMessage ( pollContent , 'received' , 0 , false , true ) ;
409
+ setSimulatedMessage ( previewMessage ) ;
410
+ }
391
411
} ;
392
412
393
413
useEffect ( ( ) => {
0 commit comments