When setSubject is called too early we store it as pensing, but thanks to the
default parameter value, if undefined is passed to the function we'll store the
empty string.
This will trigger a needless update because undefined !== ''.
There are occasions when role to moderator can change a little bit after joining the room, and initial try to set subject will silently be ignored if not moderator.
Up until now we relied on implicit loading of middlewares and reducers, through
having imports in each feature's index.js.
This leads to many complex import cycles which result in (sometimes) hard to fix
bugs in addition to (often) breaking mobile because a web-only feature gets
imported on mobile too, thanks to the implicit loading.
This PR changes that to make the process explicit. Both middlewares and reducers
are imported in a single place, the app entrypoint. They have been divided into
3 categories: any, web and native, which represent each of the platforms
respectively.
Ideally no feature should have an index.js exporting actions, action types and
components, but that's a larger ordeal, so this is just the first step in
getting there. In order to both set example and avoid large cycles the app
feature has been refactored to not have an idex.js itself.
> playinline attr needs to be set to true to stop local video from playing in full screen mode in Safari on iOS.
> This applies to the local video thumbnails and the camera previews from the device selection menu and video preview button
* fix: Fixes using token with no user context.
* feat(moderated): Adds option to add moderated rooms and subdomains.
When a user joins such room or subdomain in order to be a moderator needs to provide a valid jwt token for that room.
* squash: Renames function.
* ref: Removes filtering jicofo setting owners.
This will be disabled on jicofo side and will greatly simplify logic.
Also check the checks to avoid jwt for main domain to access subdomains and the other way around.
* fix: Skips allowners logic for admins.
Use a dimensions detecting root component. The Dimensions module does not
measure the app's view size, but the Window, which may not be the same, for
example on iOS when PiP is used.
Also refactor the aspect ratio wrap component since it can be taken directly
from the store.
Last, remove the use of DimensionsDetector on LargeVideo and TileView since they
occupy the full-screen anyway.
Fixes PiP mode on iOS.
* Add a checkbox for skipping the prejoin page on next use. (This is hidden for
now, until we also have a settings entry for it).
* Rework 'Join by Phone' buttons and add new overlay.
* Update the device status accordingly if there were errors while adding
devices.
* The input is filled with the display name if there was one previously used.
* Join the meeting on 'Enter' press.
* ref: disable ICE restart by default
The reason for that it's currently causing issues with signaling when
Octo is enabled. Also when we do an "ICE restart"(which is not a real
ICE restart), the client maintains the TCC sequence number counter, but
the bridge resets it. The bridge sends media packets with TCC sequence
numbers starting from 0.
The 'enableIceRestart' config option can be used to force it, but it's
not recommended.
Move all polyfills to a standalone feature, which gets imported before anything
else in the mobile entrypoint. This guarantees that any further import sees the
polyfilled environment.
In
1ffd75c0a6
we switched to using the localStorage wrapper provided by js-utils, which
checks for window.localStorage's availability very early. Our polyfill must be
applied earlier that any such import.
Here we are importing it in the entrypoint, which means no code ran before this,
literally.
* Add dialog to set the E2EE key
* Use the Redux action / middleware to update the key even when set through the
hash parameter
* Cleanup URL after processing the key so it's not recorded in browser history
* Accessibility: Make the native toolbox item communicate that it is a button.
* Accessibility: If an item is toggled, mark it as selected for accessibility
* Accessibility: Make the toolbox a toolbar for accessibility
* Accessibility: Mark the bottom sheet as a menu for accessibility
* Fix typo, AccessibilityRole, not AccessibleRole
* Statement fix
* Appease the linter
* Fix linting errors for real this time
* Expose toggle buttons better via ARIA
* Wire up the divs/li as role=button as per ARIA patterns
* Add flow annotations to appease the linter
* For role=button use aria-pressed not aria-checked