|
@@ -76,22 +76,31 @@ function _navigate({ dispatch, getState }) {
|
76
|
76
|
const { app, getRouteToRender } = state['features/app'];
|
77
|
77
|
const routeToRender = getRouteToRender && getRouteToRender(state);
|
78
|
78
|
|
79
|
|
- // Create/destroy the local tracks as needed: create them the first time we
|
80
|
|
- // are going to render an actual route (be that the WelcomePage or the
|
81
|
|
- // Conference).
|
82
|
|
- //
|
83
|
|
- // When the WelcomePage is disabled, the app will transition to the
|
84
|
|
- // null/undefined route. Detect these transitions and create/destroy the
|
85
|
|
- // local tracks so the camera doesn't stay open if the app is not rendering
|
86
|
|
- // any component.
|
87
|
|
- if (typeof routeToRender === 'undefined' || routeToRender === null) {
|
88
|
|
- // Destroy the local tracks if there is no route to render and there is
|
89
|
|
- // no welcome page.
|
90
|
|
- app.props.welcomePageEnabled || dispatch(destroyLocalTracks());
|
91
|
|
- } else {
|
92
|
|
- // Create the local tracks if they haven't been created yet.
|
93
|
|
- state['features/base/tracks'].some(t => t.local)
|
94
|
|
- || dispatch(createInitialLocalTracks());
|
|
79
|
+ // FIXME The following is logic specific to the user experience of the
|
|
80
|
+ // mobile/React Native app. Firstly, I don't like that it's here at all.
|
|
81
|
+ // Secondly, I copied the mobile/React Native detection from
|
|
82
|
+ // react/features/base/config/reducer.js because I couldn't iron out an
|
|
83
|
+ // abstraction. Because of the first point, I'm leaving the second point
|
|
84
|
+ // unresolved to attract attention to the fact that the following needs more
|
|
85
|
+ // thinking.
|
|
86
|
+ if (navigator.userAgent.match(/react[ \s-]*native/i)) {
|
|
87
|
+ // Create/destroy the local tracks as needed: create them the first time
|
|
88
|
+ // we are going to render an actual route (be that the WelcomePage or
|
|
89
|
+ // the Conference).
|
|
90
|
+ //
|
|
91
|
+ // When the WelcomePage is disabled, the app will transition to the
|
|
92
|
+ // null/undefined route. Detect these transitions and create/destroy the
|
|
93
|
+ // local tracks so the camera doesn't stay open if the app is not
|
|
94
|
+ // rendering any component.
|
|
95
|
+ if (typeof routeToRender === 'undefined' || routeToRender === null) {
|
|
96
|
+ // Destroy the local tracks if there is no route to render and there
|
|
97
|
+ // is no WelcomePage.
|
|
98
|
+ app.props.welcomePageEnabled || dispatch(destroyLocalTracks());
|
|
99
|
+ } else {
|
|
100
|
+ // Create the local tracks if they haven't been created yet.
|
|
101
|
+ state['features/base/tracks'].some(t => t.local)
|
|
102
|
+ || dispatch(createInitialLocalTracks());
|
|
103
|
+ }
|
95
|
104
|
}
|
96
|
105
|
|
97
|
106
|
app._navigate(routeToRender);
|