Skip to content

Commit

Permalink
ref(small-video): use css to set component visibility (jitsi#3039)
Browse files Browse the repository at this point in the history
  • Loading branch information
virtuacoplenny authored May 25, 2018
1 parent c95cb0e commit d4d5ef2
Show file tree
Hide file tree
Showing 2 changed files with 111 additions and 25 deletions.
90 changes: 90 additions & 0 deletions css/_videolayout_default.scss
Original file line number Diff line number Diff line change
Expand Up @@ -649,3 +649,93 @@
1px 0px 1px rgba(0,0,0,0.3),
0px 0px 1px rgba(0,0,0,0.3);
}

.display-avatar-with-name {
.avatar-container {
visibility: visible;
}

.displayNameContainer {
visibility: visible;
}

.videocontainer__hoverOverlay {
visibility: visible;
}

video {
visibility: hidden;
}
}

.display-name-on-black {
.avatar-container {
visibility: hidden;
}

.displayNameContainer {
visibility: visible;
}

.videocontainer__hoverOverlay {
visibility: hidden;
}

video {
visibility: hidden;
}
}

.display-video {
.avatar-container {
visibility: hidden;
}

.displayNameContainer {
visibility: hidden;
}

.videocontainer__hoverOverlay {
visibility: hidden;
}

video {
visibility: visible;
}
}

.display-name-on-video {
.avatar-container {
visibility: hidden;
}

.displayNameContainer {
visibility: visible;
}

.videocontainer__hoverOverlay {
visibility: visible;
}

video {
visibility: visible;
}
}

.display-avatar-only {
.avatar-container {
visibility: visible;
}

.displayNameContainer {
visibility: hidden;
}

.videocontainer__hoverOverlay {
visibility: hidden;
}

video {
visibility: hidden;
}
}
46 changes: 21 additions & 25 deletions modules/UI/videolayout/SmallVideo.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ function SmallVideo(VideoLayout) {
this.audioStream = null;
this.VideoLayout = VideoLayout;
this.videoIsHovered = false;
this.hideDisplayName = false;

// we can stop updating the thumbnail
this.disableUpdateView = false;
Expand Down Expand Up @@ -599,33 +598,30 @@ SmallVideo.prototype.updateView = function() {
}
}

this.$container.removeClass((index, classNames) =>
classNames.split(' ').filter(name => name.startsWith('display-')));

// Determine whether video, avatar or blackness should be displayed
const displayMode = this.selectDisplayMode();

// Show/hide video.

UIUtil.setVisibleBySelector(this.selectVideoElement(),
displayMode === DISPLAY_VIDEO
|| displayMode === DISPLAY_VIDEO_WITH_NAME);

// Show/hide the avatar.
UIUtil.setVisibleBySelector(this.$avatar(),
displayMode === DISPLAY_AVATAR
|| displayMode === DISPLAY_AVATAR_WITH_NAME);

// Show/hide the display name.
UIUtil.setVisibleBySelector(this.$displayName(),
!this.hideDisplayName
&& (displayMode === DISPLAY_BLACKNESS_WITH_NAME
|| displayMode === DISPLAY_VIDEO_WITH_NAME
|| displayMode === DISPLAY_AVATAR_WITH_NAME));

// show hide overlay when there is a video or avatar under
// the display name
UIUtil.setVisibleBySelector(this.$container.find(
'.videocontainer__hoverOverlay'),
displayMode === DISPLAY_AVATAR_WITH_NAME
|| displayMode === DISPLAY_VIDEO_WITH_NAME);
switch (displayMode) {
case DISPLAY_AVATAR_WITH_NAME:
this.$container.addClass('display-avatar-with-name');
break;
case DISPLAY_BLACKNESS_WITH_NAME:
this.$container.addClass('display-name-on-black');
break;
case DISPLAY_VIDEO:
this.$container.addClass('display-video');
break;
case DISPLAY_VIDEO_WITH_NAME:
this.$container.addClass('display-name-on-video');
break;
case DISPLAY_AVATAR:
default:
this.$container.addClass('display-avatar-only');
break;
}
};

/**
Expand Down

0 comments on commit d4d5ef2

Please sign in to comment.