chat ui fix
This commit is contained in:
@@ -351,6 +351,8 @@
|
||||
|
||||
html:not(.politictalk-direct-access-blocked) .politictalk-chat-recipient-control,
|
||||
html:not(.politictalk-direct-access-blocked) .politictalk-chat-recipient-control *,
|
||||
html:not(.politictalk-direct-access-blocked) [data-politictalk-chat-recipient],
|
||||
html:not(.politictalk-direct-access-blocked) [data-politictalk-chat-recipient] *,
|
||||
html:not(.politictalk-direct-access-blocked) #chat-recipient-selector,
|
||||
html:not(.politictalk-direct-access-blocked) #chat-recipient-selector *,
|
||||
html:not(.politictalk-direct-access-blocked) [data-testid*="recipient" i],
|
||||
@@ -839,6 +841,67 @@
|
||||
|| label.indexOf('الجميع') !== -1;
|
||||
}
|
||||
|
||||
function markChatRecipientElement(element) {
|
||||
if (!element || element.nodeType !== 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
element.classList.add('politictalk-chat-recipient-control');
|
||||
element.setAttribute('data-politictalk-chat-recipient', 'true');
|
||||
|
||||
var icons = element.querySelectorAll('svg, path');
|
||||
|
||||
icons.forEach(function(icon) {
|
||||
icon.style.color = '#ffffff';
|
||||
icon.style.fill = 'currentColor';
|
||||
icon.style.stroke = 'currentColor';
|
||||
});
|
||||
}
|
||||
|
||||
function markChatRecipientTextNode(textNode) {
|
||||
var element = textNode && textNode.parentElement;
|
||||
var depth = 0;
|
||||
|
||||
while (element && depth < 5) {
|
||||
var text = (element.textContent || '').replace(/\s+/g, ' ').trim();
|
||||
|
||||
if (text.length > 0 && text.length <= 60 && isChatRecipientControl(element)) {
|
||||
markChatRecipientElement(element);
|
||||
}
|
||||
|
||||
element = element.parentElement;
|
||||
depth += 1;
|
||||
}
|
||||
}
|
||||
|
||||
function markChatRecipientLabels() {
|
||||
var roots = document.querySelectorAll('#sideToolbarContainer, .sideToolbarContainer, .chat-panel, .chat-panel-container, .chat-container, [class*="chatPanel"]');
|
||||
|
||||
roots.forEach(function(root) {
|
||||
var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, {
|
||||
acceptNode: function(node) {
|
||||
var text = (node.nodeValue || '').replace(/\s+/g, ' ').trim().toLowerCase();
|
||||
|
||||
if (!text || text.length > 60) {
|
||||
return NodeFilter.FILTER_REJECT;
|
||||
}
|
||||
|
||||
return text.indexOf('everyone') !== -1
|
||||
|| text.indexOf('alle') !== -1
|
||||
|| text.indexOf('الجميع') !== -1
|
||||
? NodeFilter.FILTER_ACCEPT
|
||||
: NodeFilter.FILTER_REJECT;
|
||||
}
|
||||
});
|
||||
var node = walker.nextNode();
|
||||
|
||||
while (node) {
|
||||
markChatRecipientTextNode(node);
|
||||
node = walker.nextNode();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function markChatRecipientControls() {
|
||||
if (!document.body) {
|
||||
return;
|
||||
@@ -851,8 +914,10 @@
|
||||
return;
|
||||
}
|
||||
|
||||
control.classList.add('politictalk-chat-recipient-control');
|
||||
markChatRecipientElement(control);
|
||||
});
|
||||
|
||||
markChatRecipientLabels();
|
||||
}
|
||||
|
||||
function mountChatRecipientStyling() {
|
||||
|
||||
Reference in New Issue
Block a user