Skip to content

Commit 0b18ae5

Browse files
committed
refactor(turn): replace default TURN warning display with toolbar button and remove associated styles
1 parent f06149e commit 0b18ae5

4 files changed

Lines changed: 28 additions & 80 deletions

File tree

src/assets/images/ic_warning.svg

Lines changed: 3 additions & 1 deletion
Loading

src/plugins/PeerConnectionStats.js

Lines changed: 25 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -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>&#9888;</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
/**

src/scss/components/_turn.scss

Lines changed: 0 additions & 47 deletions
This file was deleted.

src/scss/main.scss

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
@use 'components/phone';
2020
@use 'components/baseband';
2121
@use 'components/clipboard';
22-
@use 'components/turn';
2322
@use 'components/fingerprints';
2423
@use 'components/fileUpload';
2524
@use 'components/slider';

0 commit comments

Comments
 (0)