* This is a huge update, mostly because we updated Gradle on the Android side, which includes a more strict bundle process for third party modules. On iOS, even though new architecture is disabled, we had to be explicit about it because of this react native update and because some updated dependencies have it enabled by default and are using turbo modules which are not available, YET, in our project.
* feat(visitors): Allow participants pane button.
* feat(visitors): Do not count the local participant when in visitor mode.
* feat(visitors): Use same buttons on web and native.
* feat(visitors): Always show the visitors count.
It was shown only for the main participants.
* feat(visitors): Skips showing local in participants pane when visitor.
Currently the clientWidth is not representing the window width but it is representing the available video space width since we are subtracting the width of the participants pane and chat area.
When any of the backend is used 'anonymous', 'jitsi-anonymous', 'internal_hashed', 'internal_plain', 'cyrus' and a participant becomes a moderator, because of external module or because set from jicofo we send to client with the self-presence about becoming moderator a default set of permissions which can be controlled via prosody config.
If using 'token' authentication the above applies only if there is a token and the token does not contain context.features.
* feat(rn,screen-sharing) allow sharing the screen and camera on mobile
With the advancements in layer suspension it should now be ok to do.
Users can still mute the camera themselves if they so desire.
Having the camera enabled while in the background is a separate effort.
* feat(visitors): Transcriptions for visitors.
* squash: Fixes filter iq.
* feat: Rewrites room name requests in rayo iq for visitors.
* squash: Handles visitors count that request transcriptions and the languages requested.
* fix(subtitles): Make sure we show captions button when no features but is transcribing.
- Move the styles from css to tss-react ones
- Dynamic fontSize based on the visible area of the page
- Remove the gaps in the background when a line is wrapped.
- Change the text color to white.
- Remove transparency.
getJwtDisabledButtons which is used as a selector will create a new array every time it is called. This will lead to unneccessary rerenders on every action where there is no difference in the result of getJwtDisabledButtons because the reference of the array will be different.
As part of the PR, it also fixes:
- Removes button aliases
- Unifies the keys in the object returned by getAllToolboxButtons and the button keys
- Makes sure that the number of buttons displayed are always the same as the number of buttons specified in the thresholds and removes the exception for not filling up the main toolbar with buttons from overflow menu when reactions button is disabled.
- Introduces a priority for buttons that will be used to fill empty spaces in the main toolbar.
Many of the events are not used at all or used only on one place. For the rest of them the listeners were added 2 times on promoted visitors and not cleaned at all.
Filters the toolbarButtons in redux depending on the visitor state instead of filtering them every time in mapStateToProps. This will prevent unnecessary rerenders of the toolbar.
Additionally:
- Moves visitor buttons const from features/config in features/toolbox.
- Removes dublicate functions isButtonEnabled and isToolbarButtonEnabled.
- Adds more buttons to the visitor allowed buttons which functionality has been any way accessible trough shortcuts or somewhere else.
- Enables customButtons to be visible for visitors.
The previous version of getToolbarButtons function was actually adding the custom buttons on every call to the config toolbarButtons array, effectively creating dublicates of every custom button. The PR fixes this issue.
Also now we will be running the getToolbarButtons calculation only when needed.