* fix: Drop duplicate call of wait for owner.
* fix: Fixes leaking listeners while waiting for host to join.
While waiting for the host to join on the dialog we attempt to join over and over again till we are admitted to enter the meeting. While doing that authRequired flag is on, and we were adding listeners on and on.
* feat: Introduces conference join in progress action.
This event is coming from lib-jitsi-meet and is fired when we receive the first presence of series when joining. It is always fired before joined event.
* fix: Moves testing middleware to use CONFERENCE_JOIN_IN_PROGRESS.
* fix: Moves follow-me middleware to use CONFERENCE_JOIN_IN_PROGRESS.
* fix: Moves some polls logic to middleware and use CONFERENCE_JOIN_IN_PROGRESS.
* fix: Moves reactions middleware to use CONFERENCE_JOIN_IN_PROGRESS.
* fix: Moves recordings middleware to use CONFERENCE_JOIN_IN_PROGRESS.
* fix: Moves shared-video middleware to use CONFERENCE_JOIN_IN_PROGRESS.
* fix: Moves videosipgw middleware to use CONFERENCE_JOIN_IN_PROGRESS.
* squash: Fix comments.
* fix: Fixes join in progress on web.
* fix: Moves variable extraction inside handlers.
* fix: Moves variable extraction inside handlers again.
* fix: Moves etherpad middleware to use CONFERENCE_JOIN_IN_PROGRESS.
- add possibility to allow execution of the button's routine besides triggering
`toolbarButtonClicked` API event
- keep backwards compatibility
- get rid of `ToolbarButton`
* feat(toolbox) allow any toolbox button to be displayed as main
fixes the previous behaviour where only a certain set of buttons were whitelisted for being displayed in the main toolbar
* code review
* code review - fix avatar icon position
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.
Using anything non-serializable for action types is discouraged:
https://redux.js.org/faq/actions#actions
In fact, this is the Flow definition for dispatching actions:
declare export type DispatchAPI<A> = (action: A) => A;
declare export type Dispatch<A: { type: $Subtype<string> }> = DispatchAPI<A>;
Note how the `type` field is defined as a subtype of string, which Symbol isn’t.