Pārlūkot izejas kodu

ref(full-screen/middleware): use StateListenerRegistry

Use state listener to simplify the logic and not care about the actions
since the fullscreen flag is calculated from the current conference
state.
j8
paweldomas 7 gadus atpakaļ
vecāks
revīzija
bcb955ea72
1 mainītis faili ar 12 papildinājumiem un 29 dzēšanām
  1. 12
    29
      react/features/mobile/full-screen/middleware.js

+ 12
- 29
react/features/mobile/full-screen/middleware.js Parādīt failu

@@ -4,16 +4,9 @@ import { StatusBar } from 'react-native';
4 4
 import { Immersive } from 'react-native-immersive';
5 5
 
6 6
 import { APP_WILL_MOUNT, APP_WILL_UNMOUNT } from '../../app';
7
-import {
8
-    CONFERENCE_FAILED,
9
-    CONFERENCE_JOINED,
10
-    CONFERENCE_LEFT,
11
-    CONFERENCE_WILL_JOIN,
12
-    SET_AUDIO_ONLY,
13
-    getCurrentConference
14
-} from '../../base/conference';
7
+import { getCurrentConference } from '../../base/conference';
15 8
 import { Platform } from '../../base/react';
16
-import { MiddlewareRegistry } from '../../base/redux';
9
+import { MiddlewareRegistry, StateListenerRegistry } from '../../base/redux';
17 10
 
18 11
 import { _setImmersiveListener as _setImmersiveListenerA } from './actions';
19 12
 import { _SET_IMMERSIVE_LISTENER } from './actionTypes';
@@ -47,31 +40,21 @@ MiddlewareRegistry.register(store => next => action => {
47 40
         store.dispatch(_setImmersiveListenerA(undefined));
48 41
         break;
49 42
 
50
-    case CONFERENCE_WILL_JOIN:
51
-    case CONFERENCE_JOINED:
52
-    case SET_AUDIO_ONLY: {
53
-        const result = next(action);
54
-        const { audioOnly } = store.getState()['features/base/conference'];
55
-        const conference = getCurrentConference(store);
56
-
57
-        _setFullScreen(conference ? !audioOnly : false);
58
-
59
-        return result;
60
-    }
61
-
62
-    case CONFERENCE_FAILED:
63
-    case CONFERENCE_LEFT: {
64
-        const result = next(action);
65
-
66
-        _setFullScreen(false);
67
-
68
-        return result;
69
-    }
70 43
     }
71 44
 
72 45
     return next(action);
73 46
 });
74 47
 
48
+StateListenerRegistry.register(
49
+    /* selector */ state => {
50
+        const { audioOnly } = state['features/base/conference'];
51
+        const conference = getCurrentConference(state);
52
+
53
+        return conference ? !audioOnly : false;
54
+    },
55
+    /* listener */ fullScreen => _setFullScreen(fullScreen)
56
+);
57
+
75 58
 /**
76 59
  * Handler for Immersive mode changes. This will be called when Android's
77 60
  * immersive mode changes. This can happen without us wanting, so re-evaluate if

Notiek ielāde…
Atcelt
Saglabāt