The new behavior is as follows:
IF a user has a token and `features` is not set, we treat it as if the
feature was enabled.
IF a user has a token and `features` is set, we check if the feature
name has a value of "true".
`isJwtFeatureEnabled` also provides a way to specify the default value
in case there is no token.
* fix: When adding a room param to urls check for previous params.
* squash: Uses URL object to modify the url.
* squash: Use common connection options from base/connection.
Normalizes bosh url and for web.
* squash: Adds release param to external api and handles it.
* feat: Adds release handling for mobile(links in welcome page).
* squash: Fixes comments.
* fix: Moves getDialInConferenceID, so we can reuse conf mapper url generation.
* fix: Moves getDialInNumbers, so we can reuse url generation.
* squash: Moves dialInInfo page path to constants.
* feat: Adds the location address as a param to the conf mapper request.
* feat: Adds option conf mapper and numbers urls to contain parameters (?).
* squash: Adds more doc comments.
* squash: Makes sure we strip url params if any, and they do not reach fetch.
* Only show more numbers link if multiple numbers are available
* Fixed some linter errors
* Try to make flow happy
* Fixed another linter error
* Another try to make eslint happy
* Silence eslint
* Added new config to enable individual sharing features
* make config values url friendly
* Add new setting to whitelist
* Fixed some linter issues
* Fixed more linter issues
* Fixed merge error
* Check if interfaceConfig is defined
* Only show more numbers link if there is more than one number
React Native doesn't define __filename nor __dirname so do it artisanally. In
addition, this helps with centralizing the configuration passed to loggers.
* fix(invite): decode the meeting name
* squash: try to make mobile join same encoded meeting name as web
* Decodes and generated texts for share and copy meeting info.
Decodes in all cases except when it contains a space, as it will generate wrong links when pasted/shared in external applications.
* Adds new format of phoneList service and re-design dial in numbers page.
Adds flags and country names (with translations) for the numbers if using the new format.
* Fixes tests and fixes get default number.
* Updates swagger with new format.
* Moves html back yo table.
Fixes displaying on mobile and also the tel: URI generation. The tel: URI is tested on Android and iOS and seems to work (Android was not interpreting 'p', but both seems to like ',').
* Fixes a wrong return statement.
* Small fixes.
For the most part the changes are taking the "static propTypes" declaration off
of components and declaring them as Flow types. Sometimes to support flow some
method signatures had to be added. There are some exceptions in which more had
to be done to tame the beast:
- AbstractVideoTrack: put in additional truthy checks for videoTrack.
- Video: add truthy checks for the _videoElement ref.
- shouldRenderVideoTrack function: Some component could pass null for the
videoTrack argument and Flow wanted that called out explicitly.
- DisplayName: Add a truthy check for the input ref before acting on it.
- NumbersList: Move array checks inline for Flow to comprehend array methods
could be called. Add type checks in the Object.entries loop as the value is
assumed to be a mixed type by Flow.
- AbstractToolbarButton: add additional truthy check for passed in type.
* Implements calendar entries edit.
Share text generation between calendar-sync and the share-room feature.
* Fixing comments.
* Clone the event element we modify on update.
BaseApp does all the heavy-lifting related to creating the redux store,
navigation, and so on.
App currently handles URL props and actually triggering navigation based on
them.
If multiple JitsiMeetView instances are created (not necessarily
existing at once), it's possible to hit a TypeError when reading the
React Component props of the currently mounted App. Anyway, in certain
places we're already protecting against that out of abundance of caution
so it makes no sense to not protect everywhere.