149 lines
5.0 KiB
TypeScript
149 lines
5.0 KiB
TypeScript
// Metro module 4155 (f4156).
|
|
import { AppState, NativeEventEmitter, NativeModules } from "react-native";
|
|
import { create } from "../../../_bundle/Module644";
|
|
import { isAndroid, isIOS } from "../../../utils/PlatformUtils";
|
|
import Module4156, { BrowserType } from "../../../_bundle/Module4156";
|
|
import { WebBrowserType } from "../../../ConstantsIOS";
|
|
import Linking from "../../../lib/native/Linking";
|
|
import { assertNever } from "../../../utils/GlobalUtils";
|
|
let c2392_8;
|
|
const BrowserManager = NativeModules.BrowserManager;
|
|
let c2392_7 = create(() => ({
|
|
isChromeInstalled: isAndroid() ? Module4156.getConstants().isChromeInstalled : BrowserManager.isChromeInstalled,
|
|
selectedBrowser: isAndroid() ? Module4156.getConstants().selectedBrowser : BrowserManager.selectedBrowser,
|
|
supportsInAppBrowser: isAndroid() ? Module4156.getConstants().supportsInAppBrowser : BrowserManager.supportsInAppBrowser,
|
|
isInAppBrowserOpen: false
|
|
}));
|
|
c2392_8 = null;
|
|
export function useBrowserManagerIsChromeInstalled() {
|
|
return c2392_7((a0) => a0.isChromeInstalled);
|
|
}
|
|
export function getBrowserManagerIsChromeInstalled() {
|
|
return c2392_7.getState().isChromeInstalled;
|
|
}
|
|
export function useBrowserManagerSupportsInAppBrowser() {
|
|
return c2392_7((a0) => a0.supportsInAppBrowser);
|
|
}
|
|
export function useBrowserManagerSelectedBrowser() {
|
|
return c2392_7((a0) => a0.selectedBrowser);
|
|
}
|
|
export function getBrowserManagerSelectedBrowser() {
|
|
return c2392_7.getState().selectedBrowser;
|
|
}
|
|
export function useIsInAppBrowserOpen() {
|
|
return c2392_7((a0) => a0.isInAppBrowserOpen);
|
|
}
|
|
export function getIsInAppBrowserOpen() {
|
|
return c2392_7.getState().isInAppBrowserOpen;
|
|
}
|
|
export function subscribeToIsInAppBrowserOpen(c13869_0) {
|
|
return c2392_7.subscribe((a0, a1) => {
|
|
if (a0.isInAppBrowserOpen !== a1.isInAppBrowserOpen) {
|
|
c13869_0(a0.isInAppBrowserOpen, a1.isInAppBrowserOpen);
|
|
}
|
|
});
|
|
}
|
|
export function browserManagerOpenUrl(a0, r8 = c2392_7.getState().selectedBrowser) {
|
|
L19: {
|
|
if (r8 !== WebBrowserType.SAFARI) {
|
|
if (r8 === WebBrowserType.CHROME && !c2392_7.getState().isChromeInstalled) {
|
|
break L19;
|
|
}
|
|
if (r8 === WebBrowserType.IN_APP && isAndroid() && !c2392_7.getState().supportsInAppBrowser) {
|
|
break L19;
|
|
}
|
|
if (WebBrowserType.IN_APP === r8) {
|
|
return (isAndroid() ? Module4156.openInAppURL(a0) : BrowserManager.openInAppURL(a0)).then((result) => {
|
|
if (result !== false) {
|
|
c2392_7.setState({
|
|
isInAppBrowserOpen: true
|
|
});
|
|
const r11 = c2392_8;
|
|
if (r11 != null) {
|
|
r11.remove();
|
|
}
|
|
c2392_8 = null;
|
|
if (isIOS()) {
|
|
c2392_8 = new NativeEventEmitter(BrowserManager).addListener("safariViewControllerDidFinish", () => {
|
|
c2392_7.setState({
|
|
isInAppBrowserOpen: false
|
|
});
|
|
const r6 = c2392_8;
|
|
if (r6 != null) {
|
|
r6.remove();
|
|
}
|
|
c2392_8 = null;
|
|
});
|
|
} else if (isAndroid()) {
|
|
c2392_8 = AppState.addEventListener("change", (a0) => {
|
|
if (a0 === "active" && c2392_7.getState().isInAppBrowserOpen) {
|
|
c2392_7.setState({
|
|
isInAppBrowserOpen: false
|
|
});
|
|
const r12 = c2392_8;
|
|
if (r12 != null) {
|
|
r12.remove();
|
|
}
|
|
c2392_8 = null;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
if (WebBrowserType.CHROME === r8) {
|
|
return isAndroid() ? Module4156.openInChromeURL(a0) : BrowserManager.openInChromeURL(a0, true);
|
|
}
|
|
return assertNever(r8);
|
|
}
|
|
}
|
|
Linking.performURLNavigation(a0);
|
|
return Promise.resolve();
|
|
}
|
|
export function browserManagerSelectBrowser(a0) {
|
|
if (isAndroid()) {
|
|
if (WebBrowserType.SAFARI === a0) {
|
|
Module4156.selectBrowser(BrowserType.SAFARI);
|
|
} else if (WebBrowserType.IN_APP === a0) {
|
|
Module4156.selectBrowser(BrowserType.IN_APP);
|
|
} else if (WebBrowserType.CHROME === a0) {
|
|
Module4156.selectBrowser(BrowserType.CHROME);
|
|
}
|
|
} else {
|
|
NativeModules.BrowserManager.selectBrowser(a0);
|
|
}
|
|
c2392_7.setState({
|
|
selectedBrowser: a0
|
|
});
|
|
}
|
|
export function browserManagerCloseBrowser() {
|
|
c2392_7.setState({
|
|
isInAppBrowserOpen: false
|
|
});
|
|
if (!isAndroid()) {
|
|
NativeModules.BrowserManager.closeBrowser();
|
|
}
|
|
}
|
|
export function openPlayStoreInlineInstall(a0, a1, a2) {
|
|
let r23;
|
|
let c13870_1 = Date.now();
|
|
if (isAndroid()) {
|
|
r23 = Module4156.openPlayStoreInline(a0, a1, function callback() {
|
|
const r7 = Date.now() - c13870_1;
|
|
if (a2 != null) {
|
|
a2(r7);
|
|
}
|
|
});
|
|
} else if (a1 == null) {
|
|
r23 = Promise.resolve(false);
|
|
} else {
|
|
if (a2 != null) {
|
|
BrowserManager.setOpenAppStoreDismissCallback(() => {
|
|
a2(Date.now() - c13870_1);
|
|
});
|
|
}
|
|
r23 = BrowserManager.openAppStoreInline(a0, a1);
|
|
}
|
|
return r23;
|
|
}
|