@@ -73,44 +73,38 @@ export default class PeerConnectionStats {
7373 * Creates & display the default turn warning.
7474 */
7575 displayDefaultTurnWarning ( ) {
76- // TODO look at this button and see if it can be improved
77- let message = '<h1><span>⚠</span> Using a default TURN</h1>Performance is not optimal.' ;
78- const li = document . createElement ( 'li' ) ;
79- const warning = document . createElement ( 'div' ) ;
80- warning . classList . add ( 'gm-default-turn-button' ) ;
81- warning . classList . add ( 'gm-icon-button' ) ;
82- const hover = document . createElement ( 'div' ) ;
83- hover . className = 'gm-default-turn-used gm-hidden' ;
84- if ( this . instance . options . connectionFailedURL ) {
85- message = message + '<br>Click on the icon to learn more.' ;
86- warning . href = this . instance . options . connectionFailedURL ;
87- warning . target = '_blank' ;
88- }
89- hover . innerHTML = message ;
90- li . appendChild ( hover ) ;
91- li . appendChild ( warning ) ;
92-
93- warning . onmouseenter = ( ) => {
94- hover . classList . remove ( 'gm-hidden' ) ;
95- const { top} = warning . getBoundingClientRect ( ) ;
96- hover . style . top = `${ top - hover . offsetHeight + hover . parentElement . offsetHeight / 2 + 10 } px` ;
97- } ;
98- warning . onmouseleave = ( ) => {
99- hover . classList . add ( 'gm-hidden' ) ;
100- } ;
76+ const turnButtonWarning = this . instance . toolbarManager . registerButton ( {
77+ id : 'default-turn-warning' ,
78+ iconClass : 'gm-default-turn-button gm-active' ,
79+ onClick : ( ) => {
80+ if ( this . instance . options . connectionFailedURL ) {
81+ window . open ( this . instance . options . connectionFailedURL , '_blank' ) ;
82+ }
83+ }
84+ } ) ;
10185
102- const toolbar = this . instance . root . querySelector ( '.gm-toolbar ul' ) ;
103- toolbar . appendChild ( li ) ;
86+ if ( turnButtonWarning ) {
87+ this . instance . toolbarManager . renderButton ( 'default-turn-warning' ) ;
88+ let tooltipMsg = '⚠️ <b>Using a default TURN server. Performance is not optimal.</b>' ;
89+ if ( this . instance . options . connectionFailedURL ) {
90+ tooltipMsg = tooltipMsg + '<br><i>Click on the icon to learn more.</i>' ;
91+ }
92+ this . instance . tooltipManager . setTooltip (
93+ turnButtonWarning . htmlElement ,
94+ tooltipMsg ,
95+ this . instance . options . toolbarPosition === 'right' ? 'left' : 'right' ,
96+ null ,
97+ true
98+ ) ;
99+ }
100+ this . instance . toolbarManager . showButton ( 'default-turn-warning' ) ;
104101 }
105102
106103 /**
107104 * Hide the default turn warning.
108105 */
109106 hideDefaultTurnWarning ( ) {
110- const element = this . instance . getChildByClass ( this . instance . root , 'gm-default-turn-button' ) ;
111- if ( element ) {
112- element . remove ( ) ;
113- }
107+ this . instance . toolbarManager . hideButton ( 'default-turn-warning' ) ;
114108 }
115109
116110 /**
0 commit comments