11import type { GenericMenuItemProps } from '@rocket.chat/ui-client' ;
2+ import { useMediaCallAction } from '@rocket.chat/ui-voip' ;
23import type { HTMLAttributes } from 'react' ;
34
45import NavBarControlsMenu from './NavBarControlsMenu' ;
@@ -13,6 +14,8 @@ type NavBarControlsMenuProps = Omit<HTMLAttributes<HTMLElement>, 'is'>;
1314const NavBarControlsWithData = ( props : NavBarControlsMenuProps ) => {
1415 const isCallEnabled = useIsCallEnabled ( ) ;
1516
17+ const callAction = useMediaCallAction ( ) ;
18+
1619 const {
1720 isEnabled : queueEnabled ,
1821 icon : queueIcon ,
@@ -34,6 +37,15 @@ const NavBarControlsWithData = (props: NavBarControlsMenuProps) => {
3437 handleAvailableStatusChange,
3538 } = useOmnichannelLivechatToggle ( ) ;
3639
40+ const callItem = callAction
41+ ? {
42+ id : 'rcx-media-call' ,
43+ icon : callAction . icon ,
44+ content : callAction . title ,
45+ onClick : ( ) => callAction . action ( ) ,
46+ }
47+ : undefined ;
48+
3749 const omnichannelItems = [
3850 queueEnabled && {
3951 id : 'omnichannelQueue' ,
@@ -58,10 +70,10 @@ const NavBarControlsWithData = (props: NavBarControlsMenuProps) => {
5870 const isPressed = isQueuePressed || isContactPressed ;
5971
6072 if ( isCallEnabled ) {
61- return < NavbarControlsWithCall omnichannelItems = { omnichannelItems } isPressed = { isPressed } { ...props } /> ;
73+ return < NavbarControlsWithCall callItem = { callItem } omnichannelItems = { omnichannelItems } isPressed = { isPressed } { ...props } /> ;
6274 }
6375
64- return < NavBarControlsMenu omnichannelItems = { omnichannelItems } isPressed = { isPressed } { ...props } /> ;
76+ return < NavBarControlsMenu callItem = { callItem } omnichannelItems = { omnichannelItems } isPressed = { isPressed } { ...props } /> ;
6577} ;
6678
6779export default NavBarControlsWithData ;
0 commit comments