1+ import { Button , Box , Icon , Flex } from '@rocket.chat/fuselage' ;
12import { Meteor } from 'meteor/meteor' ;
23import React , { useEffect , useState , useCallback } from 'react' ;
34
45import { APIClient } from '../../../app/utils/client' ;
6+ import UserAvatar from '../../components/avatar/UserAvatar' ;
57import { useRouteParameter , useQueryStringParameter } from '../../contexts/RouterContext' ;
68import NotFoundPage from '../notFound/NotFoundPage' ;
79import PageLoading from '../root/PageLoading' ;
@@ -14,11 +16,17 @@ function MeetPage() {
1416 const roomId = useRouteParameter ( 'rid' ) ;
1517 const visitorToken = useQueryStringParameter ( 'token' ) ;
1618 const layout = useQueryStringParameter ( 'layout' ) ;
19+ const [ visitorName , setVisitorName ] = useState ( '' ) ;
20+ const [ agentName , setAgentName ] = useState ( '' ) ;
1721
1822 const setupCallForVisitor = useCallback ( async ( ) => {
1923 const room = await APIClient . v1 . get ( `/livechat/room?token=${ visitorToken } &rid=${ roomId } ` ) ;
2024 if ( room ?. room ?. v ?. token === visitorToken ) {
2125 setVisitorId ( room . room . v . _id ) ;
26+ setVisitorName ( room . room . fname ) ;
27+ room ?. room ?. responseBy ?. username
28+ ? setAgentName ( room . room . responseBy . username )
29+ : setAgentName ( room . room . servedBy . username ) ;
2230 setStatus ( room ?. room ?. callStatus || 'ended' ) ;
2331 return setIsRoomMember ( true ) ;
2432 }
@@ -27,6 +35,10 @@ function MeetPage() {
2735 const setupCallForAgent = useCallback ( async ( ) => {
2836 const room = await APIClient . v1 . get ( `/rooms.info?roomId=${ roomId } ` ) ;
2937 if ( room ?. room ?. servedBy ?. _id === Meteor . userId ( ) ) {
38+ setVisitorName ( room . room . fname ) ;
39+ room ?. room ?. responseBy ?. username
40+ ? setAgentName ( room . room . responseBy . username )
41+ : setAgentName ( room . room . servedBy . username ) ;
3042 setStatus ( room ?. room ?. callStatus || 'ended' ) ;
3143 return setIsRoomMember ( true ) ;
3244 }
@@ -44,8 +56,66 @@ function MeetPage() {
4456 if ( ! isRoomMember ) {
4557 return < NotFoundPage > </ NotFoundPage > ;
4658 }
59+ const closeCallTab = ( ) => {
60+ window . close ( ) ;
61+ } ;
4762 if ( status === 'ended' ) {
48- return < h1 style = { { color : 'white' , textAlign : 'center' , marginTop : 250 } } > Ended!</ h1 > ;
63+ return (
64+ < Flex . Container direction = 'column' justifyContent = 'center' >
65+ < Box
66+ width = 'full'
67+ minHeight = 'sh'
68+ textAlign = 'center'
69+ backgroundColor = 'neutral-900'
70+ overflow = 'hidden'
71+ position = 'relative'
72+ backgroundColor = '#181B20'
73+ >
74+ < Box
75+ position = 'absolute'
76+ zIndex = '1'
77+ style = { {
78+ top : '5%' ,
79+ right : '2%' ,
80+ } }
81+ w = 'x200'
82+ backgroundColor = '#2F343D'
83+ >
84+ < UserAvatar
85+ style = { {
86+ width : '100%' ,
87+ height : '130px' ,
88+ paddingTop : '20%' ,
89+ paddingLeft : '35%' ,
90+ paddingRight : '20%' ,
91+ } }
92+ username = { agentName }
93+ className = 'rcx-message__avatar'
94+ size = 'x48'
95+ />
96+ </ Box >
97+ < Box position = 'absolute' zIndex = '1' style = { { top : '20%' , right : '45%' } } >
98+ < UserAvatar username = { visitorName } className = 'rcx-message__avatar' size = 'x124' />
99+ < p style = { { color : 'white' , fontSize : 15 , textAlign : 'center' , margin : 15 } } >
100+ { 'Call Ended' }
101+ </ p >
102+ < p style = { { color : 'white' , fontSize : 35 , textAlign : 'center' , margin : 15 } } >
103+ { visitorName }
104+ </ p >
105+ </ Box >
106+ < Box position = 'absolute' zIndex = '1' style = { { top : '80%' , right : '48%' } } >
107+ < Button
108+ title = 'Close Window'
109+ onClick = { closeCallTab }
110+ backgroundColor = '#2F343D'
111+ borderColor = '#2F343D'
112+ >
113+ < Icon name = 'cross' size = 'x16' color = 'white' />
114+ </ Button >
115+ </ Box >
116+ </ Box >
117+ </ Flex . Container >
118+ ) ;
49119 }
50120 return (
51121 < CallPage
@@ -54,6 +124,8 @@ function MeetPage() {
54124 visitorToken = { visitorToken }
55125 visitorId = { visitorId }
56126 setStatus = { setStatus }
127+ visitorName = { visitorName }
128+ agentName = { agentName }
57129 layout = { layout }
58130 > </ CallPage >
59131 ) ;
0 commit comments