@applicaster/zapp-react-native-ui-components 13.0.0-alpha.3592223128 → 13.0.0-alpha.4120155420
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.
- package/Components/Cell/TvOSCellComponent.tsx +1 -1
- package/Components/FocusableScrollView/index.tsx +27 -12
- package/Components/Screen/index.tsx +1 -1
- package/Components/VideoModal/PlayerWrapper.tsx +9 -16
- package/Components/VideoModal/__tests__/__snapshots__/PlayerWrapper.test.tsx.snap +6 -6
- package/package.json +5 -5
|
@@ -2,7 +2,7 @@ import * as React from "react";
|
|
|
2
2
|
import * as R from "ramda";
|
|
3
3
|
import { View, StyleSheet } from "react-native";
|
|
4
4
|
|
|
5
|
-
import { Focusable } from "@applicaster/zapp-react-native-ui-components/Components/Focusable";
|
|
5
|
+
import { Focusable } from "@applicaster/zapp-react-native-ui-components/Components/Focusable/FocusableTvOS";
|
|
6
6
|
import { FocusableCell } from "@applicaster/zapp-react-native-ui-components/Components/FocusableCell";
|
|
7
7
|
import { getItemType } from "@applicaster/zapp-react-native-utils/navigationUtils";
|
|
8
8
|
import { SCREEN_TYPES } from "@applicaster/zapp-react-native-utils/navigationUtils/itemTypes";
|
|
@@ -11,6 +11,13 @@ import {
|
|
|
11
11
|
useInitialFocus,
|
|
12
12
|
} from "@applicaster/zapp-react-native-utils/focusManager";
|
|
13
13
|
|
|
14
|
+
export type FocusableScrollViewRenderItem = (info: {
|
|
15
|
+
item: ZappUIComponent;
|
|
16
|
+
index: number;
|
|
17
|
+
focused: boolean;
|
|
18
|
+
parentFocus: ParentFocus;
|
|
19
|
+
}) => React.ReactElement;
|
|
20
|
+
|
|
14
21
|
export type Props = ScrollViewProps & {
|
|
15
22
|
id?: number | string;
|
|
16
23
|
horizontal?: boolean;
|
|
@@ -32,12 +39,7 @@ export type Props = ScrollViewProps & {
|
|
|
32
39
|
initialFocusDirection?: FocusManager.Android.FocusNavigationDirections;
|
|
33
40
|
onAllComponentsLoaded?: () => void;
|
|
34
41
|
omitPropsPropagation?: Array<keyof FlatListProps<any>>;
|
|
35
|
-
renderItem:
|
|
36
|
-
item: ZappUIComponent;
|
|
37
|
-
index: number;
|
|
38
|
-
focused: boolean;
|
|
39
|
-
parentFocus: ParentFocus;
|
|
40
|
-
}) => React.ReactElement;
|
|
42
|
+
renderItem: FocusableScrollViewRenderItem;
|
|
41
43
|
} & ParentFocus;
|
|
42
44
|
|
|
43
45
|
type State = boolean[];
|
|
@@ -73,7 +75,7 @@ const extendScrollViewRef = (_ref, childCompsMeasurementsMap) => {
|
|
|
73
75
|
};
|
|
74
76
|
|
|
75
77
|
_ref.scrollToIndex = (params) => {
|
|
76
|
-
const { index, viewOffset } = params;
|
|
78
|
+
const { index, viewOffset = 0 } = params;
|
|
77
79
|
|
|
78
80
|
const itemByIndex = R.find(R.propEq("index", index))(
|
|
79
81
|
R.values(childCompsMeasurementsMap)
|
|
@@ -129,8 +131,14 @@ function FocusableScrollViewComponent(props: Props, ref) {
|
|
|
129
131
|
);
|
|
130
132
|
|
|
131
133
|
const getFocusableEntryId = React.useCallback(
|
|
132
|
-
(_entry: ZappEntry, index?: number) => {
|
|
133
|
-
const entry = R.isNil(index)
|
|
134
|
+
(_entry: ZappEntry | null, index?: number) => {
|
|
135
|
+
const entry = R.isNil(index)
|
|
136
|
+
? Array.isArray(_entry)
|
|
137
|
+
? _entry[0]
|
|
138
|
+
: _entry
|
|
139
|
+
: Array.isArray(data[index])
|
|
140
|
+
? data[index][0]
|
|
141
|
+
: data[index];
|
|
134
142
|
|
|
135
143
|
return entry ? `${props.id}--${entry?.id}` : undefined;
|
|
136
144
|
},
|
|
@@ -273,11 +281,18 @@ function FocusableScrollViewComponent(props: Props, ref) {
|
|
|
273
281
|
const renderItem = React.useCallback(
|
|
274
282
|
(item, index) => {
|
|
275
283
|
const renderArgs = { item, index };
|
|
276
|
-
|
|
277
|
-
const
|
|
284
|
+
|
|
285
|
+
const id = getFocusableEntryId(
|
|
286
|
+
Array.isArray(item) ? item[0] : item,
|
|
287
|
+
index
|
|
288
|
+
);
|
|
289
|
+
|
|
290
|
+
const nextFocus = getNextFocus(index);
|
|
278
291
|
|
|
279
292
|
const onItemLayout = (event) => {
|
|
280
|
-
childCompsMeasurementsMap.current[
|
|
293
|
+
childCompsMeasurementsMap.current[
|
|
294
|
+
Array.isArray(item) ? index : item.id
|
|
295
|
+
] = {
|
|
281
296
|
index,
|
|
282
297
|
layout: event.nativeEvent.layout,
|
|
283
298
|
};
|
|
@@ -128,7 +128,7 @@ export function Screen(_props: Props) {
|
|
|
128
128
|
<View style={style}>
|
|
129
129
|
{navBarProps && <NavBar {...navBarProps} hasMenu={hasMenu} />}
|
|
130
130
|
|
|
131
|
-
<OfflineFallbackScreen
|
|
131
|
+
<OfflineFallbackScreen>
|
|
132
132
|
{/* @TODO RouteManager doesn't use props, can they be removed ? */}
|
|
133
133
|
<RouteManager pathname={pathname} screenData={screenData} />
|
|
134
134
|
</OfflineFallbackScreen>
|
|
@@ -121,23 +121,16 @@ const getTabletWidth = (
|
|
|
121
121
|
return Number(width) - sidebarWidth;
|
|
122
122
|
};
|
|
123
123
|
|
|
124
|
-
const getStyles = (baseStyle, isMobile, isPortrait) => {
|
|
125
|
-
if (isMobile && isPortrait) {
|
|
126
|
-
return { width: SCREEN_WIDTH, height: SCREEN_HEIGHT };
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
if (isMobile && !isPortrait) {
|
|
130
|
-
return { width: SCREEN_HEIGHT, height: SCREEN_WIDTH };
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
return baseStyle;
|
|
134
|
-
};
|
|
135
|
-
|
|
136
124
|
const showDetails = (
|
|
137
125
|
isMobile: boolean,
|
|
138
126
|
docked: boolean,
|
|
139
|
-
isInlineModal
|
|
127
|
+
isInlineModal,
|
|
128
|
+
pip
|
|
140
129
|
): boolean => {
|
|
130
|
+
if (pip) {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
|
|
141
134
|
if (!isInlineModal) {
|
|
142
135
|
return false;
|
|
143
136
|
}
|
|
@@ -159,7 +152,7 @@ const showDetails = (
|
|
|
159
152
|
const PlayerWrapperComponent = (props: Props) => {
|
|
160
153
|
const {
|
|
161
154
|
entry,
|
|
162
|
-
style
|
|
155
|
+
style,
|
|
163
156
|
containerStyle,
|
|
164
157
|
inline,
|
|
165
158
|
docked,
|
|
@@ -174,7 +167,7 @@ const PlayerWrapperComponent = (props: Props) => {
|
|
|
174
167
|
|
|
175
168
|
const isInlineModal = inline && isModal;
|
|
176
169
|
|
|
177
|
-
const style = getStyles(baseStyle, !isTablet, isInlineModal);
|
|
170
|
+
// const style = getStyles(baseStyle, !isTablet, isInlineModal, pip);
|
|
178
171
|
|
|
179
172
|
const isTabletLandscape = !isTV() && isTablet && !isTabletPortrait;
|
|
180
173
|
|
|
@@ -253,7 +246,7 @@ const PlayerWrapperComponent = (props: Props) => {
|
|
|
253
246
|
</View>
|
|
254
247
|
|
|
255
248
|
<AnimatedScrollModal>
|
|
256
|
-
{showDetails(!isTablet, docked, isInlineModal) && (
|
|
249
|
+
{showDetails(!isTablet, docked, isInlineModal, pip) && (
|
|
257
250
|
<AnimationComponent
|
|
258
251
|
animationType={ComponentAnimationType.componentFade}
|
|
259
252
|
style={defaultStyles.flex}
|
|
@@ -27,8 +27,8 @@ exports[`PlayerWrapper renders inline 1`] = `
|
|
|
27
27
|
"backgroundColor": "transparent",
|
|
28
28
|
},
|
|
29
29
|
Object {
|
|
30
|
-
"height":
|
|
31
|
-
"width":
|
|
30
|
+
"height": 800,
|
|
31
|
+
"width": 300,
|
|
32
32
|
},
|
|
33
33
|
Object {},
|
|
34
34
|
]
|
|
@@ -133,8 +133,8 @@ exports[`PlayerWrapper renders inline and docked 1`] = `
|
|
|
133
133
|
"backgroundColor": "transparent",
|
|
134
134
|
},
|
|
135
135
|
Object {
|
|
136
|
-
"height":
|
|
137
|
-
"width":
|
|
136
|
+
"height": undefined,
|
|
137
|
+
"width": 300,
|
|
138
138
|
},
|
|
139
139
|
Object {},
|
|
140
140
|
]
|
|
@@ -361,8 +361,8 @@ exports[`PlayerWrapper renders properly 1`] = `
|
|
|
361
361
|
"backgroundColor": "transparent",
|
|
362
362
|
},
|
|
363
363
|
Object {
|
|
364
|
-
"height":
|
|
365
|
-
"width":
|
|
364
|
+
"height": 800,
|
|
365
|
+
"width": 300,
|
|
366
366
|
},
|
|
367
367
|
Object {},
|
|
368
368
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applicaster/zapp-react-native-ui-components",
|
|
3
|
-
"version": "13.0.0-alpha.
|
|
3
|
+
"version": "13.0.0-alpha.4120155420",
|
|
4
4
|
"description": "Applicaster Zapp React Native ui components for the Quick Brick App",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
"redux-mock-store": "^1.5.3"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@applicaster/applicaster-types": "13.0.0-alpha.
|
|
38
|
-
"@applicaster/zapp-react-native-bridge": "13.0.0-alpha.
|
|
39
|
-
"@applicaster/zapp-react-native-redux": "13.0.0-alpha.
|
|
40
|
-
"@applicaster/zapp-react-native-utils": "13.0.0-alpha.
|
|
37
|
+
"@applicaster/applicaster-types": "13.0.0-alpha.4120155420",
|
|
38
|
+
"@applicaster/zapp-react-native-bridge": "13.0.0-alpha.4120155420",
|
|
39
|
+
"@applicaster/zapp-react-native-redux": "13.0.0-alpha.4120155420",
|
|
40
|
+
"@applicaster/zapp-react-native-utils": "13.0.0-alpha.4120155420",
|
|
41
41
|
"promise": "^8.3.0",
|
|
42
42
|
"react-router-native": "^5.1.2",
|
|
43
43
|
"url": "^0.11.0",
|