* feat: Initial UI part for A/V moderation.
Based on https://github.com/jitsi/jitsi-meet/pull/7779
Co-authored-by: Gabriel Imre <gabriel.lucaci@8x8.com>
* feat: Hides context menu in p2p or only moderators in the meeting.
* feat: Show notifications on enable/disable.
* feat(moderation): Add buttons to participant list & notifications
* fix(moderation): Fix raised hand participant leaving
* feat(moderation): Add support for video moderation
* feat(moderation): Add mute all video to context menu
* feat(moderation): Redo participants list 'More menu'
* fix: Fixes clearing av_moderation table.
* fix: Start moderation context menu
* fix(moderation): Show notification if unapproved participant tries to start CS
Co-authored-by: Gabriel Imre <gabriel.lucaci@8x8.com>
Co-authored-by: Vlad Piersec <vlad.piersec@8x8.com>
Display name for lobby operations notifications are taken from the list of knocking participants which is available only to moderators. In case of not all moderators the notifications were broken.
- Disables the invite buttons while invites are ongoing
- Adds a keyboard shortcut (Enter) to send out invites
- Closes AddPeopleDialog upon successful invites sent
- Fixes the SecurityDialog closing when trying to set E2EE key via Enter shortcut
- Removes superfluous separator from SecurityDialog
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.