@applicaster/zapp-react-native-utils 16.0.0-alpha.1232235100 → 16.0.0-alpha.1314750780
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/actionUtils/index.ts +3 -1
- package/actionsExecutor/ActionExecutor.ts +57 -12
- package/actionsExecutor/ActionExecutorContext.tsx +110 -333
- package/actionsExecutor/__tests__/ActionExecutor.test.ts +71 -0
- package/actionsExecutor/__tests__/StorageActions.test.ts +98 -0
- package/actionsExecutor/__tests__/feedDecorator.test.ts +91 -0
- package/actionsExecutor/__tests__/screenToggleFlag.test.ts +90 -0
- package/actionsExecutor/actions/__tests__/dismissBottomSheet.test.ts +25 -0
- package/actionsExecutor/actions/__tests__/goBack.test.ts +62 -0
- package/actionsExecutor/actions/__tests__/goHome.test.ts +19 -0
- package/actionsExecutor/actions/__tests__/loadItemsFromSource.test.ts +88 -0
- package/actionsExecutor/actions/__tests__/navigateToScreen.test.ts +314 -0
- package/actionsExecutor/actions/__tests__/openBottomSheet.customContent.test.ts +100 -0
- package/actionsExecutor/actions/__tests__/openBottomSheet.inlineItems.test.ts +372 -0
- package/actionsExecutor/actions/__tests__/presentScreen.test.ts +127 -0
- package/actionsExecutor/actions/__tests__/showAlert.test.ts +49 -0
- package/actionsExecutor/actions/__tests__/showToast.test.ts +88 -0
- package/actionsExecutor/actions/appRestart.ts +24 -0
- package/actionsExecutor/actions/confirmDialog.ts +53 -0
- package/actionsExecutor/actions/dismissBottomSheet.ts +23 -0
- package/actionsExecutor/actions/goBack.ts +60 -0
- package/actionsExecutor/actions/goHome.ts +31 -0
- package/actionsExecutor/actions/index.ts +42 -0
- package/actionsExecutor/actions/localStorageRemove.ts +27 -0
- package/actionsExecutor/actions/localStorageSet.ts +28 -0
- package/actionsExecutor/actions/localStorageToggleFlag.ts +28 -0
- package/actionsExecutor/actions/navigateToScreen.ts +127 -0
- package/actionsExecutor/actions/openBottomSheet.ts +340 -0
- package/actionsExecutor/actions/presentScreen.ts +78 -0
- package/actionsExecutor/actions/refreshComponent.ts +85 -0
- package/actionsExecutor/actions/screenSetVariable.ts +35 -0
- package/actionsExecutor/actions/screenToggleFlag.ts +36 -0
- package/actionsExecutor/actions/sendCloudEvent.ts +93 -0
- package/actionsExecutor/actions/sessionStorageRemove.ts +19 -0
- package/actionsExecutor/actions/sessionStorageSet.ts +20 -0
- package/actionsExecutor/actions/sessionStorageToggleFlag.ts +15 -0
- package/actionsExecutor/actions/showAlert.ts +51 -0
- package/actionsExecutor/actions/showToast.ts +87 -0
- package/actionsExecutor/actions/switchLayout.ts +40 -0
- package/actionsExecutor/consts.ts +27 -0
- package/actionsExecutor/feedDecorator.ts +12 -6
- package/actionsExecutor/types.ts +66 -0
- package/analyticsUtils/PlayerAnalyticsManager.ts +1 -1
- package/appUtils/HooksManager/index.ts +9 -0
- package/appUtils/contextKeysManager/__tests__/getKey/failure.test.ts +2 -23
- package/appUtils/contextKeysManager/__tests__/getKey/success/fullSearch.test.ts +1 -25
- package/appUtils/contextKeysManager/__tests__/getKey/success/searchInSecure.test.ts +1 -7
- package/appUtils/contextKeysManager/__tests__/removeKey/failure.test.ts +1 -26
- package/appUtils/contextKeysManager/__tests__/removeKey/success.test.ts +0 -6
- package/appUtils/contextKeysManager/__tests__/setKey/failure/failedToSaveInStorage.test.ts +0 -40
- package/appUtils/contextKeysManager/__tests__/setKey/failure/invalidKey.test.ts +4 -4
- package/appUtils/contextKeysManager/__tests__/setKey/{success/saveItemAndReference.test.ts → success.test.ts} +2 -42
- package/appUtils/contextKeysManager/index.ts +29 -130
- package/appUtils/playerManager/OverlayObserver/OverlaysObserver.ts +142 -59
- package/appUtils/playerManager/OverlayObserver/__tests__/getUpcomingQueue.test.ts +67 -0
- package/appUtils/playerManager/OverlayObserver/__tests__/liveContent.test.ts +205 -0
- package/appUtils/playerManager/OverlayObserver/__tests__/utils.test.ts +56 -0
- package/appUtils/playerManager/OverlayObserver/getUpcomingQueue.android.tv.ts +4 -0
- package/appUtils/playerManager/OverlayObserver/getUpcomingQueue.ios.tv.ts +4 -0
- package/appUtils/playerManager/OverlayObserver/getUpcomingQueue.ts +24 -0
- package/appUtils/playerManager/OverlayObserver/getUpcomingQueue.web.ts +4 -0
- package/appUtils/playerManager/OverlayObserver/utils.ts +51 -20
- package/appUtils/playerManager/__tests__/playerContent.test.ts +403 -0
- package/appUtils/playerManager/__tests__/playerDiagnostics.test.ts +62 -0
- package/appUtils/playerManager/__tests__/playerFactory.test.ts +1 -1
- package/appUtils/playerManager/__tests__/playerNative.test.ts +114 -0
- package/appUtils/playerManager/__tests__/playerNativeCommand.test.ts +62 -0
- package/appUtils/playerManager/__tests__/playerToolbox.test.ts +281 -0
- package/appUtils/playerManager/__tests__/usePlayerContent.test.tsx +64 -0
- package/appUtils/playerManager/__tests__/usePlayerControllerSetup.test.tsx +62 -0
- package/appUtils/playerManager/{conts.ts → const.ts} +33 -0
- package/appUtils/playerManager/index.ts +8 -1
- package/appUtils/playerManager/player.ts +140 -3
- package/appUtils/playerManager/playerFactory.ts +1 -1
- package/appUtils/playerManager/playerNative.ts +28 -4
- package/appUtils/playerManager/playerNativeCommand.ts +3 -6
- package/appUtils/playerManager/playerToolbox.ts +196 -0
- package/appUtils/playerManager/usePlayerContent.tsx +43 -0
- package/appUtils/playerManager/usePlayerControllerSetup.tsx +7 -1
- package/appUtils/playerManager/userLanguagePreference.ts +1 -1
- package/arrayUtils/__tests__/{anyThruthy.test.ts → anyTruthy.test.ts} +8 -0
- package/arrayUtils/__tests__/arrayUtils.test.ts +165 -108
- package/arrayUtils/__tests__/isEmptyArray.test.ts +11 -0
- package/arrayUtils/__tests__/isFilledArray.test.ts +12 -0
- package/arrayUtils/__tests__/isFirst.test.ts +17 -0
- package/arrayUtils/__tests__/isIndexInRange.test.ts +14 -0
- package/arrayUtils/__tests__/isLast.test.ts +31 -0
- package/arrayUtils/__tests__/makeListOf.test.ts +31 -0
- package/arrayUtils/__tests__/makeListOfIndexes.test.ts +20 -0
- package/arrayUtils/__tests__/reorderByIds.test.ts +63 -0
- package/arrayUtils/__tests__/sample.test.ts +61 -0
- package/arrayUtils/index.ts +119 -20
- package/bottomSheet/__tests__/scrollContext.test.tsx +35 -0
- package/bottomSheet/index.ts +17 -0
- package/cellUtils/__tests__/getButtonsEnabled.test.ts +28 -0
- package/cellUtils/__tests__/getCellNavigationEnabled.test.ts +36 -0
- package/cellUtils/__tests__/getIsCellNavigationEnabled.test.ts +35 -0
- package/cellUtils/__tests__/isCellNavigationEnabled.test.ts +21 -0
- package/cellUtils/index.ts +70 -3
- package/configurationUtils/__tests__/manifestKeyParser.test.ts +21 -0
- package/configurationUtils/__tests__/modalBlocksParser.test.ts +403 -0
- package/configurationUtils/manifestKeyParser.ts +50 -10
- package/configurationUtils/modalBlocksParser.ts +252 -0
- package/entryActions/__tests__/buildEntryActions.test.ts +235 -0
- package/entryActions/aliasPresentation.ts +108 -0
- package/entryActions/buildEntryActions.ts +167 -0
- package/entryActions/index.ts +15 -0
- package/entryActions/types.ts +39 -0
- package/focusManager/FocusManager.ts +26 -0
- package/focusManager/__tests__/FocusManager.test.ts +9 -0
- package/localizationUtils/index.ts +12 -6
- package/logger/__tests__/xrayToolbox.test.ts +69 -0
- package/logger/xrayToolbox.ts +67 -0
- package/manifestUtils/__tests__/player.audioControls.test.js +158 -0
- package/manifestUtils/_internals/index.js +8 -3
- package/manifestUtils/defaultManifestConfigurations/generalContent.js +6 -0
- package/manifestUtils/defaultManifestConfigurations/player.js +357 -20
- package/manifestUtils/index.js +3 -0
- package/manifestUtils/keys.js +15 -2
- package/manifestUtils/mobileAction/button/index.js +16 -0
- package/manifestUtils/mobileAction/container/__tests__/mobileActionButtonsContainer.test.js +21 -0
- package/manifestUtils/mobileAction/container/index.js +3 -1
- package/manifestUtils/mobileAction/groups/__tests__/buildMobileActionButtonGroups.test.js +1 -1
- package/manifestUtils/mobileAction/groups/defaults.js +5 -2
- package/manifestUtils/modalBlocks.js +304 -0
- package/modalState/ContentViewModel.ts +113 -0
- package/modalState/EditableCollection.ts +17 -0
- package/modalState/EditableCollectionRegistry.ts +51 -0
- package/modalState/ModalOrchestrator.ts +213 -0
- package/modalState/RemoteEditableCollection.ts +235 -0
- package/modalState/__tests__/ContentViewModel.editable.test.ts +69 -0
- package/modalState/__tests__/ContentViewModel.test.ts +165 -0
- package/modalState/__tests__/EditableCollectionRegistry.test.ts +112 -0
- package/modalState/__tests__/ModalOrchestrator.phase3.test.ts +86 -0
- package/modalState/__tests__/RemoteEditableCollection.test.ts +415 -0
- package/modalState/__tests__/index.test.ts +30 -1
- package/modalState/__tests__/useBottomSheetContent.test.ts +349 -0
- package/modalState/__tests__/useModalStoreState.test.ts +142 -0
- package/modalState/index.ts +37 -83
- package/modalState/store.ts +109 -0
- package/modalState/types.ts +173 -0
- package/modalState/useBottomSheetContent.ts +109 -0
- package/navigationUtils/xrayNavigator.ts +12 -0
- package/numberUtils/__tests__/isMinusZero.test.ts +20 -0
- package/numberUtils/__tests__/isZero.test.ts +27 -0
- package/numberUtils/__tests__/requireNumber.test.ts +50 -0
- package/numberUtils/__tests__/toNumber.test.ts +27 -0
- package/numberUtils/__tests__/toNumberWithDefault.test.ts +64 -0
- package/numberUtils/__tests__/toNumberWithDefaultZero.test.ts +48 -0
- package/numberUtils/index.ts +27 -8
- package/package.json +3 -2
- package/playerUtils/__tests__/contentDataKeys.test.ts +297 -0
- package/playerUtils/__tests__/resolvePlayerActions.test.ts +138 -0
- package/playerUtils/__tests__/resolvePlayerTitleSubtitle.test.ts +180 -0
- package/playerUtils/contentDataKeys.ts +134 -0
- package/playerUtils/index.ts +37 -16
- package/playerUtils/isAudioItem.ts +26 -0
- package/playerUtils/resolvePlayerActions.ts +71 -0
- package/playerUtils/resolvePlayerTitleSubtitle.ts +76 -0
- package/pluginUtils/__tests__/pluginUtils.test.js +32 -0
- package/pluginUtils/index.ts +29 -0
- package/quickBrickAssets/__tests__/index.test.ts +18 -0
- package/quickBrickAssets/index.ts +35 -0
- package/reactHooks/__tests__/getPluginConfiguration.test.ts +82 -0
- package/reactHooks/actions/index.ts +124 -3
- package/reactHooks/cell-click/__tests__/index.test.js +131 -1
- package/reactHooks/cell-click/index.ts +33 -18
- package/reactHooks/connection/index.tsx +8 -5
- package/reactHooks/feed/__tests__/feedInvalidation.test.tsx +338 -0
- package/reactHooks/feed/__tests__/useBatchLoading.test.tsx +8 -2
- package/reactHooks/feed/__tests__/useInflatedUrl.test.tsx +25 -0
- package/reactHooks/feed/__tests__/useMarkPipesDataStale.test.tsx +243 -0
- package/reactHooks/feed/useFeedLoader.tsx +28 -1
- package/reactHooks/feed/useLoadPipesDataDispatch.ts +12 -11
- package/reactHooks/feed/useMarkPipesDataStale.ts +68 -23
- package/reactHooks/index.ts +2 -0
- package/reactHooks/layout/index.ts +1 -1
- package/reactHooks/navigation/__mocks__/index.ts +4 -0
- package/reactHooks/navigation/__tests__/index.test.tsx +176 -1
- package/reactHooks/navigation/__tests__/useIsScreenActive.test.ts +42 -0
- package/reactHooks/navigation/__tests__/usePresentScreen.test.ts +154 -0
- package/reactHooks/navigation/index.ts +3 -1
- package/reactHooks/navigation/useIsScreenActive.ts +29 -8
- package/reactHooks/navigation/usePresentScreen.ts +157 -0
- package/reactHooks/navigation/useRoute.ts +22 -5
- package/reactHooks/state/useComponentScreenState.ts +1 -1
- package/reactHooks/usePluginConfiguration.ts +88 -47
- package/reactHooks/utils/__tests__/index.test.js +22 -2
- package/reactHooks/utils/index.ts +11 -1
- package/riverComponetsMeasurementProvider/index.tsx +3 -1
- package/stringUtils/__tests__/stringUtils.test.js +42 -0
- package/stringUtils/index.ts +2 -2
- package/uiActionsRegistrator/__tests__/resolveActionIdentifiers.test.ts +93 -0
- package/uiActionsRegistrator/__tests__/subscribe.test.ts +133 -0
- package/uiActionsRegistrator/__tests__/usableActionItems.test.ts +52 -0
- package/uiActionsRegistrator/index.ts +25 -0
- package/uiActionsRegistrator/registry.ts +351 -0
- package/uiActionsRegistrator/resolveActionIdentifiers.ts +100 -0
- package/uiActionsRegistrator/usableActionItems.ts +66 -0
- package/zappFrameworkUtils/__tests__/localStorageHelper.test.ts +146 -0
- package/zappFrameworkUtils/localStorageHelper.ts +19 -15
- package/appUtils/contextKeysManager/__tests__/getKey/success/byReference.test.ts +0 -56
- package/appUtils/contextKeysManager/__tests__/getKeyByReference/failure.test.ts +0 -265
- package/appUtils/contextKeysManager/__tests__/getKeyByReference/success.test.ts +0 -303
- package/appUtils/contextKeysManager/__tests__/removeReferenceForKey/failure.test.ts +0 -82
- package/appUtils/contextKeysManager/__tests__/removeReferenceForKey/success.test.ts +0 -41
- package/appUtils/contextKeysManager/__tests__/setKey/success/saveItemButNotReference.test.ts +0 -208
- package/appUtils/contextKeysManager/__tests__/setReferenceForKey/failure.test.ts +0 -93
- package/appUtils/contextKeysManager/__tests__/setReferenceForKey/success.test.ts +0 -45
- package/appUtils/playerManager/usePlayerTitleSummaryOverlay.tsx +0 -56
- package/playerUtils/__tests__/getPlayerActionButtons.test.ts +0 -54
- package/playerUtils/getPlayerActionButtons.ts +0 -17
- /package/reactHooks/actions/__tests__/{index.test.js → index.test.tsx} +0 -0
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { ContextKeysManager, REFERENCE_NAMESPACE } from "../..";
|
|
2
|
-
import { buildNamespaceKey } from "../../utils";
|
|
3
|
-
import { StorageLevel } from "../../consts";
|
|
4
|
-
|
|
5
|
-
describe("Context Keys Manager - setReferenceForKey", () => {
|
|
6
|
-
it("returns false if save failed", async () => {
|
|
7
|
-
// setup
|
|
8
|
-
const key = "key";
|
|
9
|
-
const namespace = "namespace";
|
|
10
|
-
const storageLevel = StorageLevel.default;
|
|
11
|
-
const error = Error("oops");
|
|
12
|
-
|
|
13
|
-
const mockedLogger = {
|
|
14
|
-
warn: jest.fn(),
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
const mockedReferenceStorage = {
|
|
18
|
-
getItem: jest.fn(),
|
|
19
|
-
setItem: jest.fn().mockRejectedValueOnce(error),
|
|
20
|
-
removeItem: jest.fn(),
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
const contextManager = new ContextKeysManager({
|
|
24
|
-
logger: mockedLogger,
|
|
25
|
-
referenceStorage: mockedReferenceStorage,
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
// run
|
|
29
|
-
const result = await contextManager.setReferenceForKey(
|
|
30
|
-
key,
|
|
31
|
-
namespace,
|
|
32
|
-
storageLevel
|
|
33
|
-
);
|
|
34
|
-
|
|
35
|
-
// verify
|
|
36
|
-
expect(result).toBe(false);
|
|
37
|
-
|
|
38
|
-
expect(mockedLogger.warn).toHaveBeenCalledWith({
|
|
39
|
-
message: error.message,
|
|
40
|
-
data: { key, namespace, storageLevel },
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
expect(mockedReferenceStorage.setItem).toHaveBeenCalledWith(
|
|
44
|
-
buildNamespaceKey(key, namespace),
|
|
45
|
-
storageLevel,
|
|
46
|
-
REFERENCE_NAMESPACE
|
|
47
|
-
);
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
it("returns false if save success but result is not true", async () => {
|
|
51
|
-
// setup
|
|
52
|
-
const key = "key";
|
|
53
|
-
const namespace = "namespace";
|
|
54
|
-
const storageLevel = StorageLevel.default;
|
|
55
|
-
|
|
56
|
-
const mockedLogger = {
|
|
57
|
-
warn: jest.fn(),
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
const mockedReferenceStorage = {
|
|
61
|
-
getItem: jest.fn(),
|
|
62
|
-
setItem: jest.fn().mockResolvedValueOnce(undefined),
|
|
63
|
-
removeItem: jest.fn(),
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
const contextManager = new ContextKeysManager({
|
|
67
|
-
logger: mockedLogger,
|
|
68
|
-
referenceStorage: mockedReferenceStorage,
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
// run
|
|
72
|
-
const result = await contextManager.setReferenceForKey(
|
|
73
|
-
key,
|
|
74
|
-
namespace,
|
|
75
|
-
storageLevel
|
|
76
|
-
);
|
|
77
|
-
|
|
78
|
-
// verify
|
|
79
|
-
expect(result).toBe(false);
|
|
80
|
-
|
|
81
|
-
expect(mockedLogger.warn).toHaveBeenCalledWith({
|
|
82
|
-
message:
|
|
83
|
-
"While saving reference - reference storage return non expected value: true",
|
|
84
|
-
data: { key, namespace, storageLevel },
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
expect(mockedReferenceStorage.setItem).toHaveBeenCalledWith(
|
|
88
|
-
buildNamespaceKey(key, namespace),
|
|
89
|
-
storageLevel,
|
|
90
|
-
REFERENCE_NAMESPACE
|
|
91
|
-
);
|
|
92
|
-
});
|
|
93
|
-
});
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { ContextKeysManager, REFERENCE_NAMESPACE } from "../..";
|
|
2
|
-
import { buildNamespaceKey } from "../../utils";
|
|
3
|
-
import { StorageLevel } from "../../consts";
|
|
4
|
-
|
|
5
|
-
describe("Context Keys Manager - setReferenceForKey", () => {
|
|
6
|
-
it("returns true if save success", async () => {
|
|
7
|
-
// setup
|
|
8
|
-
const key = "key";
|
|
9
|
-
const namespace = "namespace";
|
|
10
|
-
const value = StorageLevel.default;
|
|
11
|
-
|
|
12
|
-
const mockedLogger = {
|
|
13
|
-
warn: jest.fn(),
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const mockedReferenceStorage = {
|
|
17
|
-
getItem: jest.fn(),
|
|
18
|
-
setItem: jest.fn().mockResolvedValueOnce(true),
|
|
19
|
-
removeItem: jest.fn(),
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const contextManager = new ContextKeysManager({
|
|
23
|
-
logger: mockedLogger,
|
|
24
|
-
referenceStorage: mockedReferenceStorage,
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
// run
|
|
28
|
-
const result = await contextManager.setReferenceForKey(
|
|
29
|
-
key,
|
|
30
|
-
namespace,
|
|
31
|
-
value
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
// verify
|
|
35
|
-
expect(result).toBe(true);
|
|
36
|
-
|
|
37
|
-
expect(mockedLogger.warn).not.toHaveBeenCalled();
|
|
38
|
-
|
|
39
|
-
expect(mockedReferenceStorage.setItem).toHaveBeenCalledWith(
|
|
40
|
-
buildNamespaceKey(key, namespace),
|
|
41
|
-
value,
|
|
42
|
-
REFERENCE_NAMESPACE
|
|
43
|
-
);
|
|
44
|
-
});
|
|
45
|
-
});
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { useEffect, useState } from "react";
|
|
2
|
-
import { OverlaysObserver } from "./OverlayObserver/OverlaysObserver";
|
|
3
|
-
import { useFeedLoader } from "../../reactHooks";
|
|
4
|
-
import { usePlayer } from "./usePlayer";
|
|
5
|
-
|
|
6
|
-
const getLiveUrl = (url: string) => {
|
|
7
|
-
// Use the replace method with a regular expression to replace all instances of subClass with livePage
|
|
8
|
-
return url.replace(new RegExp("subClass", "g"), "livePage");
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export const useTitleSummaryOverlay = (
|
|
12
|
-
entry,
|
|
13
|
-
isLive = false,
|
|
14
|
-
interval: number
|
|
15
|
-
) => {
|
|
16
|
-
// TODO: Have generic place for live url from configuration. Currently its hardcoded for client.
|
|
17
|
-
const feedUrl = getLiveUrl(entry?.extensions?.live?.channel_src ?? "");
|
|
18
|
-
const player = usePlayer();
|
|
19
|
-
const [title, setTitle] = useState<string | number>(entry?.title || "");
|
|
20
|
-
const [summary, setSummary] = useState<string | number>(entry?.summary || "");
|
|
21
|
-
|
|
22
|
-
// Hook to load feed data
|
|
23
|
-
const { data: feedData, reloadData } = useFeedLoader({ feedUrl });
|
|
24
|
-
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
if (player && feedUrl && isLive) {
|
|
27
|
-
const observer = new OverlaysObserver({ player });
|
|
28
|
-
|
|
29
|
-
observer.setFeedDataHandlers(feedUrl, reloadData, interval, (entry) => {
|
|
30
|
-
setTitle(entry?.title || "");
|
|
31
|
-
setSummary(entry?.summary || "");
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
const subscription = observer
|
|
35
|
-
.getTitleSummaryObservable()
|
|
36
|
-
.subscribe(({ title, summary }) => {
|
|
37
|
-
setTitle(title);
|
|
38
|
-
setSummary(summary);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
return () => {
|
|
42
|
-
subscription.unsubscribe();
|
|
43
|
-
observer.clearFeedDataInterval();
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
}, [player, feedUrl, reloadData, isLive]);
|
|
47
|
-
|
|
48
|
-
useEffect(() => {
|
|
49
|
-
if (isLive && feedData?.entry?.[0]) {
|
|
50
|
-
setTitle(feedData.entry[0].title || "");
|
|
51
|
-
setSummary(feedData.entry[0].summary || "");
|
|
52
|
-
}
|
|
53
|
-
}, [feedData]);
|
|
54
|
-
|
|
55
|
-
return { title, summary };
|
|
56
|
-
};
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { getPlayerActionButtons } from "../getPlayerActionButtons";
|
|
2
|
-
import { selectActionButtons } from "../../conf/player/selectors";
|
|
3
|
-
|
|
4
|
-
jest.mock("../../conf/player/selectors", () => ({
|
|
5
|
-
selectActionButtons: jest.fn(),
|
|
6
|
-
}));
|
|
7
|
-
|
|
8
|
-
describe("getPlayerActionButtons", () => {
|
|
9
|
-
afterEach(() => {
|
|
10
|
-
jest.clearAllMocks();
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
it("returns an empty array if selectActionButtons returns undefined", () => {
|
|
14
|
-
(selectActionButtons as jest.Mock).mockReturnValue(undefined);
|
|
15
|
-
const result = getPlayerActionButtons({});
|
|
16
|
-
expect(result).toEqual([]);
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
it("returns an empty array if selectActionButtons returns null", () => {
|
|
20
|
-
(selectActionButtons as jest.Mock).mockReturnValue(null);
|
|
21
|
-
const result = getPlayerActionButtons({});
|
|
22
|
-
expect(result).toEqual([]);
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
it("returns an empty array if selectActionButtons returns empty string", () => {
|
|
26
|
-
(selectActionButtons as jest.Mock).mockReturnValue("");
|
|
27
|
-
const result = getPlayerActionButtons({});
|
|
28
|
-
expect(result).toEqual([]);
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
it("returns the first two trimmed action buttons", () => {
|
|
32
|
-
(selectActionButtons as jest.Mock).mockReturnValue(" play , pause , stop ");
|
|
33
|
-
const result = getPlayerActionButtons({});
|
|
34
|
-
expect(result).toEqual(["play", "pause"]);
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
it("returns only one button if only one is present", () => {
|
|
38
|
-
(selectActionButtons as jest.Mock).mockReturnValue(" play ");
|
|
39
|
-
const result = getPlayerActionButtons({});
|
|
40
|
-
expect(result).toEqual(["play"]);
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
it("trims whitespace from button names", () => {
|
|
44
|
-
(selectActionButtons as jest.Mock).mockReturnValue(" play , pause ");
|
|
45
|
-
const result = getPlayerActionButtons({});
|
|
46
|
-
expect(result).toEqual(["play", "pause"]);
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it("returns an empty array if selectActionButtons returns only commas", () => {
|
|
50
|
-
(selectActionButtons as jest.Mock).mockReturnValue(" , , ");
|
|
51
|
-
const result = getPlayerActionButtons({});
|
|
52
|
-
expect(result).toEqual(["", ""]);
|
|
53
|
-
});
|
|
54
|
-
});
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { map, take, trim } from "../utils";
|
|
2
|
-
import { selectActionButtons } from "../conf/player/selectors";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Returns the first two action buttons from the configuration.
|
|
6
|
-
* @param {Object} configuration - The player configuration object.
|
|
7
|
-
* @returns {Array} An array containing the first two action buttons.
|
|
8
|
-
*/
|
|
9
|
-
export const getPlayerActionButtons = (configuration: any) => {
|
|
10
|
-
const buttonsString = selectActionButtons(configuration);
|
|
11
|
-
|
|
12
|
-
if (!buttonsString) {
|
|
13
|
-
return [];
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return take(2, map(buttonsString.split(","), trim));
|
|
17
|
-
};
|
|
File without changes
|