@applicaster/zapp-react-native-utils 12.0.0-rc.98 → 13.0.0-alpha.2322412833

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 (76) hide show
  1. package/analyticsUtils/AnalyticPlayerListener.ts +141 -0
  2. package/analyticsUtils/PlayerAnalyticsManager.ts +90 -0
  3. package/analyticsUtils/{analyticsTracker.ts → playerAnalyticsTracker.ts} +19 -10
  4. package/appUtils/HooksManager/{Hook.js → Hook.ts} +35 -23
  5. package/appUtils/HooksManager/__tests__/__snapshots__/hook.test.js.snap +4 -2
  6. package/appUtils/HooksManager/__tests__/__snapshots__/hooksManager.test.js.snap +693 -0
  7. package/appUtils/HooksManager/__tests__/hook.test.js +196 -184
  8. package/appUtils/HooksManager/__tests__/hooksManager.test.js +96 -99
  9. package/appUtils/HooksManager/{constants.js → constants.ts} +1 -1
  10. package/appUtils/HooksManager/{index.js → index.ts} +121 -112
  11. package/appUtils/HooksManager/types.ts +116 -0
  12. package/appUtils/RiverFocusManager/index.js +17 -12
  13. package/appUtils/accessibilityManager/hooks.ts +16 -7
  14. package/appUtils/accessibilityManager/index.ts +33 -28
  15. package/appUtils/focusManager/treeDataStructure/Tree/index.js +2 -3
  16. package/appUtils/focusManager/treeDataStructure/Utils/index.js +1 -3
  17. package/appUtils/{index.js → index.ts} +1 -1
  18. package/appUtils/keyCodes/__tests__/keyCodes.test.js +3 -3
  19. package/appUtils/keyCodes/{index.js → index.ts} +2 -0
  20. package/appUtils/keyCodes/keys/index.ts +3 -0
  21. package/appUtils/keyCodes/{keys.android.js → keys/keyEventMapper.ts} +0 -19
  22. package/appUtils/keyCodes/keys/keys.android.ts +18 -0
  23. package/appUtils/keyCodes/keys/keys.ios.ts +25 -0
  24. package/appUtils/keyCodes/keys/keys.ts +15 -0
  25. package/appUtils/platform/platformUtils.ts +35 -16
  26. package/appUtils/playerManager/index.ts +9 -27
  27. package/appUtils/playerManager/playerFactory.ts +5 -4
  28. package/appUtils/playerManager/playerHooks/usePlayerCurrentTime.tsx +57 -0
  29. package/appUtils/playerManager/playerNative.ts +1 -1
  30. package/appUtils/playerManager/usePlayerControllerSetup.tsx +1 -1
  31. package/appUtils/playerManager/usePlayerState.tsx +19 -34
  32. package/arrayUtils/index.ts +11 -0
  33. package/cellUtils/index.ts +38 -5
  34. package/domUtils/{cookieManager.js → cookieManager.ts} +1 -2
  35. package/focusManager/FocusManager.ts +20 -5
  36. package/focusManager/__tests__/FocusManager.test.ts +0 -1
  37. package/functionUtils/index.ts +53 -11
  38. package/index.d.ts +15 -0
  39. package/manifestUtils/defaultManifestConfigurations/player.js +121 -0
  40. package/manifestUtils/keys.js +2 -1
  41. package/modalState/index.ts +1 -5
  42. package/navigationUtils/index.ts +15 -6
  43. package/numberUtils/__tests__/toNumber.test.ts +2 -2
  44. package/numberUtils/__tests__/toPositiveNumberWithDefault.test.ts +66 -0
  45. package/numberUtils/__tests__/toPositiveNumberWithDefaultZero.test.ts +66 -0
  46. package/numberUtils/index.ts +20 -0
  47. package/package.json +2 -2
  48. package/playerUtils/configurationGenerator.ts +120 -0
  49. package/playerUtils/imaScriptDom.ts +59 -0
  50. package/reactHooks/cell-click/index.ts +17 -3
  51. package/reactHooks/debugging/__tests__/index.test.js +81 -11
  52. package/reactHooks/feed/__tests__/useBatchLoading.test.tsx +69 -6
  53. package/reactHooks/feed/__tests__/useFeedLoader.test.tsx +10 -2
  54. package/reactHooks/feed/useBatchLoading.ts +52 -28
  55. package/reactHooks/feed/useFeedLoader.tsx +11 -7
  56. package/reactHooks/layout/useDimensions/__tests__/useDimensions.test.ts +134 -0
  57. package/reactHooks/layout/useDimensions/useDimensions.ts +2 -0
  58. package/reactHooks/navigation/index.ts +8 -5
  59. package/reactHooks/player/useAutoSeek.tsx +9 -7
  60. package/reactHooks/resolvers/useCellResolver.ts +5 -1
  61. package/reactHooks/useConfiguration.ts +2 -2
  62. package/reactHooks/utils/index.ts +13 -0
  63. package/reactUtils/index.ts +1 -16
  64. package/services/localStorageServiceSync.web.ts +48 -0
  65. package/services/sessionStorageServiceSync.web.ts +32 -0
  66. package/services/storageServiceSync.web.ts +24 -0
  67. package/services/storageWebUtils.web.ts +10 -0
  68. package/testUtils/index.tsx +42 -9
  69. package/appUtils/keyCodes/keys.ios.js +0 -46
  70. /package/appUtils/HooksManager/{logger.js → logger.ts} +0 -0
  71. /package/appUtils/{directionHelper.js → directionHelper.ts} +0 -0
  72. /package/appUtils/keyCodes/{androidTVKeys.js → androidTVKeys.ts} +0 -0
  73. /package/appUtils/keyCodes/{keys.web.js → keys/keys.web.ts} +0 -0
  74. /package/appUtils/keyCodes/{keysByPlatform.js → keys/keysByPlatform.ts} +0 -0
  75. /package/appUtils/{localizationsHelper.js → localizationsHelper.ts} +0 -0
  76. /package/domUtils/{logger.js → logger.ts} +0 -0
@@ -0,0 +1,32 @@
1
+ import {
2
+ DEFAULT_STORAGE_NAMESPACE,
3
+ getWebStorageKey,
4
+ } from "./storageWebUtils.web";
5
+
6
+ export function saveSync(
7
+ key: string,
8
+ value: string,
9
+ namespace: string = DEFAULT_STORAGE_NAMESPACE
10
+ ) {
11
+ const storageWebKey = getWebStorageKey(key, namespace);
12
+
13
+ return sessionStorage.setItem(storageWebKey, value);
14
+ }
15
+
16
+ export function getSync(
17
+ key: string,
18
+ namespace: string = DEFAULT_STORAGE_NAMESPACE
19
+ ) {
20
+ const storageWebKey = getWebStorageKey(key, namespace);
21
+
22
+ return sessionStorage.getItem(storageWebKey);
23
+ }
24
+
25
+ export function removeSync(
26
+ key: string,
27
+ namespace: string = DEFAULT_STORAGE_NAMESPACE
28
+ ) {
29
+ const storageWebKey = getWebStorageKey(key, namespace);
30
+
31
+ return sessionStorage.removeItem(storageWebKey);
32
+ }
@@ -0,0 +1,24 @@
1
+ import { DEFAULT_STORAGE_NAMESPACE } from "./storageWebUtils.web";
2
+ import { getSync as getLocalStorage } from "./localStorageServiceSync.web";
3
+ import { getSync as getSessionStorage } from "./sessionStorageServiceSync.web";
4
+
5
+ export const getFromSessionOrLocalStorage = (
6
+ key: string,
7
+ namespace: string = DEFAULT_STORAGE_NAMESPACE
8
+ ) => getSessionStorage(key, namespace) || getLocalStorage(key, namespace);
9
+
10
+ export const resolveStorageContextKey = (storageKey: string) => {
11
+ if (!storageKey) {
12
+ return;
13
+ }
14
+
15
+ const splitKey = storageKey.split(".");
16
+ const namespaceOrKey = splitKey[0];
17
+ const key = splitKey[1];
18
+
19
+ if (!key) {
20
+ return getFromSessionOrLocalStorage(key);
21
+ } else {
22
+ return getFromSessionOrLocalStorage(key, namespaceOrKey);
23
+ }
24
+ };
@@ -0,0 +1,10 @@
1
+ export const DEFAULT_STORAGE_NAMESPACE = "applicaster.v2";
2
+
3
+ export const NAMESPACE_STORAGE_SEPARATOR_WEB = "_::_";
4
+
5
+ export const getWebStorageKey = (
6
+ key: String,
7
+ namespace: String = DEFAULT_STORAGE_NAMESPACE
8
+ ) => {
9
+ return `${namespace}${NAMESPACE_STORAGE_SEPARATOR_WEB}${key}`;
10
+ };
@@ -7,9 +7,11 @@ import { Provider } from "react-redux";
7
7
  import thunk from "redux-thunk";
8
8
  import configureStore from "redux-mock-store";
9
9
  import { SafeAreaProvider } from "react-native-safe-area-context";
10
+ import { appStore } from "@applicaster/zapp-react-native-redux/AppStore";
10
11
 
11
12
  import { render } from "@testing-library/react-native";
12
13
  import { AnalyticsProvider } from "../analyticsUtils";
14
+ import { ThemeContext } from "../theme";
13
15
 
14
16
  export { getByTestId } from "./getByTestId";
15
17
 
@@ -59,7 +61,9 @@ const initialState = {
59
61
  appSettings: {},
60
62
  plugins: [],
61
63
  appState: { appReady: true, appLaunched: true },
64
+ pluginConfigurations: {},
62
65
  appData: { layoutVersion: "v1" },
66
+ zappPipes: {},
63
67
  contentTypes: null,
64
68
  };
65
69
 
@@ -68,20 +72,49 @@ export const WrappedWithProviders = ({
68
72
  store: storeObj = {},
69
73
  }: any) => {
70
74
  const _store = configureStore([thunk])(
71
- R.mergeDeepWith(R.concat, { ...initialState }, storeObj)
75
+ R.mergeDeepRight(initialState, { ...storeObj })
72
76
  );
73
77
 
78
+ appStore.set(_store);
79
+
74
80
  return (
75
- <SafeAreaProvider
76
- initialMetrics={{
77
- insets: { top: 0, left: 0, right: 0, bottom: 0 },
78
- frame: { x: 0, y: 0, width: 0, height: 0 },
81
+ <ThemeContext.Provider
82
+ value={{
83
+ themes: {
84
+ light: {
85
+ component_margin_top: 0,
86
+ component_margin_bottom: 0,
87
+ component_margin_left: 0,
88
+ component_margin_right: 0,
89
+ component_padding_top: 0,
90
+ component_padding_bottom: 0,
91
+ component_padding_left: 0,
92
+ component_padding_right: 0,
93
+ component_gutter_vertical: 0,
94
+ component_gutter_horizontal: 0,
95
+ component_corner_radius: 0,
96
+ app_background_color: "rgba(0,0,0,0)",
97
+ screen_margin_top: 0,
98
+ screen_margin_bottom: 0,
99
+ component_anchor_point_y: 0,
100
+ assets: "",
101
+ },
102
+ },
103
+ selectedThemeId: "light",
104
+ setSelectedThemeId: () => {},
79
105
  }}
80
106
  >
81
- <Provider store={_store}>
82
- <AnalyticsProvider>{children}</AnalyticsProvider>
83
- </Provider>
84
- </SafeAreaProvider>
107
+ <SafeAreaProvider
108
+ initialMetrics={{
109
+ insets: { top: 0, left: 0, right: 0, bottom: 0 },
110
+ frame: { x: 0, y: 0, width: 0, height: 0 },
111
+ }}
112
+ >
113
+ <Provider store={_store}>
114
+ <AnalyticsProvider>{children}</AnalyticsProvider>
115
+ </Provider>
116
+ </SafeAreaProvider>
117
+ </ThemeContext.Provider>
85
118
  );
86
119
  };
87
120
 
@@ -1,46 +0,0 @@
1
- /* global tizen */
2
- const isTizen = typeof tizen !== "undefined";
3
-
4
- export const KEYS = {
5
- Enter: { code: "Enter", keyCode: 13 },
6
- Space: { code: "Space", keyCode: 32 },
7
- m: { code: "m", keyCode: 77 },
8
- ArrowLeft: { code: "ArrowLeft", keyCode: 37 },
9
- ArrowUp: { code: "ArrowUp", keyCode: 38 },
10
- ArrowRight: { code: "ArrowRight", keyCode: 39 },
11
- ArrowDown: { code: "ArrowDown", keyCode: 40 },
12
- Back: isTizen
13
- ? { code: "Back", keyCode: 10009 }
14
- : { code: "Backspace", keyCode: 8 },
15
- Play: isTizen
16
- ? { code: "MediaPlay", keyCode: 10252 }
17
- : { code: "PlayPause", keyCode: 179 },
18
- Pause: isTizen
19
- ? { code: "MediaPause", keyCode: 19 }
20
- : { code: "Pause", keyCode: 179 },
21
- Forward: isTizen
22
- ? { code: "MediaFastForward", keyCode: 417 }
23
- : { code: "Forward", keyCode: 176 },
24
- Rewind: isTizen
25
- ? { code: "MediaRewind", keyCode: 412 }
26
- : { code: "Rewind", keyCode: 177 },
27
- VolumeUp: isTizen
28
- ? { code: "VolumeUp", keyCode: 447 }
29
- : { code: "VolumeUp", keyCode: 175 },
30
- VolumeDown: isTizen
31
- ? { code: "VolumeDown", keyCode: 448 }
32
- : { code: "VolumeDown", keyCode: 174 },
33
- ToggleMute: isTizen
34
- ? { code: "VolumeMute", keyCode: 449 }
35
- : { code: "VolumeMute", keyCode: 173 },
36
- Stop: isTizen
37
- ? { code: "MediaStop", keyCode: 413 }
38
- : { code: "Q", keyCode: 81 },
39
- };
40
-
41
- export const ARROW_KEYS = [
42
- KEYS.ArrowUp,
43
- KEYS.ArrowLeft,
44
- KEYS.ArrowDown,
45
- KEYS.ArrowRight,
46
- ];
File without changes
File without changes