decord/alpha/source/modules/links/native/BrowserManager.tsx

244 lines
9 KiB
TypeScript
Raw Normal View History

// Module ID: 4806
// Function ID: 4807
// Name: BrowserManager
// Dependencies: [5, 17, 1364, 4807, 4808, 560, 1094, 4554, 1370, 2]
// Exports: browserManagerClearWebsiteData, browserManagerCloseBrowser, browserManagerOpenUrl, browserManagerSelectBrowser, getBrowserManagerIsChromeInstalled, getBrowserManagerSelectedBrowser, getIsInAppBrowserOpen, openPlayStoreInlineInstall, subscribeToIsInAppBrowserOpen, useBrowserManagerIsChromeInstalled, useBrowserManagerSelectedBrowser, useBrowserManagerSupportsInAppBrowser, useIsInAppBrowserOpen
2026-07-20 16:05:17 +00:00
// Module 4806 (BrowserManager)
import ConstantsIOS from "ConstantsIOS" /* 1094 */;
import PlatformUtils2 from "PlatformUtils" /* 1364 */;
import LinkingDefault from "Linking" /* 4554 */;
import NativeBrowserManagerModuleDefault from "NativeBrowserManagerModule" /* 4807 */;
import NativeBrowserManagerModuleIOSDefault from "NativeBrowserManagerModuleIOS" /* 4808 */;
import asyncGeneratorStep from "asyncGeneratorStep" /* 5 */;
2026-07-23 10:11:24 +00:00
const require = globalThis.__r;
require = fn;
let closure_8 = async function _browserManagerClearWebsiteData(arg0, value) {
if (c0 === 2) {
c0 = 3;
throw new TypeError("Generator functions may not be called on executing generators");
} else if (tmp3 === 3) {
if (arg0 === 1) {
throw value;
} else if (arg0 === 2) {
const obj4 = { value, done: true };
return obj4;
} else {
return { value: "HermesInternal", done: null };
}
2026-07-20 16:05:17 +00:00
} else {
try {
c0 = 2;
if (0 === c1) {
if (arg0 === 1) {
c0 = 3;
throw value;
} else if (arg0 === 2) {
c0 = 3;
const obj5 = { value, done: true };
return obj5;
} else {
if (obj2.isIOS()) {
c1 = 1;
c0 = 1;
const obj6 = { value: require("NativeBrowserManagerModuleIOS").clearWebsiteData(), done: false };
return obj6;
}
obj2 = PlatformUtils2;
tmp6 = dependencyMap;
}
} else if (arg0 === 1) {
c0 = 3;
throw value;
} else if (arg0 === 2) {
c0 = 3;
const obj = { value, done: true };
return obj;
}
c0 = 3;
return { value: "HermesInternal", done: null };
} catch (tmp8) {
c0 = tmp;
throw tmp8;
}
2026-07-20 16:05:17 +00:00
}
};
const AppState = fn(17).AppState;
const PlatformUtils = fn(1364);
if (PlatformUtils.isAndroid()) {
let importDefaultResult = NativeBrowserManagerModuleDefault;
} else {
importDefaultResult = NativeBrowserManagerModuleIOSDefault;
}
const hasOwnProperty = importDefaultResult;
function getBrowserManagerIsChromeInstalled() {
return closure_6.getState().isChromeInstalled;
}
function getBrowserManagerSelectedBrowser() {
return closure_6.getState().selectedBrowser;
}
const module_560 = fn(560);
let closure_6 = module_560.create(() => {
const obj = {};
const merged = Object.assign(importDefaultResult.getConstants());
obj.isInAppBrowserOpen = false;
return obj;
2026-07-20 16:05:17 +00:00
});
let c7 = null;
const size = fn(2);
let result = size.fileFinishedImporting("modules/links/native/BrowserManager.tsx");
2026-07-20 16:05:17 +00:00
export const useBrowserManagerIsChromeInstalled = function useBrowserManagerIsChromeInstalled() {
return closure_6((isChromeInstalled) => isChromeInstalled.isChromeInstalled);
2026-07-29 08:29:29 +00:00
};
export { getBrowserManagerIsChromeInstalled };
2026-07-20 16:05:17 +00:00
export const useBrowserManagerSupportsInAppBrowser = function useBrowserManagerSupportsInAppBrowser() {
return closure_6((supportsInAppBrowser) => supportsInAppBrowser.supportsInAppBrowser);
2026-07-20 16:05:17 +00:00
};
export const useBrowserManagerSelectedBrowser = function useBrowserManagerSelectedBrowser() {
return closure_6((selectedBrowser) => selectedBrowser.selectedBrowser);
2026-07-29 08:29:29 +00:00
};
export { getBrowserManagerSelectedBrowser };
2026-07-20 16:05:17 +00:00
export const useIsInAppBrowserOpen = function useIsInAppBrowserOpen() {
return closure_6((isInAppBrowserOpen) => isInAppBrowserOpen.isInAppBrowserOpen);
2026-07-20 16:05:17 +00:00
};
export const getIsInAppBrowserOpen = function getIsInAppBrowserOpen() {
return closure_6.getState().isInAppBrowserOpen;
2026-07-20 16:05:17 +00:00
};
export const subscribeToIsInAppBrowserOpen = function subscribeToIsInAppBrowserOpen(arg0) {
2026-08-24 06:08:38 +00:00
closure_0 = arg0;
return closure_6.subscribe((isInAppBrowserOpen, isInAppBrowserOpen2) => {
2026-07-20 16:05:17 +00:00
if (isInAppBrowserOpen.isInAppBrowserOpen !== isInAppBrowserOpen2.isInAppBrowserOpen) {
closure_0(isInAppBrowserOpen.isInAppBrowserOpen, isInAppBrowserOpen2.isInAppBrowserOpen);
2026-07-20 16:05:17 +00:00
}
});
};
export const browserManagerOpenUrl = function browserManagerOpenUrl(href, CHROME) {
2026-07-29 08:29:29 +00:00
let selectedBrowser = CHROME;
2026-07-20 16:05:17 +00:00
if (CHROME === undefined) {
selectedBrowser = state.getState().selectedBrowser;
2026-07-20 16:05:17 +00:00
}
if (selectedBrowser !== ConstantsIOS.WebBrowserType.SAFARI) {
if (selectedBrowser !== tmp2(1094).WebBrowserType.CHROME) {
if (selectedBrowser === tmp2(1094).WebBrowserType.IN_APP) {
let tmp2Result = tmp2(1364);
2026-07-20 16:05:17 +00:00
}
if (tmp2(1094).WebBrowserType.IN_APP === selectedBrowser) {
return importDefaultResult.openInAppURL(href).then((result) => {
if (false !== result) {
2026-07-29 08:29:29 +00:00
state.setState({ isInAppBrowserOpen: true });
if (_null != null) {
2026-07-29 08:29:29 +00:00
obj4.remove();
}
_null = null;
2026-07-29 08:29:29 +00:00
if (obj.isIOS()) {
_null = require("NativeBrowserManagerModuleIOS").onSafariViewControllerDidFinish(() => {
state.setState({ isInAppBrowserOpen: false });
if (_null != null) {
_null.remove();
2026-07-20 16:05:17 +00:00
}
_null = null;
2026-07-29 08:29:29 +00:00
});
const obj3 = require("NativeBrowserManagerModuleIOS");
2026-07-29 08:29:29 +00:00
} else {
if (tmp2Result.isAndroid()) {
_null = AppState.addEventListener("change", (event) => {
let isInAppBrowserOpen = "active" === event;
2026-07-29 08:29:29 +00:00
if (isInAppBrowserOpen) {
isInAppBrowserOpen = state.getState().isInAppBrowserOpen;
2026-07-29 08:29:29 +00:00
}
if (isInAppBrowserOpen) {
state.setState({ isInAppBrowserOpen: false });
if (c7 != null) {
2026-07-29 08:29:29 +00:00
obj.remove();
}
c7 = null;
obj = c7;
2026-07-29 08:29:29 +00:00
}
});
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
tmp2Result = tmp2(tmp3[2]);
}
obj = PlatformUtils2;
obj4 = _null;
tmp2 = require;
2026-07-20 16:05:17 +00:00
}
});
} else if (tmp2(1094).WebBrowserType.CHROME === selectedBrowser) {
if (tmp2Result3.isAndroid()) {
let openInChromeURLResult = tmp6(4807).openInChromeURL(href);
const tmp6Result = tmp6(4807);
2026-07-20 16:05:17 +00:00
} else {
openInChromeURLResult = tmp6(4808).openInChromeURL(href, true);
const tmp6Result2 = tmp6(4808);
2026-07-20 16:05:17 +00:00
}
return openInChromeURLResult;
} else {
return tmp2(1370).assertNever(selectedBrowser);
2026-07-20 16:05:17 +00:00
}
}
}
LinkingDefault.performURLNavigation(href);
2026-07-20 16:05:17 +00:00
return Promise.resolve();
};
export const browserManagerSelectBrowser = function browserManagerSelectBrowser(selectedBrowser) {
if (obj.isAndroid()) {
const obj3 = {};
obj3[tmp(1094).WebBrowserType.SAFARI] = tmp(4807).BrowserType.SAFARI;
obj3[tmp(1094).WebBrowserType.IN_APP] = tmp(4807).BrowserType.IN_APP;
obj3[tmp(1094).WebBrowserType.CHROME] = tmp(4807).BrowserType.CHROME;
if (null != obj3[selectedBrowser]) {
const browser = NativeBrowserManagerModuleDefault.selectBrowser(tmp5);
2026-07-20 16:05:17 +00:00
}
} else {
const browser1 = NativeBrowserManagerModuleIOSDefault.selectBrowser(selectedBrowser);
2026-07-20 16:05:17 +00:00
}
closure_6.setState({ selectedBrowser });
2026-07-20 16:05:17 +00:00
};
export const browserManagerCloseBrowser = function browserManagerCloseBrowser() {
closure_6.setState({ isInAppBrowserOpen: false });
if (obj.isIOS()) {
NativeBrowserManagerModuleIOSDefault.closeBrowser();
}
};
export const browserManagerClearWebsiteData = function browserManagerClearWebsiteData() {
const self = this;
const apply = closure_8.apply;
if (typeof apply === "unknown") {
let applyArgumentsResult = HermesBuiltin.applyArguments(self);
} else {
applyArgumentsResult = apply(self, arguments);
2026-07-20 16:05:17 +00:00
}
return applyArgumentsResult;
2026-07-20 16:05:17 +00:00
};
2026-08-31 15:47:37 +00:00
export const openPlayStoreInlineInstall = function openPlayStoreInlineInstall(url, appId, arg2, impressionToken) {
closure_0 = arg2;
closure_1 = Date.now();
2026-07-20 16:05:17 +00:00
if (obj.isAndroid()) {
let openPlayStoreInlineResult = NativeBrowserManagerModuleDefault.openPlayStoreInline(url, appId, function callback() {
2026-07-29 08:29:29 +00:00
if (closure_0 != null) {
tmp2(tmp);
2026-07-20 16:05:17 +00:00
}
});
2026-08-31 15:47:37 +00:00
} else if (null == appId) {
2026-07-20 16:05:17 +00:00
openPlayStoreInlineResult = Promise.resolve(false);
} else {
if (null != arg2) {
const result = NativeBrowserManagerModuleIOSDefault.setOpenAppStoreDismissCallback(() => {
closure_0(Date.now() - closure_1);
2026-07-20 16:05:17 +00:00
});
}
2026-08-31 15:47:37 +00:00
impressionToken = undefined;
if (impressionToken != null) {
impressionToken = impressionToken.impressionToken;
}
if (impressionToken == null) {
impressionToken = null;
}
openPlayStoreInlineResult = NativeBrowserManagerModuleIOSDefault.openAppStoreInline(url, appId, impressionToken);
2026-07-20 16:05:17 +00:00
}
return openPlayStoreInlineResult;
};