@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
39 lines (36 loc) • 1.37 kB
text/typescript
import { useCallback } from "react";
import { DeviceModelId } from "@ledgerhq/devices";
import { useStartPostOnboardingCallback } from "./useStartPostOnboardingCallback";
import { usePostOnboardingEntryPointVisibleOnWallet } from "./usePostOnboardingEntryPointVisibleOnWallet";
import { usePostOnboardingHubState } from "./usePostOnboardingHubState";
export function usePostOnboardingDeeplinkHandler(navigateToHome, navigateToPostOnboardingHub) {
const handleInitPostOnboarding = useStartPostOnboardingCallback();
const isPostOnboardingVisible = usePostOnboardingEntryPointVisibleOnWallet();
const { deviceModelId: postOnboardingDeviceModelId } = usePostOnboardingHubState();
return useCallback(
(device?: string) => {
if (!device) {
navigateToHome();
return;
}
if (isPostOnboardingVisible && device === postOnboardingDeviceModelId) {
navigateToPostOnboardingHub();
} else if (device in DeviceModelId) {
handleInitPostOnboarding({
deviceModelId: device as DeviceModelId,
mock: false,
fallbackIfNoAction: () => navigateToHome(),
});
} else {
navigateToHome();
}
},
[
handleInitPostOnboarding,
isPostOnboardingVisible,
navigateToHome,
navigateToPostOnboardingHub,
postOnboardingDeviceModelId,
],
);
}