Prepare for Element Call integration (#9224)
* Improve accessibility and testability of Tooltip Adding a role to Tooltip was motivated by React Testing Library's reliance on accessibility-related attributes to locate elements. * Make the ReadyWatchingStore constructor safer The ReadyWatchingStore constructor previously had a chance to immediately call onReady, which was dangerous because it was potentially calling the derived class's onReady at a point when the derived class hadn't even finished construction yet. In normal usage, I guess this never was a problem, but it was causing some of the tests I was writing to crash. This is solved by separating out the onReady call into a start method. * Rename 1:1 call components to 'LegacyCall' to reflect the fact that they're slated for removal, and to not clash with the new Call code. * Refactor VideoChannelStore into Call and CallStore Call is an abstract class that currently only has a Jitsi implementation, but this will make it easy to later add an Element Call implementation. * Remove WidgetReady, ClientReady, and ForceHangupCall hacks These are no longer used by the new Jitsi call implementation, and can be removed. * yarn i18n * Delete call map entries instead of inserting nulls * Allow multiple active calls and consolidate call listeners * Fix a race condition when creating a video room * Un-hardcode the media device fallback labels * Apply misc code review fixes * yarn i18n * Disconnect from calls more politely on logout * Fix some strict mode errors * Fix another updateRoom race condition
This commit is contained in:
@@ -1,199 +0,0 @@
|
||||
/*
|
||||
Copyright 2015, 2016 OpenMarket Ltd
|
||||
Copyright 2020 - 2021 The Matrix.org Foundation C.I.C.
|
||||
Copyright 2021 - 2022 Šimon Brandner <simon.bra.ag@gmail.com>
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
.mx_CallView {
|
||||
border-radius: 8px;
|
||||
background-color: $dark-panel-bg-color;
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
/* XXX: PiPContainer sets pointer-events: none - should probably be set back in a better place */
|
||||
pointer-events: initial;
|
||||
|
||||
.mx_CallView_toast {
|
||||
position: absolute;
|
||||
top: 74px;
|
||||
|
||||
padding: 4px 8px;
|
||||
|
||||
border-radius: 4px;
|
||||
z-index: 50;
|
||||
|
||||
/* Same on both themes */
|
||||
color: white;
|
||||
background-color: #17191c;
|
||||
}
|
||||
|
||||
.mx_CallView_content_wrapper {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
.mx_CallView_content {
|
||||
position: relative;
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
|
||||
border-radius: 10px;
|
||||
|
||||
padding: 10px;
|
||||
padding-right: calc(20% + 20px); /* Space for the sidebar */
|
||||
|
||||
background-color: $call-view-content-background;
|
||||
|
||||
.mx_CallView_status {
|
||||
z-index: 50;
|
||||
color: $accent-fg-color;
|
||||
}
|
||||
|
||||
.mx_CallView_avatarsContainer {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
div {
|
||||
margin-left: 12px;
|
||||
margin-right: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.mx_CallView_holdBackground {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
filter: blur(20px);
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
}
|
||||
|
||||
&.mx_CallView_content_hold .mx_CallView_status {
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
|
||||
&::before {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
content: "";
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
background-image: url("$(res)/img/voip/paused.svg");
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.mx_CallView_pip &::before {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:not(.mx_CallView_sidebar) .mx_CallView_content {
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
.mx_VideoFeed_primary {
|
||||
aspect-ratio: unset;
|
||||
border: 0;
|
||||
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
&.mx_CallView_pip {
|
||||
width: 320px;
|
||||
padding-bottom: 8px;
|
||||
|
||||
border-radius: 8px;
|
||||
|
||||
background-color: $system;
|
||||
box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.2);
|
||||
|
||||
.mx_CallViewButtons {
|
||||
bottom: 13px;
|
||||
|
||||
.mx_CallViewButtons_button {
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
|
||||
&.mx_CallViewButtons_dropdownButton {
|
||||
width: var(--CallViewButtons_dropdownButton-size);
|
||||
height: var(--CallViewButtons_dropdownButton-size);
|
||||
}
|
||||
|
||||
&::before {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mx_CallView_content {
|
||||
min-height: 180px;
|
||||
}
|
||||
}
|
||||
|
||||
&.mx_CallView_large {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
flex: 1;
|
||||
|
||||
padding-bottom: 10px;
|
||||
|
||||
margin: $container-gap-width;
|
||||
/* The left side gap is fully handled by this margin. To prohibit bleeding on webkit browser. */
|
||||
margin-right: calc($container-gap-width / 2);
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
&.mx_CallView_belowWidget {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user