Commit Graph

27 Commits

Author SHA1 Message Date
Saúl Ibarra Corretgé 155e02bbfb core: refactor routing
Unfortunately, as the Jitsi Meet development evolved the routing mechanism
became more complex and thre logic ended up spread across multiple parts of the
codebase, which made it hard to follow and extend.

This change aims to fix that by rewriting the routing logic and centralizing it
in (pretty much) a single place, with no implicit inter-dependencies.

In order to arrive there, however, some extra changes were needed, which were
not caught early enough and are thus part of this change:

- JitsiMeetJS initialization is now synchronous: there is nothing async about
  it, and the only async requirement (Temasys support) was lifted. See [0].
- WebRTC support can be detected early: building on top of the above, WebRTC
  support can now be detected immediately, so take advantage of this to simplify
  how we handle unsupported browsers. See [0].

The new router takes decissions based on the Redux state at the time of
invocation. A route can be represented by either a component or a URl reference,
with the latter taking precedence. On mobile, obviously, there is no concept of
URL reference so routing is based solely on components.

[0]: https://github.com/jitsi/lib-jitsi-meet/pull/779
2018-07-11 22:58:41 -05:00
Leonard Kim c4b31435fb ref(video-layout): create middleware to update video layout
The goal will be to make video layout stateless and instead
get all state from redux.
2018-06-01 10:42:57 -07:00
paweldomas 26cd2f17f6 ref(chat): port incoming chat msg sound to react 2018-03-13 16:57:28 -05:00
Saúl Ibarra Corretgé 5305557ce5 [RN] Add a "reduced UI" mode
It's detected based on a size threshold.
2018-02-06 15:53:52 -06:00
Saúl Ibarra Corretgé 23550d377e feat(dark-theme): fix breakage on mobile
e09949be9f introduced the dark theme globally, but
it only applies to web, so move the logic to App.web.js
2017-10-23 09:12:31 -05:00
Lyubo Marinov caea02a322 [RN] Mitigate 'Not joining a new URL while in a conference' 2017-08-01 06:31:03 -05:00
Lyubo Marinov 96e0c56bde [RN] Don't override config values 2017-07-21 17:40:09 -05:00
Lyubo Marinov 7dbba59dee [RN] Disconnect/hangup before joining a new URL 2017-07-06 15:00:29 -05:00
Saúl Ibarra Corretgé 79d51bc379 feat(App): remove obsolete config prop
It's obsolete now, since config is handled in Redux. Also add a "defaultUrl"
prop so emdedding applications can select what the default base URL is.
2017-06-09 14:10:10 -05:00
Lyubo Marinov 320e67baa1 Fix the initialization of the (external) API
The counterpart of the external API in the Jitsi Meet Web app uses the
search URL param jwt to heuristically detect that the Web app is very
likely embedded (as an iframe) and, consequently, needs to forcefully
enable itself. It was looking at whether there was a JSON Web Token
(JWT) but that logic got broken when the JWT support was rewritten
because the check started happening before the search URL param jwt was
parsed.
2017-05-30 09:38:18 -05:00
Lyubo Marinov 2f3706bd37 [RN] Simplify
There were getDomain, setDomain, SET_DOMAIN, setRoomURL, SET_ROOM_URL
which together were repeating one and the same information and in the
case of the 'room URL' abstraction was not 100% accurate because it
would exist even when there was no room. Replace them all with a
'location URL' abstraction which exists with or without a room.

Then the 'room URL' abstraction was not used in (mobile) feature
share-room. Use the 'location URL' there now.

Finally, removes source code duplication in supporting the Web
application context root.
2017-05-09 16:31:21 -05:00
damencho 61470c0d24 Moves web password required dialog to react. 2017-03-30 14:21:05 -05:00
Lyubo Marinov aef6e33c91 [RN] Fix remote JS debugging 2017-03-01 21:33:49 -06:00
Lyubomir Marinov 8509efc8af Make the Web app aware of its context root 2017-02-07 08:27:23 -06:00
Lyubomir Marinov 49b3b49f3e Remove duplication
The files react/index.native.js and react/index.web.js ended up having
very similar source code related to initializing the Redux store. Remove
the duplication.

Additionally, I always wanted the App React Component to be consumed
without the need to provide a Redux store to it.
2017-01-26 17:24:11 -06:00
Lyubomir Marinov 62bafcaf63 Introduce Platform in React
React Native provides a Platform abstraction which React does not
provide.
2017-01-26 07:27:31 -06:00
Ilya Daynatovich 8248b14555 Integrate Mobile landing in the Redux app 2017-01-26 07:27:31 -06:00
Lyubomir Marinov ba3d65c01f Fix d17cc9fa
A bug was discovered in d17cc9fa which would raise a failure to push
into the browser's history if a base href was defined. Fix the failure
by removing react-router. Anyway, the usage of react-router was
incorrect because the app must hit the server infrastructure when it
enters a room because the server will choose the very app version then.
2017-01-15 18:28:02 -06:00
Lyubomir Marinov 856732abab Preserve URLs 2017-01-15 17:46:34 -06:00
Lyubomir Marinov 0912dbf130 Remove duplication, simplify, comply with coding style 2017-01-12 10:37:01 -06:00
Lyubomir Marinov 2f01746c55 Remove duplication, simplify, comply with coding style 2017-01-10 13:06:18 -06:00
Ilya Daynatovich f53fb3d814 Introduced new actions and functions for app initialization 2017-01-04 17:46:47 +02:00
Ilya Daynatovich e716c1738c Fix lint errs 2017-01-04 17:46:47 +02:00
Ilya Daynatovich 3190bfa058 Move redundant code from app.js 2017-01-04 17:45:52 +02:00
Ilya Daynatovich c570b80d7b moved app initialization to react app 2017-01-04 17:45:52 +02:00
Lyubomir Marinov 0db33bb45c React propTypes as static class properties 2016-11-30 19:53:40 -06:00
Ilya Daynatovich c3428e8213 Split React components out of index.html 2016-11-24 02:21:02 -06:00