-
Notifications
You must be signed in to change notification settings - Fork 295
/
PlatformAppProviderWrapper.tsx
58 lines (53 loc) · 1.89 KB
/
PlatformAppProviderWrapper.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import React, { ReactNode } from "react";
import {
allowDebugAppsSelector,
allowExperimentalAppsSelector,
catalogProviderSelector,
languageSelector,
} from "~/renderer/reducers/settings";
import { useSelector } from "react-redux";
import { RemoteLiveAppProvider } from "@ledgerhq/live-common/platform/providers/RemoteLiveAppProvider/index";
import { LocalLiveAppProvider } from "@ledgerhq/live-common/wallet-api/LocalLiveAppProvider/index";
import { RampCatalogProvider } from "@ledgerhq/live-common/platform/providers/RampCatalogProvider/index";
import { useDB } from "../storage";
import {
DISCOVER_STORE_KEY,
INITIAL_PLATFORM_STATE,
} from "@ledgerhq/live-common/wallet-api/constants";
type PlatformAppProviderWrapperProps = {
children: ReactNode;
};
const AUTO_UPDATE_DEFAULT_DELAY = 1800 * 1000; // 1800 seconds
export function PlatformAppProviderWrapper({ children }: PlatformAppProviderWrapperProps) {
const allowDebugApps = useSelector(allowDebugAppsSelector);
const allowExperimentalApps = useSelector(allowExperimentalAppsSelector);
const provider = useSelector(catalogProviderSelector);
const locale = useSelector(languageSelector);
const localLiveAppDB = useLocalLiveAppDB();
return (
<RemoteLiveAppProvider
parameters={{
platform: "desktop",
allowDebugApps,
allowExperimentalApps,
llVersion: __APP_VERSION__,
lang: locale,
}}
updateFrequency={AUTO_UPDATE_DEFAULT_DELAY}
>
<LocalLiveAppProvider db={localLiveAppDB}>
<RampCatalogProvider provider={provider} updateFrequency={AUTO_UPDATE_DEFAULT_DELAY}>
{children}
</RampCatalogProvider>
</LocalLiveAppProvider>
</RemoteLiveAppProvider>
);
}
function useLocalLiveAppDB() {
return useDB(
"app",
DISCOVER_STORE_KEY,
INITIAL_PLATFORM_STATE,
state => state.localLiveApp || INITIAL_PLATFORM_STATE.localLiveApp,
);
}