UNPKG

@swan-io/react-native-browser

Version:

An easy-to-use in-app browser module for React Native.

56 lines (55 loc) 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.openBrowser = void 0; var _reactNative = require("react-native"); var _NativeRNSwanBrowser = _interopRequireDefault(require("./NativeRNSwanBrowser")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const emitter = new _reactNative.NativeEventEmitter(_NativeRNSwanBrowser.default); const convertColorToNumber = color => { const processed = (0, _reactNative.processColor)(color); if (typeof processed === "number") { return processed; } }; const openBrowser = (url, options) => { const { animationType, dismissButtonStyle, onOpen, onClose } = options; const barTintColor = convertColorToNumber(options.barTintColor); const controlTintColor = convertColorToNumber(options.controlTintColor); return _NativeRNSwanBrowser.default.open(url, { ...(animationType != null && { animationType }), ...(dismissButtonStyle != null && { dismissButtonStyle }), ...(barTintColor != null && { barTintColor }), ...(controlTintColor != null && { controlTintColor }) }).then(() => { let deeplink; onOpen?.(); const linkListener = _reactNative.Linking.addListener("url", ({ url }) => { deeplink = url; _NativeRNSwanBrowser.default.close(); }); const closeListener = emitter.addListener("swanBrowserDidClose", () => { onClose?.(deeplink); linkListener.remove(); closeListener.remove(); }); }); }; exports.openBrowser = openBrowser; //# sourceMappingURL=index.js.map