* fix(ts,connection) avoid mixing web and native code
* chore(ts) split config
The mobile part is still WIP.
* Remove default tsconfig
* Fix ts-loader - use web tsconfig
* Fix tsconfig
Use noEmit only on npm scripts (for type checking), but don't use it in webpack
* Fix
* Fix import
* Fix
Co-authored-by: Saúl Ibarra Corretgé <saghul@jitsi.org>
Due to local storage limitations we might end up making the URL huge
when we save the state there. Avoid the issue at the root by never
storing URLs in that case.
Closes: https://github.com/jitsi/jitsi-meet/issues/11567
Show GIF menu in reactions menu
Search GIFs using the GIPHY API
Show GIFs as images in chat
Show GIFs on the thumbnail of the participant that sent it
Move GIF focus using up/ down arrows and send with Enter
Added analytics
Fixed analytics where event names had duplicated words (eg. calendar.calendar.selected.selected)
Group reaction buttons analytics into one event
Removed unused code
Don't cleanup URL params when jitsi is in iframe
Fixes an issue where the user right-clicks on the iframe and Reload frame. This causes a refresh of the iframe, not the whole page, but without the parameters (jwt, configOverwrite etc are all lost). The parameters are part of the URL, so by not cleaning them up we make sure that on reload we still have all params
Changed screen capture to non effect. Effects are used to alter the stream, this feature does not need to alter the stream, it just needs access to it
Changed image diff library. Previous library diff’ed the whole image, the new one has en early return threshold
Use ImageCaptureAPI to take the screenshot. Added polyfill for it and polyfill for createImageBitmap
Added analytics
- Don't initialize handler's is their API key is not set
- Don't swallow exceptions when creating handlers
- Don't remove all handlers if an external one fails
- Dispose the analytics subsystem if no handlers are registered
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.