@applicaster/zapp-react-native-ui-components 13.0.0-rc.14 → 13.0.0-rc.140

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 (226) hide show
  1. package/Components/AppContainer/__tests__/AppContainer.test.js +4 -6
  2. package/Components/AppContainer/__tests__/__snapshots__/AppContainer.test.js.snap +1 -1
  3. package/Components/AudioPlayer/index.tsx +15 -0
  4. package/Components/AudioPlayer/mobile/Layout.tsx +63 -0
  5. package/Components/AudioPlayer/mobile/__tests__/__snapshots__/audioPlayerMobileLayout.test.js.snap +66 -0
  6. package/Components/AudioPlayer/mobile/__tests__/audioPlayerMobileLayout.test.js +18 -0
  7. package/Components/AudioPlayer/mobile/index.tsx +23 -0
  8. package/Components/AudioPlayer/tv/Artwork.tsx +40 -0
  9. package/Components/AudioPlayer/{AudioPlayerLayout.tsx → tv/Layout.tsx} +37 -79
  10. package/Components/AudioPlayer/{Runtime.tsx → tv/Runtime.tsx} +2 -1
  11. package/Components/AudioPlayer/{Summary.tsx → tv/Summary.tsx} +12 -9
  12. package/Components/AudioPlayer/{Title.tsx → tv/Title.tsx} +12 -9
  13. package/Components/AudioPlayer/{__tests__ → tv/__tests__}/Runtime.test.js +5 -8
  14. package/Components/AudioPlayer/{__tests__ → tv/__tests__}/__snapshots__/Runtime.test.js.snap +6 -6
  15. package/Components/AudioPlayer/{__tests__ → tv/__tests__}/__snapshots__/artWork.test.js.snap +11 -6
  16. package/Components/AudioPlayer/tv/__tests__/__snapshots__/audioPlayer.test.js.snap +170 -0
  17. package/Components/AudioPlayer/{__tests__ → tv/__tests__}/__snapshots__/channel.test.js.snap +3 -3
  18. package/Components/AudioPlayer/{__tests__ → tv/__tests__}/__snapshots__/summary.test.js.snap +3 -3
  19. package/Components/AudioPlayer/{__tests__ → tv/__tests__}/__snapshots__/title.test.js.snap +3 -3
  20. package/Components/AudioPlayer/{__tests__ → tv/__tests__}/artWork.test.js +3 -5
  21. package/Components/AudioPlayer/{__tests__ → tv/__tests__}/audioPlayer.test.js +5 -7
  22. package/Components/AudioPlayer/{__tests__ → tv/__tests__}/channel.test.js +3 -5
  23. package/Components/AudioPlayer/{__tests__ → tv/__tests__}/summary.test.js +3 -5
  24. package/Components/AudioPlayer/{__tests__ → tv/__tests__}/title.test.js +3 -5
  25. package/Components/AudioPlayer/{helpers.tsx → tv/helpers.tsx} +3 -5
  26. package/Components/AudioPlayer/{AudioPlayer.tsx → tv/index.tsx} +21 -62
  27. package/Components/AudioPlayer/types.ts +40 -0
  28. package/Components/BaseFocusable/index.ios.ts +1 -1
  29. package/Components/BaseFocusable/index.tsx +67 -31
  30. package/Components/Cell/Cell.tsx +14 -14
  31. package/Components/Cell/CellWithFocusable.tsx +50 -59
  32. package/Components/Cell/CellWrapper.tsx +18 -0
  33. package/Components/Cell/TvOSCellComponent.tsx +20 -26
  34. package/Components/Cell/__tests__/CellWIthFocusable.test.js +13 -6
  35. package/Components/Cell/index.js +3 -1
  36. package/Components/Cell/styles.ts +17 -0
  37. package/Components/CellRendererResolver/__tests__/cellRendererResolver.test.js +50 -50
  38. package/Components/CellRendererResolver/index.ts +2 -1
  39. package/Components/ComponentResolver/__tests__/__snapshots__/componentResolver.test.js.snap +1 -42
  40. package/Components/ComponentResolver/__tests__/componentResolver.test.js +26 -30
  41. package/Components/ContentScreen/__tests__/contentScreen.test.js +3 -3
  42. package/Components/DisplayState/__tests__/__snapshots__/displayState.test.js.snap +2 -2
  43. package/Components/ErrorScreen/index.tsx +14 -6
  44. package/Components/Focusable/Focusable.tsx +1 -54
  45. package/Components/Focusable/FocusableTvOS.tsx +6 -2
  46. package/Components/Focusable/Touchable.tsx +19 -20
  47. package/Components/Focusable/index.android.tsx +10 -3
  48. package/Components/FocusableCell/index.tsx +1 -1
  49. package/Components/FocusableGroup/FocusableTvOS.tsx +34 -86
  50. package/Components/FocusableGroup/index.tsx +0 -3
  51. package/Components/FocusableList/index.tsx +26 -10
  52. package/Components/FocusableScrollView/index.tsx +43 -13
  53. package/Components/GeneralContentScreen/GeneralContentScreen.tsx +3 -0
  54. package/Components/GeneralContentScreen/utils/__tests__/useCurationAPI.test.js +9 -0
  55. package/Components/GeneralContentScreen/utils/useCurationAPI.ts +5 -3
  56. package/Components/GeneralContentScreen/utils/useEventAlerts.ts +30 -0
  57. package/Components/HandlePlayable/HandlePlayable.tsx +21 -27
  58. package/Components/Layout/TV/LayoutBackground.tsx +28 -0
  59. package/Components/Layout/TV/NavBarContainer.tsx +19 -23
  60. package/Components/Layout/TV/ScreenContainer.tsx +8 -2
  61. package/Components/Layout/TV/ScreenLayoutContextProvider.tsx +5 -0
  62. package/Components/Layout/TV/__tests__/ScreenContainer.test.tsx +3 -1
  63. package/Components/Layout/TV/__tests__/__snapshots__/LayoutContainer.test.tsx.snap +1 -1
  64. package/Components/Layout/TV/__tests__/__snapshots__/NavBarContainer.test.tsx.snap +6 -5
  65. package/Components/Layout/TV/__tests__/__snapshots__/ScreenContainer.test.tsx.snap +12 -11
  66. package/Components/Layout/TV/__tests__/__snapshots__/index.test.tsx.snap +15 -10
  67. package/Components/Layout/TV/__tests__/index.test.tsx +14 -4
  68. package/Components/Layout/TV/index.tsx +6 -20
  69. package/Components/Layout/TV/index.web.tsx +4 -1
  70. package/Components/MasterCell/DefaultComponents/ActionButton.tsx +2 -3
  71. package/Components/MasterCell/DefaultComponents/BorderContainerView/__tests__/index.test.tsx +66 -0
  72. package/Components/MasterCell/DefaultComponents/BorderContainerView/index.tsx +4 -1
  73. package/Components/MasterCell/DefaultComponents/Image/Image.ios.tsx +10 -15
  74. package/Components/MasterCell/DefaultComponents/Image/hooks/useImage.ts +11 -7
  75. package/Components/MasterCell/DefaultComponents/ImageBorderContainer/__tests__/index.test.ts +93 -0
  76. package/Components/MasterCell/DefaultComponents/LiveImage/index.tsx +2 -2
  77. package/Components/MasterCell/DefaultComponents/SecondaryImage/__tests__/__snapshots__/Image.test.tsx.snap +3 -3
  78. package/Components/MasterCell/DefaultComponents/SecondaryImage/utils.ts +1 -1
  79. package/Components/MasterCell/DefaultComponents/__tests__/image.test.js +1 -1
  80. package/Components/MasterCell/DefaultComponents/tv/TvActionButtons/const.ts +3 -0
  81. package/Components/MasterCell/DefaultComponents/tv/TvActionButtons/index.ts +6 -6
  82. package/Components/MasterCell/SharedUI/CollapsibleTextContainer/__tests__/__snapshots__/index.test.tsx.snap +1 -1
  83. package/Components/MasterCell/SharedUI/ProgressBar/hooks/useFillInPercent.ts +2 -8
  84. package/Components/MasterCell/__tests__/__snapshots__/dataAdapter.test.js.snap +180 -180
  85. package/Components/MasterCell/__tests__/__snapshots__/elementMapper.test.js.snap +11 -19
  86. package/Components/MasterCell/__tests__/__snapshots__/masterCell.test.js.snap +6 -235
  87. package/Components/MasterCell/__tests__/elementMapper.test.js +18 -5
  88. package/Components/MasterCell/__tests__/masterCell.test.js +26 -26
  89. package/Components/MasterCell/hooks/useAsyncRendering/MasterCellAsyncRenderManager.ts +2 -2
  90. package/Components/MasterCell/hooks/useAsyncRendering/index.ts +2 -2
  91. package/Components/MasterCell/utils/behaviorProvider.ts +136 -0
  92. package/Components/MasterCell/utils/index.ts +9 -135
  93. package/Components/ModalComponent/BottomSheetModalContent.tsx +66 -54
  94. package/Components/ModalComponent/Button/Item.tsx +6 -5
  95. package/Components/ModalComponent/Button/assets.ts +1 -1
  96. package/Components/ModalComponent/Button/index.tsx +45 -62
  97. package/Components/ModalComponent/Header/index.tsx +12 -11
  98. package/Components/ModalComponent/utils.ts +55 -7
  99. package/Components/OfflineHandler/NotificationView/NotificationView.lg.tsx +2 -2
  100. package/Components/OfflineHandler/NotificationView/NotificationView.samsung.tsx +2 -2
  101. package/Components/OfflineHandler/NotificationView/__tests__/index.test.tsx +0 -5
  102. package/Components/OfflineHandler/__tests__/__snapshots__/index.test.tsx.snap +7 -7
  103. package/Components/OfflineHandler/__tests__/index.test.tsx +28 -25
  104. package/Components/OfflineHandler/utils/index.ts +1 -1
  105. package/Components/PlayerContainer/PlayerContainer.tsx +76 -66
  106. package/Components/PlayerContainer/PlayerContainerContext.tsx +9 -0
  107. package/Components/PlayerContainer/ProgramInfo/index.tsx +2 -2
  108. package/Components/PlayerImageBackground/index.tsx +2 -2
  109. package/Components/River/ComponentsMap/ComponentsMap.tsx +49 -68
  110. package/Components/River/ComponentsMap/hooks/useLoadingState.ts +78 -51
  111. package/Components/River/RefreshControl.tsx +1 -1
  112. package/Components/River/RiverFooter.tsx +39 -9
  113. package/Components/River/RiverItem.tsx +44 -4
  114. package/Components/River/TV/index.tsx +6 -1
  115. package/Components/River/__tests__/__snapshots__/componentsMap.test.js.snap +115 -46
  116. package/Components/River/__tests__/__snapshots__/river.test.js.snap +21 -83
  117. package/Components/River/__tests__/componentsMap.test.js +64 -17
  118. package/Components/River/__tests__/river.test.js +75 -40
  119. package/Components/RouteManager/TestId.tsx +1 -5
  120. package/Components/RouteManager/__tests__/__snapshots__/routeManager.test.js.snap +11 -5
  121. package/Components/RouteManager/__tests__/routeManager.test.js +29 -14
  122. package/Components/RouteManager/__tests__/testId.test.js +4 -6
  123. package/Components/Screen/TV/__tests__/index.web.test.tsx +26 -0
  124. package/Components/Screen/TV/index.web.tsx +5 -6
  125. package/Components/Screen/__tests__/Screen.test.tsx +53 -31
  126. package/Components/Screen/__tests__/__snapshots__/Screen.test.tsx.snap +6 -6
  127. package/Components/Screen/hooks.ts +53 -0
  128. package/Components/Screen/index.tsx +16 -42
  129. package/Components/ScreenResolver/__tests__/screenResolver.test.js +95 -70
  130. package/Components/Tabs/Tab.tsx +12 -9
  131. package/Components/TextInputTv/__tests__/TextInputTv.test.js +42 -42
  132. package/Components/TextInputTv/__tests__/__snapshots__/TextInputTv.test.js.snap +7 -0
  133. package/Components/TextInputTv/index.tsx +6 -5
  134. package/Components/TopMarginApplicator/TopMarginApplicator.tsx +2 -3
  135. package/Components/Touchable/__tests__/__snapshots__/touchable.test.tsx.snap +2 -2
  136. package/Components/TrackedView/index.tsx +1 -0
  137. package/Components/Transitioner/AnimationManager.js +15 -15
  138. package/Components/Transitioner/Scene.tsx +53 -24
  139. package/Components/Transitioner/Transitioner.tsx +3 -3
  140. package/Components/Transitioner/__tests__/Scene.test.js +25 -14
  141. package/Components/Transitioner/__tests__/__snapshots__/AnimationManager.test.js.snap +26 -26
  142. package/Components/Transitioner/__tests__/__snapshots__/Scene.test.js.snap +10 -50
  143. package/Components/Transitioner/__tests__/__snapshots__/config.test.js.snap +20 -20
  144. package/Components/Transitioner/__tests__/__snapshots__/transitioner.test.js.snap +4 -4
  145. package/Components/Transitioner/__tests__/transitioner.test.js +13 -4
  146. package/Components/Transitioner/index.js +8 -4
  147. package/Components/VideoLive/LiveImageManager.ts +27 -1
  148. package/Components/VideoLive/PlayerLiveImageComponent.tsx +36 -24
  149. package/Components/VideoLive/__tests__/PlayerLiveImageComponent.test.tsx +63 -8
  150. package/Components/VideoLive/__tests__/__snapshots__/PlayerLiveImageComponent.test.tsx.snap +6 -10
  151. package/Components/VideoModal/ModalAnimation/AnimatedPlayerModalWrapper.tsx +1 -1
  152. package/Components/VideoModal/ModalAnimation/AnimatedScrollModal.tsx +51 -31
  153. package/Components/VideoModal/ModalAnimation/AnimatedVideoPlayerComponent.tsx +8 -4
  154. package/Components/VideoModal/ModalAnimation/AnimationComponent.tsx +48 -23
  155. package/Components/VideoModal/ModalAnimation/ModalAnimationContext.tsx +16 -15
  156. package/Components/VideoModal/ModalAnimation/__tests__/getMoveUpValue.test.ts +108 -0
  157. package/Components/VideoModal/ModalAnimation/const.ts +5 -0
  158. package/Components/VideoModal/ModalAnimation/index.ts +4 -1
  159. package/Components/VideoModal/ModalAnimation/useModalAnimationContext.ts +6 -0
  160. package/Components/VideoModal/ModalAnimation/utils.ts +32 -2
  161. package/Components/VideoModal/OpaqueLayer.tsx +33 -0
  162. package/Components/VideoModal/PlayerDetails.tsx +18 -10
  163. package/Components/VideoModal/PlayerWrapper.tsx +51 -57
  164. package/Components/VideoModal/VideoModal.tsx +17 -11
  165. package/Components/VideoModal/__tests__/PlayerDetails.test.tsx +5 -2
  166. package/Components/VideoModal/__tests__/PlayerWrapper.test.tsx +13 -10
  167. package/Components/VideoModal/__tests__/__snapshots__/PlayerDetails.test.tsx.snap +2 -40
  168. package/Components/VideoModal/__tests__/__snapshots__/PlayerWrapper.test.tsx.snap +74 -104
  169. package/Components/VideoModal/hooks/__tests__/useDelayedPlayerDetails.test.ts +51 -0
  170. package/Components/VideoModal/hooks/index.ts +7 -0
  171. package/Components/VideoModal/hooks/useDelayedPlayerDetails.ts +38 -0
  172. package/Components/VideoModal/hooks/utils/__tests__/showDetails.test.ts +91 -0
  173. package/Components/VideoModal/hooks/utils/index.ts +33 -0
  174. package/Components/VideoModal/utils.ts +6 -9
  175. package/Components/Viewport/ViewportAware/__tests__/__snapshots__/viewportAware.test.js.snap +24 -36
  176. package/Components/Viewport/ViewportAware/__tests__/viewportAware.test.js +12 -18
  177. package/Components/Viewport/ViewportTracker/__tests__/__snapshots__/viewportTracker.test.js.snap +1 -1
  178. package/Components/Viewport/__tests__/utils.test.js +5 -4
  179. package/Components/ZappUIComponent/Placeholder.tsx +3 -1
  180. package/Components/ZappUIComponent/__tests__/{ZappUIComponent.test.js → ZappUIComponent.test.tsx} +26 -10
  181. package/Components/ZappUIComponent/index.tsx +4 -17
  182. package/Components/default-cell-renderer/__tests__/defaultCellRenderer.test.tsx +20 -17
  183. package/Components/default-cell-renderer/viewTrees/tv/DefaultCell/__tests__/DefaultCell.test.tsx +15 -11
  184. package/Contexts/ComponentsMapOffsetContext/index.tsx +49 -0
  185. package/Contexts/ConfigutaionContext/__tests__/__snapshots__/ConfigurationProvider.test.tsx.snap +1 -1
  186. package/Contexts/FocusableGroupContext/withFocusableContext.tsx +4 -10
  187. package/Contexts/HeaderOffsetContext/index.tsx +4 -6
  188. package/Contexts/ScreenContext/index.tsx +6 -12
  189. package/Contexts/ScreenLayoutContext/index.tsx +5 -3
  190. package/Decorators/Navigator/__tests__/navigator.test.js +16 -16
  191. package/Decorators/Navigator/index.tsx +1 -1
  192. package/Decorators/RiverFeedLoader/__tests__/__snapshots__/riverFeedLoader.test.tsx.snap +77 -77
  193. package/Decorators/RiverFeedLoader/__tests__/riverFeedLoader.test.tsx +34 -39
  194. package/Decorators/RiverFeedLoader/__tests__/utils.test.ts +0 -9
  195. package/Decorators/RiverFeedLoader/index.tsx +1 -1
  196. package/Decorators/RiverFeedLoader/utils/getDatasourceUrl.ts +39 -0
  197. package/Decorators/RiverFeedLoader/utils/index.ts +29 -0
  198. package/Decorators/RiverFeedLoader/utils/usePipesContexts.ts +40 -0
  199. package/Decorators/RiverResolver/__tests__/riverResolver.test.tsx +27 -27
  200. package/Decorators/RiverResolver/index.tsx +6 -8
  201. package/Decorators/ZappPipesDataConnector/__tests__/Hero.js +1 -1
  202. package/Decorators/ZappPipesDataConnector/__tests__/zappPipesDataConnector.test.js +29 -22
  203. package/Decorators/ZappPipesDataConnector/index.tsx +7 -3
  204. package/package.json +13 -11
  205. package/tsconfig.json +2 -3
  206. package/.babelrc +0 -8
  207. package/Components/AudioPlayer/Artwork.tsx +0 -35
  208. package/Components/AudioPlayer/__tests__/__snapshots__/audioPlayer.test.js.snap +0 -123
  209. package/Components/AudioPlayer/__tests__/__snapshots__/audioPlayerLayout.test.js.snap +0 -50
  210. package/Components/AudioPlayer/__tests__/audioPlayerLayout.test.js +0 -27
  211. package/Components/AudioPlayer/index.ts +0 -1
  212. package/Components/Cell/CellStyles/FallbackCellStyle/index.js +0 -157
  213. package/Components/Cell/CellStyles/Hero/index.js +0 -111
  214. package/Components/Cell/CellStyles/ScreenSelector/index.js +0 -68
  215. package/Components/Cell/CellStyles/cellStylesResolver.ts +0 -19
  216. package/Components/Cell/CellStyles/colors.js +0 -40
  217. package/Components/Cell/CellStyles/index.js +0 -15
  218. package/Components/CellRendererResolver/__tests__/__snapshots__/cellRendererResolver.test.js.snap +0 -53
  219. package/Components/RouteManager/__tests__/__snapshots__/testId.test.js.snap +0 -17
  220. package/Components/ScreenResolver/__tests__/__snapshots__/screenResolver.test.js.snap +0 -17
  221. package/Components/ZappUIComponent/__tests__/__snapshots__/ZappUIComponent.test.js.snap +0 -91
  222. package/Components/default-cell-renderer/__tests__/__snapshots__/defaultCellRenderer.test.tsx.snap +0 -338
  223. package/Decorators/Navigator/__tests__/__snapshots__/navigator.test.js.snap +0 -18
  224. package/Decorators/RiverFeedLoader/utils.ts +0 -100
  225. package/Decorators/RiverResolver/__tests__/__snapshots__/riverResolver.test.tsx.snap +0 -28
  226. /package/Components/AudioPlayer/{Channel.tsx → tv/Channel.tsx} +0 -0
@@ -4,8 +4,8 @@ exports[`PlayerWrapper renders inline 1`] = `
4
4
  <RNCSafeAreaProvider
5
5
  onInsetsChange={[Function]}
6
6
  style={
7
- Array [
8
- Object {
7
+ [
8
+ {
9
9
  "flex": 1,
10
10
  },
11
11
  undefined,
@@ -14,7 +14,7 @@ exports[`PlayerWrapper renders inline 1`] = `
14
14
  >
15
15
  <RNCSafeAreaView
16
16
  edges={
17
- Object {
17
+ {
18
18
  "bottom": "off",
19
19
  "left": "off",
20
20
  "right": "off",
@@ -22,31 +22,31 @@ exports[`PlayerWrapper renders inline 1`] = `
22
22
  }
23
23
  }
24
24
  style={
25
- Array [
26
- Object {
25
+ [
26
+ {
27
27
  "backgroundColor": "transparent",
28
28
  },
29
- Object {
29
+ {
30
30
  "height": 800,
31
31
  "width": 300,
32
32
  },
33
- Object {},
33
+ {},
34
34
  ]
35
35
  }
36
36
  >
37
37
  <View
38
38
  additionalData={
39
- Object {
39
+ {
40
40
  "saveArea": true,
41
41
  }
42
42
  }
43
43
  animationType="moveUpComponent"
44
44
  style={
45
- Array [
46
- Object {
45
+ [
46
+ {
47
47
  "flexDirection": "column",
48
48
  },
49
- Object {
49
+ {
50
50
  "flex": 1,
51
51
  },
52
52
  ]
@@ -54,19 +54,19 @@ exports[`PlayerWrapper renders inline 1`] = `
54
54
  >
55
55
  <View
56
56
  style={
57
- Array [
58
- Object {
57
+ [
58
+ {
59
59
  "alignSelf": "center",
60
60
  "position": "relative",
61
61
  "zIndex": 200,
62
62
  },
63
- Object {
63
+ {
64
64
  "aspectRatio": 1.7777777777777777,
65
65
  "height": undefined,
66
66
  "width": "100%",
67
67
  },
68
- Object {},
69
- Object {},
68
+ {},
69
+ {},
70
70
  ]
71
71
  }
72
72
  testID="test-player-container"
@@ -74,27 +74,27 @@ exports[`PlayerWrapper renders inline 1`] = `
74
74
  <View
75
75
  animationType="componentFade"
76
76
  style={
77
- Object {
77
+ {
78
78
  "flex": 1,
79
79
  }
80
80
  }
81
81
  >
82
82
  <View
83
83
  configuration={
84
- Object {
84
+ {
85
85
  "tablet_landscape_player_container_background_color": "red",
86
86
  "tablet_landscape_sidebar_width": "35%",
87
87
  }
88
88
  }
89
89
  entry={
90
- Object {
90
+ {
91
91
  "id": "test",
92
92
  }
93
93
  }
94
94
  isTablet={false}
95
95
  isTabletLandscape={false}
96
96
  style={
97
- Object {
97
+ {
98
98
  "flex": 1,
99
99
  "paddingTop": 20,
100
100
  }
@@ -110,8 +110,8 @@ exports[`PlayerWrapper renders inline and docked 1`] = `
110
110
  <RNCSafeAreaProvider
111
111
  onInsetsChange={[Function]}
112
112
  style={
113
- Array [
114
- Object {
113
+ [
114
+ {
115
115
  "flex": 1,
116
116
  },
117
117
  undefined,
@@ -120,7 +120,7 @@ exports[`PlayerWrapper renders inline and docked 1`] = `
120
120
  >
121
121
  <RNCSafeAreaView
122
122
  edges={
123
- Object {
123
+ {
124
124
  "bottom": "off",
125
125
  "left": "off",
126
126
  "right": "off",
@@ -128,31 +128,31 @@ exports[`PlayerWrapper renders inline and docked 1`] = `
128
128
  }
129
129
  }
130
130
  style={
131
- Array [
132
- Object {
131
+ [
132
+ {
133
133
  "backgroundColor": "transparent",
134
134
  },
135
- Object {
135
+ {
136
136
  "height": undefined,
137
137
  "width": 300,
138
138
  },
139
- Object {},
139
+ {},
140
140
  ]
141
141
  }
142
142
  >
143
143
  <View
144
144
  additionalData={
145
- Object {
145
+ {
146
146
  "saveArea": true,
147
147
  }
148
148
  }
149
149
  animationType="moveUpComponent"
150
150
  style={
151
- Array [
152
- Object {
151
+ [
152
+ {
153
153
  "flexDirection": "column",
154
154
  },
155
- Object {
155
+ {
156
156
  "flex": 1,
157
157
  },
158
158
  ]
@@ -160,53 +160,23 @@ exports[`PlayerWrapper renders inline and docked 1`] = `
160
160
  >
161
161
  <View
162
162
  style={
163
- Array [
164
- Object {
163
+ [
164
+ {
165
165
  "alignSelf": "center",
166
166
  "position": "relative",
167
167
  "zIndex": 200,
168
168
  },
169
- Object {
169
+ {
170
170
  "aspectRatio": undefined,
171
171
  "height": undefined,
172
172
  "width": "100%",
173
173
  },
174
- Object {},
175
- Object {},
174
+ {},
175
+ {},
176
176
  ]
177
177
  }
178
178
  testID="test-player-container"
179
179
  />
180
- <View
181
- animationType="componentFade"
182
- style={
183
- Object {
184
- "flex": 1,
185
- }
186
- }
187
- >
188
- <View
189
- configuration={
190
- Object {
191
- "tablet_landscape_player_container_background_color": "red",
192
- "tablet_landscape_sidebar_width": "35%",
193
- }
194
- }
195
- entry={
196
- Object {
197
- "id": "test",
198
- }
199
- }
200
- isTablet={false}
201
- isTabletLandscape={false}
202
- style={
203
- Object {
204
- "flex": 1,
205
- "paddingTop": 20,
206
- }
207
- }
208
- />
209
- </View>
210
180
  </View>
211
181
  </RNCSafeAreaView>
212
182
  </RNCSafeAreaProvider>
@@ -216,8 +186,8 @@ exports[`PlayerWrapper renders inline on tablet in landscape orientation 1`] = `
216
186
  <RNCSafeAreaProvider
217
187
  onInsetsChange={[Function]}
218
188
  style={
219
- Array [
220
- Object {
189
+ [
190
+ {
221
191
  "flex": 1,
222
192
  },
223
193
  undefined,
@@ -226,7 +196,7 @@ exports[`PlayerWrapper renders inline on tablet in landscape orientation 1`] = `
226
196
  >
227
197
  <RNCSafeAreaView
228
198
  edges={
229
- Object {
199
+ {
230
200
  "bottom": "off",
231
201
  "left": "off",
232
202
  "right": "off",
@@ -234,31 +204,31 @@ exports[`PlayerWrapper renders inline on tablet in landscape orientation 1`] = `
234
204
  }
235
205
  }
236
206
  style={
237
- Array [
238
- Object {
207
+ [
208
+ {
239
209
  "backgroundColor": "red",
240
210
  },
241
- Object {
211
+ {
242
212
  "height": 800,
243
213
  "width": 300,
244
214
  },
245
- Object {},
215
+ {},
246
216
  ]
247
217
  }
248
218
  >
249
219
  <View
250
220
  additionalData={
251
- Object {
221
+ {
252
222
  "saveArea": true,
253
223
  }
254
224
  }
255
225
  animationType="moveUpComponent"
256
226
  style={
257
- Array [
258
- Object {
227
+ [
228
+ {
259
229
  "flexDirection": "row",
260
230
  },
261
- Object {
231
+ {
262
232
  "flex": 1,
263
233
  },
264
234
  ]
@@ -266,26 +236,26 @@ exports[`PlayerWrapper renders inline on tablet in landscape orientation 1`] = `
266
236
  >
267
237
  <View
268
238
  style={
269
- Array [
270
- Object {
239
+ [
240
+ {
271
241
  "alignSelf": "center",
272
242
  "position": "relative",
273
243
  "zIndex": 200,
274
244
  },
275
- Object {
245
+ {
276
246
  "aspectRatio": 1.7777777777777777,
277
247
  "height": undefined,
278
248
  "width": 195,
279
249
  },
280
- Object {},
281
- Object {},
250
+ {},
251
+ {},
282
252
  ]
283
253
  }
284
254
  testID="test-player-container"
285
255
  >
286
256
  <View
287
257
  additionalData={
288
- Object {
258
+ {
289
259
  "disableAnimatedComponent": false,
290
260
  "resetAnimationValue": undefined,
291
261
  "useLayoutMeasure": true,
@@ -293,7 +263,7 @@ exports[`PlayerWrapper renders inline on tablet in landscape orientation 1`] = `
293
263
  }
294
264
  animationType="moveUpComponent"
295
265
  style={
296
- Object {
266
+ {
297
267
  "flex": 1,
298
268
  }
299
269
  }
@@ -302,27 +272,27 @@ exports[`PlayerWrapper renders inline on tablet in landscape orientation 1`] = `
302
272
  <View
303
273
  animationType="componentFade"
304
274
  style={
305
- Object {
275
+ {
306
276
  "flex": 1,
307
277
  }
308
278
  }
309
279
  >
310
280
  <View
311
281
  configuration={
312
- Object {
282
+ {
313
283
  "tablet_landscape_player_container_background_color": "red",
314
284
  "tablet_landscape_sidebar_width": "35%",
315
285
  }
316
286
  }
317
287
  entry={
318
- Object {
288
+ {
319
289
  "id": "test",
320
290
  }
321
291
  }
322
292
  isTablet={true}
323
293
  isTabletLandscape={true}
324
294
  style={
325
- Object {
295
+ {
326
296
  "flex": 1,
327
297
  "paddingTop": 20,
328
298
  }
@@ -338,8 +308,8 @@ exports[`PlayerWrapper renders properly 1`] = `
338
308
  <RNCSafeAreaProvider
339
309
  onInsetsChange={[Function]}
340
310
  style={
341
- Array [
342
- Object {
311
+ [
312
+ {
343
313
  "flex": 1,
344
314
  },
345
315
  undefined,
@@ -348,7 +318,7 @@ exports[`PlayerWrapper renders properly 1`] = `
348
318
  >
349
319
  <RNCSafeAreaView
350
320
  edges={
351
- Object {
321
+ {
352
322
  "bottom": "off",
353
323
  "left": "off",
354
324
  "right": "off",
@@ -356,31 +326,31 @@ exports[`PlayerWrapper renders properly 1`] = `
356
326
  }
357
327
  }
358
328
  style={
359
- Array [
360
- Object {
329
+ [
330
+ {
361
331
  "backgroundColor": "transparent",
362
332
  },
363
- Object {
333
+ {
364
334
  "height": 800,
365
335
  "width": 300,
366
336
  },
367
- Object {},
337
+ {},
368
338
  ]
369
339
  }
370
340
  >
371
341
  <View
372
342
  additionalData={
373
- Object {
343
+ {
374
344
  "saveArea": true,
375
345
  }
376
346
  }
377
347
  animationType="moveUpComponent"
378
348
  style={
379
- Array [
380
- Object {
349
+ [
350
+ {
381
351
  "flexDirection": "column",
382
352
  },
383
- Object {
353
+ {
384
354
  "flex": 1,
385
355
  },
386
356
  ]
@@ -388,19 +358,19 @@ exports[`PlayerWrapper renders properly 1`] = `
388
358
  >
389
359
  <View
390
360
  style={
391
- Array [
392
- Object {
361
+ [
362
+ {
393
363
  "alignSelf": "center",
394
364
  "position": "relative",
395
365
  "zIndex": 200,
396
366
  },
397
- Object {
367
+ {
398
368
  "aspectRatio": 1.7786666666666666,
399
369
  "height": undefined,
400
370
  "width": "100%",
401
371
  },
402
- Object {},
403
- Object {},
372
+ {},
373
+ {},
404
374
  ]
405
375
  }
406
376
  testID="test-player-container"
@@ -0,0 +1,51 @@
1
+ import { renderHook } from "@testing-library/react-hooks";
2
+ import { useDelayedPlayerDetails } from "../useDelayedPlayerDetails";
3
+ import { useIsTablet } from "@applicaster/zapp-react-native-utils/reactHooks";
4
+
5
+ jest.mock("@applicaster/zapp-react-native-utils/reactHooks", () => ({
6
+ useIsTablet: jest.fn().mockReturnValue(false),
7
+ }));
8
+
9
+ describe("useDelayedPlayerDetails", () => {
10
+ beforeEach(() => {
11
+ jest.clearAllMocks();
12
+ });
13
+
14
+ it("should return true initially", () => {
15
+ const { result } = renderHook(() =>
16
+ useDelayedPlayerDetails({ isInline: true, isDocked: false, isPip: false })
17
+ );
18
+
19
+ expect(result.current).toBe(true);
20
+ });
21
+
22
+ it("should return false when isPip is true", () => {
23
+ const { result } = renderHook(() =>
24
+ useDelayedPlayerDetails({ isInline: true, isDocked: true, isPip: true })
25
+ );
26
+
27
+ expect(result.current).toBe(false);
28
+ });
29
+
30
+ it("should return false when isDocked is true", () => {
31
+ const { result } = renderHook(() =>
32
+ useDelayedPlayerDetails({ isInline: true, isDocked: true, isPip: false })
33
+ );
34
+
35
+ expect(result.current).toBe(false);
36
+ });
37
+
38
+ it("should return true for tablet regardless of other flags", () => {
39
+ (useIsTablet as jest.Mock).mockReturnValue(true);
40
+
41
+ const { result } = renderHook(() =>
42
+ useDelayedPlayerDetails({
43
+ isInline: false,
44
+ isDocked: false,
45
+ isPip: false,
46
+ })
47
+ );
48
+
49
+ expect(result.current).toBe(true);
50
+ });
51
+ });
@@ -0,0 +1,7 @@
1
+ export { useBackgroundColor } from "./useBackgroundColor";
2
+
3
+ export { useDelayedPlayerDetails } from "./useDelayedPlayerDetails";
4
+
5
+ export { useInitialPlayerState } from "./useInitialPlayerState";
6
+
7
+ export { useModalSize } from "./useModalSize";
@@ -0,0 +1,38 @@
1
+ import { useIsTablet } from "@applicaster/zapp-react-native-utils/reactHooks";
2
+
3
+ import { showDetails } from "./utils";
4
+
5
+ type Props = { isInline: boolean; isDocked: boolean; isPip: boolean };
6
+
7
+ const showPlayerDetails = (
8
+ isInline: boolean,
9
+ isDocked: boolean,
10
+ isPip: boolean,
11
+ isTablet: boolean
12
+ ) => {
13
+ return showDetails({
14
+ isMobile: !isTablet,
15
+ isInline,
16
+ isDocked,
17
+ isPip,
18
+ });
19
+ };
20
+
21
+ /**
22
+ * Custom hook to determine whether to show player details with a delay.
23
+ *
24
+ * @param {Object} params - The parameters object.
25
+ * @param {boolean} params.isInline - Indicates if the player is inline.
26
+ * @param {boolean} params.isDocked - Indicates if the player is docked.
27
+ * @param {boolean} params.isPip - Indicates if the player is in PIP mode.
28
+ * @returns {boolean} - Returns true if player details should be shown, otherwise false.
29
+ */
30
+ export const useDelayedPlayerDetails = ({
31
+ isInline,
32
+ isDocked,
33
+ isPip,
34
+ }: Props): boolean => {
35
+ const isTablet = useIsTablet();
36
+
37
+ return showPlayerDetails(isInline, isDocked, isPip, isTablet);
38
+ };
@@ -0,0 +1,91 @@
1
+ import { showDetails } from "..";
2
+
3
+ describe("showDetails", () => {
4
+ it("should return false if isPip is true", () => {
5
+ const result = showDetails({
6
+ isMobile: true,
7
+ isInline: true,
8
+ isDocked: false,
9
+ isPip: true,
10
+ });
11
+
12
+ expect(result).toBe(false);
13
+ });
14
+
15
+ it("should return false if isDocked is true", () => {
16
+ const result = showDetails({
17
+ isMobile: true,
18
+ isInline: true,
19
+ isDocked: true,
20
+ isPip: false,
21
+ });
22
+
23
+ expect(result).toBe(false);
24
+ });
25
+
26
+ it("should return true if isMobile is true and isInline is true", () => {
27
+ const result = showDetails({
28
+ isMobile: true,
29
+ isInline: true,
30
+ isDocked: false,
31
+ isPip: false,
32
+ });
33
+
34
+ expect(result).toBe(true);
35
+ });
36
+
37
+ it("should return false if isMobile is true and isInline is false", () => {
38
+ const result = showDetails({
39
+ isMobile: true,
40
+ isInline: false,
41
+ isDocked: false,
42
+ isPip: false,
43
+ });
44
+
45
+ expect(result).toBe(false);
46
+ });
47
+
48
+ it("should return true if isMobile is false", () => {
49
+ const result = showDetails({
50
+ isMobile: false,
51
+ isInline: true,
52
+ isDocked: false,
53
+ isPip: false,
54
+ });
55
+
56
+ expect(result).toBe(true);
57
+ });
58
+
59
+ it("should return true if isMobile is false and isInline is false", () => {
60
+ const result = showDetails({
61
+ isMobile: false,
62
+ isInline: false,
63
+ isDocked: false,
64
+ isPip: false,
65
+ });
66
+
67
+ expect(result).toBe(true);
68
+ });
69
+
70
+ it("should return false if all properties are false except isMobile", () => {
71
+ const result = showDetails({
72
+ isMobile: true,
73
+ isInline: false,
74
+ isDocked: false,
75
+ isPip: false,
76
+ });
77
+
78
+ expect(result).toBe(false);
79
+ });
80
+
81
+ it("should return true if all properties are false except isInline", () => {
82
+ const result = showDetails({
83
+ isMobile: false,
84
+ isInline: true,
85
+ isDocked: false,
86
+ isPip: false,
87
+ });
88
+
89
+ expect(result).toBe(true);
90
+ });
91
+ });
@@ -35,3 +35,36 @@ export const orientationWasChangedFromPortraitToLandscape = ({
35
35
  isOrientationLandscape(toOrientation)
36
36
  );
37
37
  };
38
+
39
+ export const showDetails = ({
40
+ isMobile,
41
+ isInline,
42
+ isDocked,
43
+ isPip,
44
+ }: {
45
+ isMobile: boolean;
46
+ isInline: boolean;
47
+ isDocked: boolean;
48
+ isPip: boolean;
49
+ }): boolean => {
50
+ if (isPip) {
51
+ return false;
52
+ }
53
+
54
+ if (isDocked) {
55
+ return false;
56
+ }
57
+
58
+ // for mobile with inline mode(rotation is portrait) we always show details.
59
+ if (isMobile && isInline) {
60
+ return true;
61
+ }
62
+
63
+ // for mobile with landscape rotation(player is fullscreen) we always hide details. Mounting of it is very heavy operation.
64
+ if (isMobile && !isInline) {
65
+ return false;
66
+ }
67
+
68
+ // for tablets we always show details
69
+ return true;
70
+ };