@applicaster/zapp-react-native-ui-components 12.0.0-alpha.7725319213 → 12.0.0-alpha.8121552272

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/Components/AudioPlayer/AudioPlayer.tsx +9 -1
  2. package/Components/AudioPlayer/__tests__/__snapshots__/audioPlayer.test.js.snap +5 -0
  3. package/Components/AudioPlayer/helpers.tsx +1 -0
  4. package/Components/Cell/Cell.tsx +2 -2
  5. package/Components/Cell/CellWithFocusable.tsx +21 -14
  6. package/Components/Cell/TvOSCellComponent.tsx +2 -2
  7. package/Components/ErrorScreen/index.tsx +1 -1
  8. package/Components/FocusableCell/index.tsx +7 -7
  9. package/Components/FocusableList/FocusableChild.ts +24 -14
  10. package/Components/FocusableList/FocusableItem.tsx +1 -1
  11. package/Components/FocusableList/FocusableListItemWrapper.tsx +76 -0
  12. package/Components/FocusableList/hooks/useCellState.android.ts +3 -1
  13. package/Components/FocusableList/index.tsx +26 -25
  14. package/Components/GeneralContentScreen/GeneralContentScreen.tsx +6 -3
  15. package/Components/HookRenderer/index.tsx +1 -6
  16. package/Components/Image/Image.android.tsx +3 -25
  17. package/Components/Image/Image.tsx +18 -2
  18. package/Components/Image/utils/index.ts +39 -0
  19. package/Components/Layout/TV/__tests__/index.test.tsx +1 -34
  20. package/Components/Layout/TV/index.tsx +20 -36
  21. package/Components/MasterCell/DefaultComponents/Image/Image.android.tsx +9 -26
  22. package/Components/MasterCell/DefaultComponents/Image/hooks/useImageSize.ts +65 -0
  23. package/Components/MasterCell/DefaultComponents/LiveImage/index.tsx +17 -2
  24. package/Components/MasterCell/DefaultComponents/SecondaryImage/Image.tsx +3 -2
  25. package/Components/MasterCell/DefaultComponents/Toggle.tsx +5 -1
  26. package/Components/MasterCell/SharedUI/CollapsibleTextContainer/index.ts +8 -14
  27. package/Components/MasterCell/utils/index.ts +16 -5
  28. package/Components/ModalComponent/BottomSheetModalContent.tsx +121 -0
  29. package/Components/ModalComponent/Button/Item.tsx +82 -0
  30. package/Components/ModalComponent/Button/ItemIcon.tsx +60 -0
  31. package/Components/ModalComponent/Button/ItemLabel.tsx +101 -0
  32. package/Components/ModalComponent/Button/assets.ts +4 -0
  33. package/Components/ModalComponent/Button/index.tsx +111 -0
  34. package/Components/ModalComponent/Header/CloseButton.tsx +59 -0
  35. package/Components/ModalComponent/Header/Title.tsx +70 -0
  36. package/Components/ModalComponent/Header/assets.ts +4 -0
  37. package/Components/ModalComponent/Header/index.tsx +71 -0
  38. package/Components/ModalComponent/Header/utils.ts +79 -0
  39. package/Components/ModalComponent/index.tsx +38 -0
  40. package/Components/ModalComponent/utils.ts +126 -0
  41. package/Components/PlayerContainer/PlayerContainer.tsx +59 -31
  42. package/Components/PlayerContainer/ProgramInfo/index.tsx +3 -1
  43. package/Components/PlayerImageBackground/index.tsx +34 -8
  44. package/Components/River/ComponentsMap/ComponentsMap.tsx +25 -0
  45. package/Components/River/TV/River.tsx +2 -2
  46. package/Components/River/__tests__/__snapshots__/componentsMap.test.js.snap +1 -1
  47. package/Components/River/__tests__/componentsMap.test.js +7 -0
  48. package/Components/River/useScreenConfiguration.ts +2 -2
  49. package/Components/RouteManager/__tests__/__snapshots__/routeManager.test.js.snap +1 -0
  50. package/Components/RouteManager/__tests__/routeManager.test.js +9 -2
  51. package/Components/RouteManager/index.tsx +5 -3
  52. package/Components/Screen/__tests__/Screen.test.tsx +88 -74
  53. package/Components/Screen/__tests__/__snapshots__/Screen.test.tsx.snap +20 -6
  54. package/Components/Screen/__tests__/navigationHandler.test.ts +1 -178
  55. package/Components/Screen/index.tsx +92 -43
  56. package/Components/Screen/navigationHandler.ts +0 -82
  57. package/Components/ScreenResolver/index.tsx +1 -1
  58. package/Components/Tabs/TV/styles.ts +1 -1
  59. package/Components/VideoLive/LiveImageManager.ts +2 -2
  60. package/Components/VideoLive/PlayerLiveImageComponent.tsx +31 -28
  61. package/Components/VideoLive/__tests__/PlayerLiveImageComponent.test.tsx +45 -3
  62. package/Components/VideoLive/__tests__/__snapshots__/PlayerLiveImageComponent.test.tsx.snap +22 -27
  63. package/Components/VideoModal/ModalAnimation/AnimatedPlayerModalWrapper.tsx +78 -0
  64. package/Components/VideoModal/ModalAnimation/AnimatedScrollModal.tsx +342 -0
  65. package/Components/VideoModal/ModalAnimation/AnimatedVideoPlayerComponent.tsx +151 -0
  66. package/Components/VideoModal/ModalAnimation/AnimationComponent.tsx +438 -0
  67. package/Components/VideoModal/ModalAnimation/ModalAnimationContext.tsx +143 -0
  68. package/Components/VideoModal/ModalAnimation/index.ts +15 -0
  69. package/Components/VideoModal/ModalAnimation/utils.ts +299 -0
  70. package/Components/VideoModal/PlayerDetails.tsx +3 -0
  71. package/Components/VideoModal/PlayerWrapper.tsx +64 -41
  72. package/Components/VideoModal/VideoModal.tsx +8 -25
  73. package/Components/VideoModal/__tests__/PlayerDetails.test.tsx +0 -2
  74. package/Components/VideoModal/__tests__/PlayerWrapper.test.tsx +5 -1
  75. package/Components/VideoModal/__tests__/__snapshots__/PlayerWrapper.test.tsx.snap +246 -166
  76. package/Components/VideoModal/utils.ts +3 -3
  77. package/Components/Viewport/ViewportAware/__tests__/viewportAware.test.js +26 -21
  78. package/Components/Viewport/ViewportTracker/__tests__/viewportTracker.test.js +4 -5
  79. package/Components/ZappUIComponent/index.tsx +22 -12
  80. package/Components/index.js +2 -0
  81. package/Contexts/ScreenContext/index.tsx +1 -4
  82. package/Decorators/ComponentsMapWrapper/withComponentsMapProvider.tsx +7 -2
  83. package/package.json +5 -5
  84. package/Components/VideoModal/hooks/usePosition.ts +0 -50
@@ -4,9 +4,7 @@ import { StyleSheet, View } from "react-native";
4
4
 
5
5
  import { HandlePlayable } from "@applicaster/zapp-react-native-ui-components/Components/HandlePlayable";
6
6
  import {
7
- MenuTypes,
8
7
  useNavigation,
9
- useNavigationType,
10
8
  useZappHooksForEntry,
11
9
  } from "@applicaster/zapp-react-native-utils/reactHooks";
12
10
  import { useIsInitialRender } from "@applicaster/zapp-react-native-utils/reactHooks/utils";
@@ -16,12 +14,12 @@ import {
16
14
  allowedOrientationsForScreen,
17
15
  ORIENTATIONS,
18
16
  } from "@applicaster/zapp-react-native-utils/appUtils/orientationHelper";
17
+ import { useIsTablet } from "@applicaster/zapp-react-native-utils/reactHooks/device/useIsTablet";
19
18
 
20
19
  import { withModalNavigationContextProvider } from "../../Contexts/ModalNavigationContext";
21
20
  import { useModalSize } from "./hooks/useModalSize";
22
21
  import { useBackgroundColor } from "./hooks/useBackgroundColor";
23
22
  import { useInitialPlayerState } from "./hooks/useInitialPlayerState";
24
- import { usePosition } from "./hooks/usePosition";
25
23
  import { APP_EVENTS } from "@applicaster/zapp-react-native-utils/appUtils/events";
26
24
  import { Spinner } from "../Spinner";
27
25
  import { PathnameContext } from "@applicaster/zapp-react-native-ui-components/Contexts/PathnameContext";
@@ -31,6 +29,8 @@ import { requiresAuthentication } from "@applicaster/zapp-react-native-utils/con
31
29
  import { playerManager } from "@applicaster/zapp-react-native-utils/appUtils";
32
30
  import { ScreenContextProvider } from "../../Contexts/ScreenContext";
33
31
 
32
+ import { AnimatedPlayerModalWrapper } from "@applicaster/zapp-react-native-ui-components/Components/VideoModal/ModalAnimation";
33
+
34
34
  const styles = StyleSheet.create({
35
35
  container: {
36
36
  top: 0,
@@ -59,22 +59,9 @@ const VideoModalComponent = () => {
59
59
  const onVideoModalHookSuccessAnalyticsEvent = useVideoModalAnalytics();
60
60
 
61
61
  const modalSize = useModalSize();
62
-
63
62
  const isFirstRender = useIsInitialRender();
64
-
65
63
  const backgroundColor = useBackgroundColor();
66
64
 
67
- const { top, height, bottom } = usePosition();
68
-
69
- const navType = useNavigationType();
70
- const isBottomBarsNavigation = navType === MenuTypes.bottomTabBar;
71
- const heightWithSafeArea = height ? height + bottom : null;
72
-
73
- const dockedHeight =
74
- isBottomBarsNavigation && height ? height : heightWithSafeArea;
75
-
76
- const dockedBottom = isBottomBarsNavigation ? bottom : 0;
77
-
78
65
  const {
79
66
  closeVideoModal,
80
67
  setVideoModalItem,
@@ -83,8 +70,6 @@ const VideoModalComponent = () => {
83
70
  maximiseVideoModal,
84
71
  } = useNavigation();
85
72
 
86
- const docked = mode === "MINIMIZED";
87
-
88
73
  const logTimestamp = useProfilerLogging();
89
74
 
90
75
  useInitialPlayerState(fullscreenVideoModal, maximiseVideoModal, item);
@@ -105,9 +90,10 @@ const VideoModalComponent = () => {
105
90
  }, [item?.id]);
106
91
 
107
92
  const isLandscape = modalSize.width > modalSize.height;
93
+ const isTablet = useIsTablet();
108
94
 
109
95
  React.useEffect(() => {
110
- if (isLandscape && mode !== "FULLSCREEN" && mode !== "PIP") {
96
+ if (!isTablet && isLandscape && mode !== "FULLSCREEN" && mode !== "PIP") {
111
97
  fullscreenVideoModal();
112
98
  }
113
99
  }, [isLandscape]);
@@ -143,13 +129,10 @@ const VideoModalComponent = () => {
143
129
  const pathname = `${ROUTE_TYPES.VIDEO_MODAL}/${item?.id}`;
144
130
 
145
131
  return (
146
- <View
132
+ <AnimatedPlayerModalWrapper
147
133
  style={[
148
134
  styles.container,
149
135
  {
150
- top,
151
- height: dockedHeight,
152
- bottom: dockedBottom,
153
136
  backgroundColor,
154
137
  },
155
138
  ]}
@@ -160,7 +143,7 @@ const VideoModalComponent = () => {
160
143
  <HandlePlayable
161
144
  item={item}
162
145
  isModal={mode !== "PIP"}
163
- modalHeight={docked ? height : modalSize.height}
146
+ modalHeight={modalSize.height}
164
147
  modalWidth={modalSize.width}
165
148
  mode={mode}
166
149
  />
@@ -171,7 +154,7 @@ const VideoModalComponent = () => {
171
154
  )}
172
155
  </PathnameContext.Provider>
173
156
  </ScreenContextProvider>
174
- </View>
157
+ </AnimatedPlayerModalWrapper>
175
158
  );
176
159
  };
177
160
 
@@ -8,8 +8,6 @@ const props = {
8
8
  configuration: { modal_background_color: "transparent" },
9
9
  };
10
10
 
11
- jest.mock("react-native");
12
-
13
11
  jest.mock("react-native-safe-area-context", () => ({
14
12
  useSafeAreaInsets: jest.fn(() => ({
15
13
  top: 20,
@@ -21,6 +21,8 @@ const useIsTablet = jest.fn();
21
21
 
22
22
  jest.mock("react-native");
23
23
 
24
+ jest.mock("react-native-gesture-handler");
25
+
24
26
  jest.mock("../PlayerDetails", () => ({ PlayerDetails: View }));
25
27
 
26
28
  jest.mock("@applicaster/zapp-react-native-utils/reactHooks/device", () => ({
@@ -38,6 +40,7 @@ jest.mock("@applicaster/zapp-react-native-utils/reactUtils", () => ({
38
40
  }));
39
41
 
40
42
  jest.mock("@applicaster/zapp-react-native-utils/reactHooks/navigation", () => ({
43
+ isNavBarVisible: jest.fn(() => true),
41
44
  useRoute: jest.fn(() => ({
42
45
  pathname: "/river/testId",
43
46
  })),
@@ -45,6 +48,7 @@ jest.mock("@applicaster/zapp-react-native-utils/reactHooks/navigation", () => ({
45
48
  canGoBack: () => false,
46
49
  currentRoute: "/river/testId",
47
50
  data: { screen: { id: "testId" } },
51
+ videoModalState: { visible: false },
48
52
  })),
49
53
  }));
50
54
 
@@ -94,7 +98,7 @@ describe("PlayerWrapper", () => {
94
98
  useIsTablet.mockReturnValue(false);
95
99
 
96
100
  const children = jest.fn(() => {});
97
- const dimensions = { height: 50, width: props.style.width };
101
+ const dimensions = { height: undefined, width: props.style.width };
98
102
 
99
103
  const element = renderWithProviders(
100
104
  <PlayerWrapper
@@ -1,249 +1,329 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`PlayerWrapper renders inline 1`] = `
4
- <RNCSafeAreaView
5
- edges={
6
- Object {
7
- "bottom": "off",
8
- "left": "off",
9
- "right": "off",
10
- "top": "additive",
11
- }
12
- }
4
+ <RNCSafeAreaProvider
5
+ onInsetsChange={[Function]}
13
6
  style={
14
7
  Array [
15
8
  Object {
16
- "flexDirection": "column",
17
- },
18
- Object {
19
- "backgroundColor": "transparent",
20
- },
21
- Object {
22
- "height": 800,
23
- "width": 300,
9
+ "flex": 1,
24
10
  },
25
- Object {},
11
+ undefined,
26
12
  ]
27
13
  }
28
14
  >
29
- <View
15
+ <RNCSafeAreaView
16
+ edges={
17
+ Object {
18
+ "bottom": "off",
19
+ "left": "off",
20
+ "right": "off",
21
+ "top": "additive",
22
+ }
23
+ }
30
24
  style={
31
25
  Array [
32
26
  Object {
33
- "alignSelf": "center",
34
- "position": "relative",
35
- "zIndex": 200,
27
+ "backgroundColor": "transparent",
36
28
  },
37
29
  Object {
38
- "aspectRatio": 1.7777777777777777,
39
- "height": undefined,
40
- "width": "100%",
30
+ "height": 800,
31
+ "width": 300,
41
32
  },
42
33
  Object {},
43
- Object {},
44
34
  ]
45
35
  }
46
- testID="test-player-container"
47
- />
48
- <View
49
- configuration={
50
- Object {
51
- "tablet_landscape_player_container_background_color": "red",
52
- "tablet_landscape_sidebar_width": "35%",
53
- }
54
- }
55
- entry={
56
- Object {
57
- "id": "test",
36
+ >
37
+ <View
38
+ additionalData={
39
+ Object {
40
+ "saveArea": true,
41
+ }
58
42
  }
59
- }
60
- isTabletLandscape={false}
61
- style={
62
- Object {
63
- "flex": 1,
64
- "paddingTop": 20,
43
+ animationType="moveUpComponent"
44
+ style={
45
+ Object {
46
+ "flexDirection": "column",
47
+ }
65
48
  }
66
- }
67
- />
68
- </RNCSafeAreaView>
49
+ >
50
+ <View
51
+ style={
52
+ Array [
53
+ Object {
54
+ "alignSelf": "center",
55
+ "position": "relative",
56
+ "zIndex": 200,
57
+ },
58
+ Object {
59
+ "aspectRatio": 1.7777777777777777,
60
+ "height": undefined,
61
+ "width": "100%",
62
+ },
63
+ Object {},
64
+ Object {},
65
+ ]
66
+ }
67
+ testID="test-player-container"
68
+ />
69
+ <View
70
+ style={
71
+ Object {
72
+ "flex": 1,
73
+ }
74
+ }
75
+ />
76
+ </View>
77
+ </RNCSafeAreaView>
78
+ </RNCSafeAreaProvider>
69
79
  `;
70
80
 
71
81
  exports[`PlayerWrapper renders inline and docked 1`] = `
72
- <RNCSafeAreaView
73
- edges={
74
- Object {
75
- "bottom": "additive",
76
- "left": "off",
77
- "right": "off",
78
- "top": "off",
79
- }
80
- }
82
+ <RNCSafeAreaProvider
83
+ onInsetsChange={[Function]}
81
84
  style={
82
85
  Array [
83
86
  Object {
84
- "flexDirection": "column",
85
- },
86
- Object {
87
- "backgroundColor": "transparent",
88
- },
89
- Object {
90
- "height": 50,
91
- "width": 300,
87
+ "flex": 1,
92
88
  },
93
- Object {},
89
+ undefined,
94
90
  ]
95
91
  }
96
92
  >
97
- <View
93
+ <RNCSafeAreaView
94
+ edges={
95
+ Object {
96
+ "bottom": "off",
97
+ "left": "off",
98
+ "right": "off",
99
+ "top": "additive",
100
+ }
101
+ }
98
102
  style={
99
103
  Array [
100
104
  Object {
101
- "alignSelf": "center",
102
- "position": "relative",
103
- "zIndex": 200,
105
+ "backgroundColor": "transparent",
104
106
  },
105
107
  Object {
106
- "aspectRatio": undefined,
107
- "height": 50,
108
- "width": "100%",
108
+ "height": undefined,
109
+ "width": 300,
109
110
  },
110
111
  Object {},
111
- Object {},
112
112
  ]
113
113
  }
114
- testID="test-player-container"
115
- />
116
- <View
117
- style={
118
- Object {
119
- "flex": 1,
120
- "paddingTop": 20,
114
+ >
115
+ <View
116
+ additionalData={
117
+ Object {
118
+ "saveArea": true,
119
+ }
121
120
  }
122
- }
123
- />
124
- </RNCSafeAreaView>
121
+ animationType="moveUpComponent"
122
+ style={
123
+ Object {
124
+ "flexDirection": "column",
125
+ }
126
+ }
127
+ >
128
+ <View
129
+ style={
130
+ Array [
131
+ Object {
132
+ "alignSelf": "center",
133
+ "position": "relative",
134
+ "zIndex": 200,
135
+ },
136
+ Object {
137
+ "aspectRatio": undefined,
138
+ "height": undefined,
139
+ "width": "100%",
140
+ },
141
+ Object {},
142
+ Object {},
143
+ ]
144
+ }
145
+ testID="test-player-container"
146
+ />
147
+ <View
148
+ style={
149
+ Object {
150
+ "flex": 1,
151
+ }
152
+ }
153
+ />
154
+ </View>
155
+ </RNCSafeAreaView>
156
+ </RNCSafeAreaProvider>
125
157
  `;
126
158
 
127
159
  exports[`PlayerWrapper renders inline on tablet in landscape orientation 1`] = `
128
- <RNCSafeAreaView
129
- edges={
130
- Object {
131
- "bottom": "off",
132
- "left": "off",
133
- "right": "off",
134
- "top": "additive",
135
- }
136
- }
160
+ <RNCSafeAreaProvider
161
+ onInsetsChange={[Function]}
137
162
  style={
138
163
  Array [
139
164
  Object {
140
- "flexDirection": "row",
141
- },
142
- Object {
143
- "backgroundColor": "red",
144
- },
145
- Object {
146
- "height": 800,
147
- "width": 300,
165
+ "flex": 1,
148
166
  },
149
- Object {},
167
+ undefined,
150
168
  ]
151
169
  }
152
170
  >
153
- <View
171
+ <RNCSafeAreaView
172
+ edges={
173
+ Object {
174
+ "bottom": "off",
175
+ "left": "off",
176
+ "right": "off",
177
+ "top": "additive",
178
+ }
179
+ }
154
180
  style={
155
181
  Array [
156
182
  Object {
157
- "alignSelf": "center",
158
- "position": "relative",
159
- "zIndex": 200,
183
+ "backgroundColor": "red",
160
184
  },
161
185
  Object {
162
- "aspectRatio": 1.7777777777777777,
163
- "height": undefined,
164
- "width": 195,
186
+ "height": 800,
187
+ "width": 300,
165
188
  },
166
189
  Object {},
167
- Object {},
168
190
  ]
169
191
  }
170
- testID="test-player-container"
171
- />
172
- <View
173
- configuration={
174
- Object {
175
- "tablet_landscape_player_container_background_color": "red",
176
- "tablet_landscape_sidebar_width": "35%",
177
- }
178
- }
179
- entry={
180
- Object {
181
- "id": "test",
192
+ >
193
+ <View
194
+ additionalData={
195
+ Object {
196
+ "saveArea": true,
197
+ }
182
198
  }
183
- }
184
- isTabletLandscape={true}
185
- style={
186
- Object {
187
- "flex": 1,
188
- "paddingTop": 20,
199
+ animationType="moveUpComponent"
200
+ style={
201
+ Object {
202
+ "flexDirection": "row",
203
+ }
189
204
  }
190
- }
191
- />
192
- </RNCSafeAreaView>
205
+ >
206
+ <View
207
+ style={
208
+ Array [
209
+ Object {
210
+ "alignSelf": "center",
211
+ "position": "relative",
212
+ "zIndex": 200,
213
+ },
214
+ Object {
215
+ "aspectRatio": 1.7777777777777777,
216
+ "height": undefined,
217
+ "width": 195,
218
+ },
219
+ Object {},
220
+ Object {},
221
+ ]
222
+ }
223
+ testID="test-player-container"
224
+ >
225
+ <View
226
+ additionalData={
227
+ Object {
228
+ "disableAnimatedComponent": false,
229
+ "resetAnimationValue": undefined,
230
+ "useLayoutMeasure": true,
231
+ }
232
+ }
233
+ animationType="moveUpComponent"
234
+ style={
235
+ Object {
236
+ "flex": 1,
237
+ }
238
+ }
239
+ />
240
+ </View>
241
+ <View
242
+ style={
243
+ Object {
244
+ "flex": 1,
245
+ }
246
+ }
247
+ />
248
+ </View>
249
+ </RNCSafeAreaView>
250
+ </RNCSafeAreaProvider>
193
251
  `;
194
252
 
195
253
  exports[`PlayerWrapper renders properly 1`] = `
196
- <RNCSafeAreaView
197
- edges={
198
- Object {
199
- "bottom": "off",
200
- "left": "off",
201
- "right": "off",
202
- "top": "additive",
203
- }
204
- }
254
+ <RNCSafeAreaProvider
255
+ onInsetsChange={[Function]}
205
256
  style={
206
257
  Array [
207
258
  Object {
208
- "flexDirection": "column",
209
- },
210
- Object {
211
- "backgroundColor": "transparent",
212
- },
213
- Object {
214
- "height": 800,
215
- "width": 300,
259
+ "flex": 1,
216
260
  },
217
- Object {},
261
+ undefined,
218
262
  ]
219
263
  }
220
264
  >
221
- <View
265
+ <RNCSafeAreaView
266
+ edges={
267
+ Object {
268
+ "bottom": "off",
269
+ "left": "off",
270
+ "right": "off",
271
+ "top": "additive",
272
+ }
273
+ }
222
274
  style={
223
275
  Array [
224
276
  Object {
225
- "alignSelf": "center",
226
- "position": "relative",
227
- "zIndex": 200,
277
+ "backgroundColor": "transparent",
228
278
  },
229
279
  Object {
230
- "aspectRatio": 1.7786666666666666,
231
- "height": undefined,
232
- "width": "100%",
280
+ "height": 800,
281
+ "width": 300,
233
282
  },
234
283
  Object {},
235
- Object {},
236
284
  ]
237
285
  }
238
- testID="test-player-container"
239
- />
240
- <View
241
- style={
242
- Object {
243
- "flex": 1,
244
- "paddingTop": 20,
286
+ >
287
+ <View
288
+ additionalData={
289
+ Object {
290
+ "saveArea": true,
291
+ }
245
292
  }
246
- }
247
- />
248
- </RNCSafeAreaView>
293
+ animationType="moveUpComponent"
294
+ style={
295
+ Object {
296
+ "flexDirection": "column",
297
+ }
298
+ }
299
+ >
300
+ <View
301
+ style={
302
+ Array [
303
+ Object {
304
+ "alignSelf": "center",
305
+ "position": "relative",
306
+ "zIndex": 200,
307
+ },
308
+ Object {
309
+ "aspectRatio": 1.7786666666666666,
310
+ "height": undefined,
311
+ "width": "100%",
312
+ },
313
+ Object {},
314
+ Object {},
315
+ ]
316
+ }
317
+ testID="test-player-container"
318
+ />
319
+ <View
320
+ style={
321
+ Object {
322
+ "flex": 1,
323
+ }
324
+ }
325
+ />
326
+ </View>
327
+ </RNCSafeAreaView>
328
+ </RNCSafeAreaProvider>
249
329
  `;
@@ -23,13 +23,13 @@ export const useConfiguration = () => {
23
23
  const targetScreenConfiguration = rivers?.[targetScreenId];
24
24
 
25
25
  const pluginConfiguration =
26
- pluginConfigurations[targetScreenConfiguration.type].configuration_json;
26
+ pluginConfigurations[targetScreenConfiguration?.type]?.configuration_json;
27
27
 
28
28
  const playerPluginConfig = playerManager.getPluginConfiguration();
29
29
 
30
30
  const config = R.mergeRight(playerPluginConfig, {
31
- ...targetScreenConfiguration.general,
32
- ...targetScreenConfiguration.styles,
31
+ ...targetScreenConfiguration?.general,
32
+ ...targetScreenConfiguration?.styles,
33
33
  ...pluginConfiguration,
34
34
  });
35
35