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.
* 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
- Adds the ability to share video as a "PiP" when screenshare is in progress.
- Add a method for creating a local presenter track.
- Make sure isLocalVideoTrackMuted returns the correct mute state when only screenshare is present.
- Make sure we get the updated window size of the window being shared before painting it on the canvas.
- Make sure we check if the shared window has been resized