@applicaster/zapp-react-native-ui-components 13.0.0-alpha.6714678893 → 13.0.0-alpha.7120331332

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 (79) hide show
  1. package/Components/AppContainer/__tests__/__snapshots__/AppContainer.test.js.snap +1 -1
  2. package/Components/AudioPlayer/__tests__/__snapshots__/Runtime.test.js.snap +4 -4
  3. package/Components/AudioPlayer/__tests__/__snapshots__/artWork.test.js.snap +3 -3
  4. package/Components/AudioPlayer/__tests__/__snapshots__/audioPlayer.test.js.snap +6 -6
  5. package/Components/AudioPlayer/__tests__/__snapshots__/audioPlayerLayout.test.js.snap +7 -7
  6. package/Components/AudioPlayer/__tests__/__snapshots__/channel.test.js.snap +3 -3
  7. package/Components/AudioPlayer/__tests__/__snapshots__/summary.test.js.snap +2 -2
  8. package/Components/AudioPlayer/__tests__/__snapshots__/title.test.js.snap +2 -2
  9. package/Components/Cell/TvOSCellComponent.tsx +4 -4
  10. package/Components/CellRendererResolver/__tests__/__snapshots__/cellRendererResolver.test.js.snap +20 -20
  11. package/Components/CellRendererResolver/__tests__/cellRendererResolver.test.js +5 -3
  12. package/Components/ComponentResolver/__tests__/__snapshots__/componentResolver.test.js.snap +5 -5
  13. package/Components/ComponentResolver/__tests__/componentResolver.test.js +11 -9
  14. package/Components/DisplayState/__tests__/__snapshots__/displayState.test.js.snap +2 -2
  15. package/Components/Focusable/FocusableTvOS.tsx +0 -4
  16. package/Components/FocusableScrollView/index.tsx +12 -39
  17. package/Components/GeneralContentScreen/utils/__tests__/useCurationAPI.test.js +9 -0
  18. package/Components/GeneralContentScreen/utils/useCurationAPI.ts +1 -1
  19. package/Components/Layout/TV/__tests__/ScreenContainer.test.tsx +1 -0
  20. package/Components/Layout/TV/__tests__/__snapshots__/LayoutContainer.test.tsx.snap +1 -1
  21. package/Components/Layout/TV/__tests__/__snapshots__/NavBarContainer.test.tsx.snap +3 -3
  22. package/Components/Layout/TV/__tests__/__snapshots__/ScreenContainer.test.tsx.snap +9 -9
  23. package/Components/Layout/TV/__tests__/__snapshots__/index.test.tsx.snap +1 -1
  24. package/Components/Layout/TV/__tests__/index.test.tsx +7 -3
  25. package/Components/MasterCell/DefaultComponents/SecondaryImage/__tests__/__snapshots__/Image.test.tsx.snap +3 -3
  26. package/Components/MasterCell/SharedUI/CollapsibleTextContainer/__tests__/__snapshots__/index.test.tsx.snap +1 -1
  27. package/Components/MasterCell/__tests__/__snapshots__/dataAdapter.test.js.snap +180 -180
  28. package/Components/MasterCell/__tests__/__snapshots__/elementMapper.test.js.snap +7 -7
  29. package/Components/MasterCell/__tests__/__snapshots__/masterCell.test.js.snap +34 -34
  30. package/Components/OfflineHandler/__tests__/__snapshots__/index.test.tsx.snap +7 -7
  31. package/Components/OfflineHandler/__tests__/index.test.tsx +28 -25
  32. package/Components/PlayerContainer/PlayerContainer.tsx +2 -4
  33. package/Components/River/RefreshControl.tsx +1 -1
  34. package/Components/River/__tests__/__snapshots__/componentsMap.test.js.snap +17 -17
  35. package/Components/River/__tests__/__snapshots__/river.test.js.snap +12 -12
  36. package/Components/River/__tests__/componentsMap.test.js +47 -12
  37. package/Components/RouteManager/__tests__/__snapshots__/routeManager.test.js.snap +1 -1
  38. package/Components/RouteManager/__tests__/__snapshots__/testId.test.js.snap +1 -1
  39. package/Components/Screen/__tests__/Screen.test.tsx +41 -27
  40. package/Components/Screen/__tests__/__snapshots__/Screen.test.tsx.snap +4 -4
  41. package/Components/ScreenResolver/__tests__/__snapshots__/screenResolver.test.js.snap +2 -2
  42. package/Components/ScreenResolver/__tests__/screenResolver.test.js +31 -27
  43. package/Components/Tabs/Tab.tsx +1 -0
  44. package/Components/TextInputTv/__tests__/TextInputTv.test.js +42 -42
  45. package/Components/TextInputTv/__tests__/__snapshots__/TextInputTv.test.js.snap +7 -0
  46. package/Components/TextInputTv/index.tsx +2 -2
  47. package/Components/Touchable/__tests__/__snapshots__/touchable.test.tsx.snap +2 -2
  48. package/Components/Transitioner/__tests__/__snapshots__/AnimationManager.test.js.snap +26 -26
  49. package/Components/Transitioner/__tests__/__snapshots__/Scene.test.js.snap +9 -9
  50. package/Components/Transitioner/__tests__/__snapshots__/config.test.js.snap +20 -20
  51. package/Components/Transitioner/__tests__/__snapshots__/transitioner.test.js.snap +2 -2
  52. package/Components/VideoLive/__tests__/PlayerLiveImageComponent.test.tsx +12 -7
  53. package/Components/VideoLive/__tests__/__snapshots__/PlayerLiveImageComponent.test.tsx.snap +6 -6
  54. package/Components/VideoModal/ModalAnimation/ModalAnimationContext.tsx +4 -10
  55. package/Components/VideoModal/ModalAnimation/index.ts +2 -1
  56. package/Components/VideoModal/ModalAnimation/useModalAnimationContext.ts +6 -0
  57. package/Components/VideoModal/__tests__/PlayerDetails.test.tsx +5 -2
  58. package/Components/VideoModal/__tests__/PlayerWrapper.test.tsx +12 -9
  59. package/Components/VideoModal/__tests__/__snapshots__/PlayerDetails.test.tsx.snap +4 -4
  60. package/Components/VideoModal/__tests__/__snapshots__/PlayerWrapper.test.tsx.snap +78 -78
  61. package/Components/VideoModal/utils.ts +2 -4
  62. package/Components/Viewport/ViewportAware/__tests__/__snapshots__/viewportAware.test.js.snap +2 -2
  63. package/Components/Viewport/ViewportTracker/__tests__/__snapshots__/viewportTracker.test.js.snap +1 -1
  64. package/Components/ZappUIComponent/__tests__/__snapshots__/ZappUIComponent.test.js.snap +11 -11
  65. package/Components/default-cell-renderer/__tests__/__snapshots__/defaultCellRenderer.test.tsx.snap +30 -30
  66. package/Contexts/ConfigutaionContext/__tests__/__snapshots__/ConfigurationProvider.test.tsx.snap +1 -1
  67. package/Decorators/Navigator/__tests__/__snapshots__/navigator.test.js.snap +2 -2
  68. package/Decorators/RiverFeedLoader/__tests__/__snapshots__/riverFeedLoader.test.tsx.snap +77 -77
  69. package/Decorators/RiverFeedLoader/__tests__/riverFeedLoader.test.tsx +34 -39
  70. package/Decorators/RiverFeedLoader/__tests__/utils.test.ts +0 -9
  71. package/Decorators/RiverFeedLoader/index.tsx +1 -1
  72. package/Decorators/RiverFeedLoader/utils/getDatasourceUrl.ts +39 -0
  73. package/Decorators/RiverFeedLoader/utils/index.ts +29 -0
  74. package/Decorators/RiverFeedLoader/utils/usePipesContexts.ts +40 -0
  75. package/Decorators/RiverResolver/__tests__/__snapshots__/riverResolver.test.tsx.snap +5 -5
  76. package/Decorators/RiverResolver/__tests__/riverResolver.test.tsx +16 -10
  77. package/Decorators/ZappPipesDataConnector/index.tsx +1 -1
  78. package/package.json +5 -5
  79. package/Decorators/RiverFeedLoader/utils.ts +0 -100
@@ -3,7 +3,7 @@
3
3
  exports[`<AppContainer /> renders correctly 1`] = `
4
4
  <View
5
5
  style={
6
- Object {
6
+ {
7
7
  "backgroundColor": "rgba(255, 255, 255, 1)",
8
8
  "flex": 1,
9
9
  }
@@ -3,7 +3,7 @@
3
3
  exports[`<Runtime /> LTR renders correctly 1`] = `
4
4
  <View
5
5
  style={
6
- Object {
6
+ {
7
7
  "height": 40,
8
8
  "justifyContent": "flex-start",
9
9
  "width": 600,
@@ -12,7 +12,7 @@ exports[`<Runtime /> LTR renders correctly 1`] = `
12
12
  >
13
13
  <Text
14
14
  style={
15
- Object {
15
+ {
16
16
  "alignItems": "flex-end",
17
17
  "color": "white",
18
18
  "flexDirection": "row",
@@ -32,7 +32,7 @@ exports[`<Runtime /> LTR renders correctly 1`] = `
32
32
  exports[`<Runtime /> RTL renders correctly 1`] = `
33
33
  <View
34
34
  style={
35
- Object {
35
+ {
36
36
  "height": 40,
37
37
  "justifyContent": "flex-end",
38
38
  "width": 600,
@@ -41,7 +41,7 @@ exports[`<Runtime /> RTL renders correctly 1`] = `
41
41
  >
42
42
  <Text
43
43
  style={
44
- Object {
44
+ {
45
45
  "alignItems": "flex-start",
46
46
  "color": "white",
47
47
  "flexDirection": "row-reverse",
@@ -3,7 +3,7 @@
3
3
  exports[`<Artwork /> renders correctly 1`] = `
4
4
  <View
5
5
  style={
6
- Object {
6
+ {
7
7
  "marginHorizontal": 24,
8
8
  }
9
9
  }
@@ -12,12 +12,12 @@ exports[`<Artwork /> renders correctly 1`] = `
12
12
  fadeDuration={0}
13
13
  resizeMode="cover"
14
14
  source={
15
- Object {
15
+ {
16
16
  "uri": "https://example.com",
17
17
  }
18
18
  }
19
19
  style={
20
- Object {
20
+ {
21
21
  "height": 400,
22
22
  "width": 400,
23
23
  }
@@ -3,7 +3,7 @@
3
3
  exports[`<AudioPlayer /> renders correctly 1`] = `
4
4
  <AudioPlayerLayout
5
5
  config={
6
- Object {
6
+ {
7
7
  "artworkAspectRatio": "1:1",
8
8
  "audioPlayerBackgroundImageQuery": "",
9
9
  "backgroundColor": "black",
@@ -21,11 +21,11 @@ exports[`<AudioPlayer /> renders correctly 1`] = `
21
21
  "titleFontSize": undefined,
22
22
  }
23
23
  }
24
- style={Object {}}
24
+ style={{}}
25
25
  >
26
26
  <Channel
27
27
  config={
28
- Object {
28
+ {
29
29
  "artworkAspectRatio": "1:1",
30
30
  "audioPlayerBackgroundImageQuery": "",
31
31
  "backgroundColor": "black",
@@ -47,7 +47,7 @@ exports[`<AudioPlayer /> renders correctly 1`] = `
47
47
  />
48
48
  <Title
49
49
  config={
50
- Object {
50
+ {
51
51
  "artworkAspectRatio": "1:1",
52
52
  "audioPlayerBackgroundImageQuery": "",
53
53
  "backgroundColor": "black",
@@ -69,7 +69,7 @@ exports[`<AudioPlayer /> renders correctly 1`] = `
69
69
  />
70
70
  <Summary
71
71
  config={
72
- Object {
72
+ {
73
73
  "artworkAspectRatio": "1:1",
74
74
  "audioPlayerBackgroundImageQuery": "",
75
75
  "backgroundColor": "black",
@@ -98,7 +98,7 @@ exports[`<AudioPlayer /> renders correctly 1`] = `
98
98
  audio_player_summary_color="white"
99
99
  audio_player_title_color="white"
100
100
  config={
101
- Object {
101
+ {
102
102
  "artworkAspectRatio": "1:1",
103
103
  "audioPlayerBackgroundImageQuery": "",
104
104
  "backgroundColor": "black",
@@ -4,7 +4,7 @@ exports[`<AudioPlayerLayout /> renders correctly 1`] = `
4
4
  <View
5
5
  pointerEvents="none"
6
6
  style={
7
- Object {
7
+ {
8
8
  "backgroundColor": "transparent",
9
9
  "overflow": "hidden",
10
10
  }
@@ -12,12 +12,12 @@ exports[`<AudioPlayerLayout /> renders correctly 1`] = `
12
12
  >
13
13
  <ForwardRef(AnimatedComponentWrapper)
14
14
  style={
15
- Array [
16
- Object {
15
+ [
16
+ {
17
17
  "backgroundColor": "transparent",
18
18
  "overflow": "hidden",
19
19
  },
20
- Object {
20
+ {
21
21
  "opacity": 0,
22
22
  },
23
23
  ]
@@ -26,19 +26,19 @@ exports[`<AudioPlayerLayout /> renders correctly 1`] = `
26
26
  <ImageBackground
27
27
  resizeMode="cover"
28
28
  source={
29
- Object {
29
+ {
30
30
  "uri": "https://example.com",
31
31
  }
32
32
  }
33
33
  style={
34
- Object {
34
+ {
35
35
  "flex": 1,
36
36
  }
37
37
  }
38
38
  >
39
39
  <View
40
40
  style={
41
- Object {
41
+ {
42
42
  "backgroundColor": "transparent",
43
43
  "overflow": "hidden",
44
44
  }
@@ -3,7 +3,7 @@
3
3
  exports[`<Channel /> renders correctly 1`] = `
4
4
  <View
5
5
  style={
6
- Object {
6
+ {
7
7
  "height": 72,
8
8
  "marginBottom": 30,
9
9
  "width": 128,
@@ -13,12 +13,12 @@ exports[`<Channel /> renders correctly 1`] = `
13
13
  <Image
14
14
  fadeDuration={0}
15
15
  source={
16
- Object {
16
+ {
17
17
  "uri": "https://example.com",
18
18
  }
19
19
  }
20
20
  style={
21
- Object {
21
+ {
22
22
  "height": 72,
23
23
  "width": 128,
24
24
  }
@@ -3,7 +3,7 @@
3
3
  exports[`<Summary /> renders correctly 1`] = `
4
4
  <View
5
5
  style={
6
- Object {
6
+ {
7
7
  "height": 80,
8
8
  "marginBottom": 30,
9
9
  "width": 600,
@@ -13,7 +13,7 @@ exports[`<Summary /> renders correctly 1`] = `
13
13
  <Text
14
14
  numberOfLines={2}
15
15
  style={
16
- Object {
16
+ {
17
17
  "color": "white",
18
18
  "fontFamily": null,
19
19
  "fontSize": 20,
@@ -3,7 +3,7 @@
3
3
  exports[`<Title /> renders correctly 1`] = `
4
4
  <View
5
5
  style={
6
- Object {
6
+ {
7
7
  "height": 100,
8
8
  "marginBottom": 12,
9
9
  "width": 600,
@@ -13,7 +13,7 @@ exports[`<Title /> renders correctly 1`] = `
13
13
  <Text
14
14
  numberOfLines={2}
15
15
  style={
16
- Object {
16
+ {
17
17
  "color": "white",
18
18
  "fontFamily": null,
19
19
  "fontSize": 38,
@@ -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/FocusableTvOS";
5
+ import { Focusable } from "@applicaster/zapp-react-native-ui-components/Components/Focusable";
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";
@@ -251,7 +251,7 @@ export class TvOSCellComponent extends React.Component<Props, State> {
251
251
 
252
252
  const focusableId = R.join("-", [component?.id, id, index]);
253
253
 
254
- const handleFocus = (arg1: any, index?: number) => {
254
+ const handleFocus = (arg1: any, index: number) => {
255
255
  const focusFn = onFocus || noop;
256
256
  focusFn(arg1, index);
257
257
 
@@ -284,7 +284,7 @@ export class TvOSCellComponent extends React.Component<Props, State> {
284
284
  <View onLayout={this.onLayout} style={styles.container}>
285
285
  <Focusable
286
286
  id={focusableId}
287
- groupId={(groupId || component?.id).toString()}
287
+ groupId={groupId || component?.id}
288
288
  onFocus={handleFocus}
289
289
  onBlur={onBlur || this.onBlur}
290
290
  isParallaxDisabled={this.layout?.width > 1740}
@@ -303,7 +303,7 @@ export class TvOSCellComponent extends React.Component<Props, State> {
303
303
  index,
304
304
  CellRenderer,
305
305
  item,
306
- focused: !!(this.props.focused || selectedCell || focused),
306
+ focused: this.props.focused || selectedCell || focused,
307
307
  scrollTo: this.scrollTo,
308
308
  behavior,
309
309
  }}
@@ -3,24 +3,24 @@
3
3
  exports[`CellRendererResolver renders correctly 1`] = `
4
4
  <View
5
5
  someProp={
6
- Object {
7
- "cellOptions": Object {},
8
- "cellStyles": Object {
9
- "ABCDE-123456": Object {
10
- "configuration": Object {},
6
+ {
7
+ "cellOptions": {},
8
+ "cellStyles": {
9
+ "ABCDE-123456": {
10
+ "configuration": {},
11
11
  "plugin_identifier": "custom_renderer_plugin",
12
12
  },
13
- "FGHIJ-123456": Object {
14
- "configuration": Object {},
13
+ "FGHIJ-123456": {
14
+ "configuration": {},
15
15
  "plugin_identifier": "unknown_plugin",
16
16
  },
17
17
  },
18
- "component": Object {
19
- "styles": Object {
18
+ "component": {
19
+ "styles": {
20
20
  "cell_plugin_configuration_id": "ABCDE-123456",
21
21
  },
22
22
  },
23
- "styles": Object {},
23
+ "styles": {},
24
24
  }
25
25
  }
26
26
  />
@@ -29,24 +29,24 @@ exports[`CellRendererResolver renders correctly 1`] = `
29
29
  exports[`CellRendererResolver with a default renderer plugin renders correctly 1`] = `
30
30
  <View
31
31
  someProp={
32
- Object {
33
- "cellOptions": Object {},
34
- "cellStyles": Object {
35
- "ABCDE-123456": Object {
36
- "configuration": Object {},
32
+ {
33
+ "cellOptions": {},
34
+ "cellStyles": {
35
+ "ABCDE-123456": {
36
+ "configuration": {},
37
37
  "plugin_identifier": "custom_renderer_plugin",
38
38
  },
39
- "FGHIJ-123456": Object {
40
- "configuration": Object {},
39
+ "FGHIJ-123456": {
40
+ "configuration": {},
41
41
  "plugin_identifier": "unknown_plugin",
42
42
  },
43
43
  },
44
- "component": Object {
45
- "styles": Object {
44
+ "component": {
45
+ "styles": {
46
46
  "cell_plugin_configuration_id": "ABCDE-123456",
47
47
  },
48
48
  },
49
- "styles": Object {},
49
+ "styles": {},
50
50
  }
51
51
  }
52
52
  />
@@ -2,9 +2,11 @@ import * as React from "react";
2
2
  import { View } from "react-native";
3
3
  import { shallow } from "enzyme";
4
4
 
5
- jest.mock("../../default-cell-renderer", () =>
6
- jest.fn((prop) => <View whoAmI="default renderer" someProp={prop} />)
7
- );
5
+ jest.mock("../../default-cell-renderer", () => {
6
+ const View = jest.requireActual("react-native").View;
7
+
8
+ return jest.fn((prop) => <View whoAmI="default renderer" someProp={prop} />);
9
+ });
8
10
 
9
11
  const { CellRendererResolver } = require("../index");
10
12
 
@@ -5,22 +5,22 @@ exports[`ComponentResolver renders correctly 1`] = `
5
5
  value={null}
6
6
  >
7
7
  <Memo(ComponentResolver)
8
- cellStyles={Object {}}
8
+ cellStyles={{}}
9
9
  component={
10
- Object {
10
+ {
11
11
  "component_type": "some_component",
12
12
  }
13
13
  }
14
14
  components={
15
- Object {
15
+ {
16
16
  "SomeComponent": [MockFunction],
17
17
  }
18
18
  }
19
19
  decorators={[MockFunction]}
20
20
  dispatch={[Function]}
21
- plugins={Array []}
21
+ plugins={[]}
22
22
  store={
23
- Object {
23
+ {
24
24
  "clearActions": [Function],
25
25
  "dispatch": [Function],
26
26
  "getActions": [Function],
@@ -4,19 +4,21 @@ import { shallow } from "enzyme";
4
4
  import { shallowToJson } from "enzyme-to-json";
5
5
  import configureStore from "redux-mock-store";
6
6
 
7
- const logger = {
7
+ const mockLogger = {
8
8
  warning: jest.fn(),
9
9
  };
10
10
 
11
11
  jest.mock("../../../Helpers/logger", () => ({
12
12
  componentsLogger: {
13
- addSubsystem: jest.fn(() => logger),
13
+ addSubsystem: jest.fn(() => mockLogger),
14
14
  },
15
15
  }));
16
16
 
17
- jest.mock("../../default-cell-renderer", () =>
18
- jest.fn((prop) => <View whoAmI="default renderer" someProp={prop} />)
19
- );
17
+ jest.mock("../../default-cell-renderer", () => {
18
+ const View = jest.requireActual("react-native").View;
19
+
20
+ return jest.fn((prop) => <View whoAmI="default renderer" someProp={prop} />);
21
+ });
20
22
 
21
23
  const mock_rtl_flag = false;
22
24
 
@@ -48,7 +50,7 @@ function clearAllMocks() {
48
50
  SomeComponent.mockClear();
49
51
  decorators.mockClear();
50
52
  renderFunction.mockClear();
51
- logger.warning.mockClear();
53
+ mockLogger.warning.mockClear();
52
54
  }
53
55
 
54
56
  describe("ComponentResolver", () => {
@@ -104,16 +106,16 @@ describe("ComponentResolverComponent", () => {
104
106
  expect(shallowToJson(wrapper)).toMatchSnapshot();
105
107
  expect(wrapper.isEmptyRender()).toBe(true);
106
108
 
107
- expect(logger.warning).toHaveBeenCalledTimes(2);
109
+ expect(mockLogger.warning).toHaveBeenCalledTimes(2);
108
110
 
109
- expect(logger.warning).toHaveBeenNthCalledWith(
111
+ expect(mockLogger.warning).toHaveBeenNthCalledWith(
110
112
  1,
111
113
  expect.objectContaining({
112
114
  message: "Could not resolve cell builder plugin",
113
115
  })
114
116
  );
115
117
 
116
- expect(logger.warning).toHaveBeenNthCalledWith(
118
+ expect(mockLogger.warning).toHaveBeenNthCalledWith(
117
119
  2,
118
120
  expect.objectContaining({
119
121
  message: warningMessage,
@@ -1,7 +1,7 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`DISPLAY_STATES matches the snapshot 1`] = `
4
- Object {
4
+ {
5
5
  "CONTENT": "CONTENT",
6
6
  "CONTROLS": "CONTROLS",
7
7
  "DISCOVERY": "DISCOVERY",
@@ -9,7 +9,7 @@ Object {
9
9
  `;
10
10
 
11
11
  exports[`DisplayStateContext has the correct properties 1`] = `
12
- Object {
12
+ {
13
13
  "Consumer": [MockFunction],
14
14
  "Provider": [MockFunction],
15
15
  "withConsumer": [MockFunction],
@@ -16,8 +16,6 @@ function noop() {}
16
16
  type Props = {
17
17
  id: string;
18
18
  groupId: string;
19
- willReceiveFocus?: (nativeEvent: React.SyntheticEvent) => void;
20
- hasReceivedFocus?: (nativeEvent: React.SyntheticEvent) => void;
21
19
  onPress?: (nativeEvent: React.SyntheticEvent) => void;
22
20
  onFocus?: (nativeEvent: React.SyntheticEvent) => void;
23
21
  onBlur?: (nativeEvent: React.SyntheticEvent) => void;
@@ -37,8 +35,6 @@ type Props = {
37
35
  forceFocus?: boolean;
38
36
  initialFocus?: boolean;
39
37
  onLayout?: (e: any) => void;
40
- offsetUpdater: (arg1: string, arg2: number) => number;
41
- style: any;
42
38
  };
43
39
 
44
40
  export class Focusable extends BaseFocusable<Props> {
@@ -11,13 +11,6 @@ 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
-
21
14
  export type Props = ScrollViewProps & {
22
15
  id?: number | string;
23
16
  horizontal?: boolean;
@@ -39,27 +32,17 @@ export type Props = ScrollViewProps & {
39
32
  initialFocusDirection?: FocusManager.Android.FocusNavigationDirections;
40
33
  onAllComponentsLoaded?: () => void;
41
34
  omitPropsPropagation?: Array<keyof FlatListProps<any>>;
42
- renderItem: FocusableScrollViewRenderItem;
35
+ renderItem: (info: {
36
+ item: ZappUIComponent;
37
+ index: number;
38
+ focused: boolean;
39
+ parentFocus: ParentFocus;
40
+ }) => React.ReactElement;
43
41
  } & ParentFocus;
44
42
 
45
43
  type State = boolean[];
46
44
  type Action = { index?: number; isFocusable: boolean; type?: string };
47
45
 
48
- const unwrapArray = (maybeArray) =>
49
- Array.isArray(maybeArray) ? maybeArray[0] : maybeArray;
50
-
51
- function getEntry<T>(data: T | T[], index: unknown): T {
52
- let entry;
53
-
54
- if (R.isNil(index)) {
55
- entry = unwrapArray(data);
56
- } else if (typeof index === "number") {
57
- entry = unwrapArray(data[index]);
58
- }
59
-
60
- return entry;
61
- }
62
-
63
46
  const focusableStateReducer = (
64
47
  state: State,
65
48
  { index = null, isFocusable, type = null }: Action
@@ -90,7 +73,7 @@ const extendScrollViewRef = (_ref, childCompsMeasurementsMap) => {
90
73
  };
91
74
 
92
75
  _ref.scrollToIndex = (params) => {
93
- const { index, viewOffset = 0 } = params;
76
+ const { index, viewOffset } = params;
94
77
 
95
78
  const itemByIndex = R.find(R.propEq("index", index))(
96
79
  R.values(childCompsMeasurementsMap)
@@ -146,11 +129,8 @@ function FocusableScrollViewComponent(props: Props, ref) {
146
129
  );
147
130
 
148
131
  const getFocusableEntryId = React.useCallback(
149
- (_entry: ZappEntry | null, index?: number) => {
150
- const entry: { id?: string } = getEntry(
151
- R.isNil(index) ? _entry : data,
152
- index
153
- );
132
+ (_entry: ZappEntry, index?: number) => {
133
+ const entry = R.isNil(index) ? _entry : data[index];
154
134
 
155
135
  return entry ? `${props.id}--${entry?.id}` : undefined;
156
136
  },
@@ -293,18 +273,11 @@ function FocusableScrollViewComponent(props: Props, ref) {
293
273
  const renderItem = React.useCallback(
294
274
  (item, index) => {
295
275
  const renderArgs = { item, index };
296
-
297
- const id = getFocusableEntryId(
298
- Array.isArray(item) ? item[0] : item,
299
- index
300
- );
301
-
302
- const nextFocus = getNextFocus(index);
276
+ const id = `${props.id}--${renderArgs?.item?.id}`;
277
+ const nextFocus = getNextFocus(renderArgs?.index);
303
278
 
304
279
  const onItemLayout = (event) => {
305
- childCompsMeasurementsMap.current[
306
- Array.isArray(item) ? index : item.id
307
- ] = {
280
+ childCompsMeasurementsMap.current[item.id] = {
308
281
  index,
309
282
  layout: event.nativeEvent.layout,
310
283
  };
@@ -16,6 +16,15 @@ import { PathnameContext } from "@applicaster/zapp-react-native-ui-components/Co
16
16
  import { Provider } from "react-redux";
17
17
  import configureStore from "redux-mock-store";
18
18
 
19
+ jest.mock(
20
+ "@applicaster/zapp-react-native-utils/reactHooks/navigation/useRoute",
21
+ () => ({
22
+ useRoute: jest.fn().mockReturnValue({
23
+ pathname: "/home",
24
+ }),
25
+ })
26
+ );
27
+
19
28
  const homeStack = {
20
29
  route: "/home",
21
30
  state: {
@@ -9,7 +9,7 @@ import { loadPipesData } from "@applicaster/zapp-react-native-redux/ZappPipes";
9
9
  import { isEmptyOrNil } from "@applicaster/zapp-react-native-utils/cellUtils";
10
10
  import { Categories } from "./logger";
11
11
  import { createLogger } from "@applicaster/zapp-react-native-utils/logger";
12
- import { useRoute } from "@applicaster/zapp-react-native-utils/reactHooks/navigation";
12
+ import { useRoute } from "@applicaster/zapp-react-native-utils/reactHooks/navigation/useRoute";
13
13
  import {
14
14
  ZappPipesEntryContext,
15
15
  ZappPipesScreenContext,
@@ -39,6 +39,7 @@ jest.mock(
39
39
  );
40
40
 
41
41
  jest.mock("@applicaster/zapp-react-native-utils/theme", () => ({
42
+ ...jest.requireActual<any>("@applicaster/zapp-react-native-utils/theme"),
42
43
  useTheme: () => ({}),
43
44
  }));
44
45
 
@@ -3,7 +3,7 @@
3
3
  exports[`LayoutContainer renders 1`] = `
4
4
  <View
5
5
  style={
6
- Object {
6
+ {
7
7
  "flex": 1,
8
8
  "height": 1080,
9
9
  "width": 1920,
@@ -3,14 +3,14 @@
3
3
  exports[`NavBarContainer renders 1`] = `
4
4
  <View
5
5
  style={
6
- Array [
7
- Object {
6
+ [
7
+ {
8
8
  "position": "absolute",
9
9
  "top": 0,
10
10
  "width": 1920,
11
11
  "zIndex": 10,
12
12
  },
13
- Object {
13
+ {
14
14
  "maxHeight": 10,
15
15
  },
16
16
  ]