pfp bg at right strip
This commit is contained in:
@@ -1715,6 +1715,28 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getPoliticTalkThumbnailCandidates(videospace) {
|
||||||
|
return Array.prototype.slice.call(videospace.querySelectorAll([
|
||||||
|
'.filmstrip #localVideo_container',
|
||||||
|
'.filmstrip [id^="remoteVideo_"]',
|
||||||
|
'.filmstrip [id^="participant_"]',
|
||||||
|
'.filmstrip .videocontainer',
|
||||||
|
'.filmstrip .video-container'
|
||||||
|
].join(','))).filter(function(candidate) {
|
||||||
|
if (!candidate || candidate.id === 'largeVideoContainer') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var rect = candidate.getBoundingClientRect();
|
||||||
|
|
||||||
|
if (rect.width < 44 || rect.height < 44) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Boolean(candidate.querySelector('img, canvas, [class*="avatar"], [class*="Avatar"], .displayname'));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function isPoliticTalkAvatarShell(element, tile) {
|
function isPoliticTalkAvatarShell(element, tile) {
|
||||||
if (!element || element === tile || element.tagName === 'IMG' || element.tagName === 'CANVAS') {
|
if (!element || element === tile || element.tagName === 'IMG' || element.tagName === 'CANVAS') {
|
||||||
return false;
|
return false;
|
||||||
@@ -1928,7 +1950,7 @@
|
|||||||
return getPoliticTalkLocalRoleMetadata();
|
return getPoliticTalkLocalRoleMetadata();
|
||||||
}
|
}
|
||||||
|
|
||||||
function applyPoliticTalkDominantSpeakerTheme(videospace, tiles) {
|
function applyPoliticTalkDominantSpeakerTheme(videospace, tiles, metadataOverride) {
|
||||||
var avatar = videospace.querySelector('#dominantSpeakerAvatar');
|
var avatar = videospace.querySelector('#dominantSpeakerAvatar');
|
||||||
var avatarContainer = videospace.querySelector('#dominantSpeakerAvatarContainer');
|
var avatarContainer = videospace.querySelector('#dominantSpeakerAvatarContainer');
|
||||||
|
|
||||||
@@ -1936,7 +1958,7 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var metadata = getPoliticTalkDominantSpeakerRoleMetadata(videospace, tiles);
|
var metadata = metadataOverride || getPoliticTalkDominantSpeakerRoleMetadata(videospace, tiles);
|
||||||
var roleWasApplied = applyPoliticTalkRoleToElement(avatar, metadata);
|
var roleWasApplied = applyPoliticTalkRoleToElement(avatar, metadata);
|
||||||
|
|
||||||
addPoliticTalkClass(avatar, 'politictalk-avatar-themed');
|
addPoliticTalkClass(avatar, 'politictalk-avatar-themed');
|
||||||
@@ -1954,6 +1976,30 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function applyPoliticTalkAvatarThemeInContainer(container, metadata) {
|
||||||
|
if (!container) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var themeMetadata = metadata || getPoliticTalkGuestRoleMetadata();
|
||||||
|
|
||||||
|
applyPoliticTalkRoleToElement(container, themeMetadata);
|
||||||
|
|
||||||
|
container.querySelectorAll('div, span').forEach(function(candidate) {
|
||||||
|
if (isPoliticTalkAvatarShell(candidate, container)) {
|
||||||
|
var initialsTarget = getPoliticTalkInitialsAvatarTarget(candidate);
|
||||||
|
|
||||||
|
addPoliticTalkClass(candidate, 'politictalk-avatar-shell');
|
||||||
|
applyPoliticTalkRoleToElement(candidate, themeMetadata);
|
||||||
|
|
||||||
|
if (initialsTarget) {
|
||||||
|
addPoliticTalkClass(initialsTarget, 'politictalk-avatar-themed');
|
||||||
|
applyPoliticTalkRoleToElement(initialsTarget, themeMetadata);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function applyPoliticTalkTileLayout(videospace, tiles) {
|
function applyPoliticTalkTileLayout(videospace, tiles) {
|
||||||
if (!videospace || !tiles.length) {
|
if (!videospace || !tiles.length) {
|
||||||
return;
|
return;
|
||||||
@@ -2033,32 +2079,43 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
var tiles = getPoliticTalkTileCandidates(videospace);
|
var tiles = getPoliticTalkTileCandidates(videospace);
|
||||||
|
var thumbnails = getPoliticTalkThumbnailCandidates(videospace);
|
||||||
|
var dominantName = getPoliticTalkVisibleDisplayName(
|
||||||
|
videospace.querySelector('[data-testid="stage-display-name"]')
|
||||||
|
);
|
||||||
|
var dominantMetadata = getPoliticTalkDominantSpeakerRoleMetadata(videospace, tiles);
|
||||||
|
|
||||||
applyPoliticTalkTileLayout(videospace, tiles);
|
applyPoliticTalkTileLayout(videospace, tiles);
|
||||||
applyPoliticTalkDominantSpeakerTheme(videospace, tiles);
|
applyPoliticTalkDominantSpeakerTheme(videospace, tiles, dominantMetadata);
|
||||||
|
|
||||||
tiles.forEach(function(tile) {
|
tiles.forEach(function(tile) {
|
||||||
addPoliticTalkClass(tile, 'politictalk-themed-tile');
|
addPoliticTalkClass(tile, 'politictalk-themed-tile');
|
||||||
applyPoliticTalkRoleToTile(tile, getPoliticTalkTileRoleMetadata(tile));
|
var metadata = getPoliticTalkTileRoleMetadata(tile);
|
||||||
|
|
||||||
|
applyPoliticTalkRoleToTile(tile, metadata);
|
||||||
|
applyPoliticTalkAvatarThemeInContainer(tile, metadata);
|
||||||
|
|
||||||
tile.querySelectorAll('div, span').forEach(function(candidate) {
|
tile.querySelectorAll('div, span').forEach(function(candidate) {
|
||||||
if (isPoliticTalkAvatarShell(candidate, tile)) {
|
|
||||||
var initialsTarget = getPoliticTalkInitialsAvatarTarget(candidate);
|
|
||||||
|
|
||||||
addPoliticTalkClass(candidate, 'politictalk-avatar-shell');
|
|
||||||
|
|
||||||
if (initialsTarget) {
|
|
||||||
addPoliticTalkClass(initialsTarget, 'politictalk-avatar-themed');
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isPoliticTalkTransparentTileLayer(candidate, tile)) {
|
if (isPoliticTalkTransparentTileLayer(candidate, tile)) {
|
||||||
addPoliticTalkClass(candidate, 'politictalk-tile-transparent-layer');
|
addPoliticTalkClass(candidate, 'politictalk-tile-transparent-layer');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
thumbnails.forEach(function(thumbnail) {
|
||||||
|
var metadata = getPoliticTalkTileRoleMetadata(thumbnail);
|
||||||
|
|
||||||
|
if (!metadata
|
||||||
|
&& dominantName
|
||||||
|
&& getPoliticTalkVisibleDisplayName(thumbnail) === dominantName) {
|
||||||
|
metadata = dominantMetadata;
|
||||||
|
}
|
||||||
|
|
||||||
|
applyPoliticTalkAvatarThemeInContainer(
|
||||||
|
thumbnail,
|
||||||
|
metadata
|
||||||
|
);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function mountPoliticTalkTileTheme() {
|
function mountPoliticTalkTileTheme() {
|
||||||
|
|||||||
Reference in New Issue
Block a user