UNPKG

onairos

Version:

The Onairos Library is a collection of functions that enable Applications to connect and communicate data with Onairos Identities via User Authorization. Integration for developers is designed to be seamless, simple and effective for all applications

111 lines (104 loc) 5.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = GoogleButton; var _react = _interopRequireWildcard(require("react")); var _sdk = require("@telegram-apps/sdk"); var _jsxRuntime = require("react/jsx-runtime"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } function GoogleButton(_ref) { let { onLoginSuccess = () => {} } = _ref; const [error, setError] = (0, _react.useState)(null); const handleTelegramAuth = (0, _react.useCallback)(async () => { setError(null); // Check if we're in a Telegram Web App environment if (typeof window !== 'undefined' && !window.Telegram?.WebApp) { setError('Not running in Telegram Web App'); return; } // Check SDK initialization if (!_sdk.miniApp.isInitialized) { setError('Telegram Mini App not initialized'); return; } try { // Safely get Telegram Mini App data const telegramAppUrl = _sdk.miniApp.initData || ''; const botUsername = 'OnairosMiniApp'; // Log debug information console.log('Telegram App URL:', telegramAppUrl); console.log('Bot Username:', botUsername); // Construct URL with error handling let connectUrl; try { connectUrl = new URL('https://onairos.uk/othent-connect'); connectUrl.searchParams.append('tgAppUrl', encodeURIComponent(telegramAppUrl)); connectUrl.searchParams.append('botUsername', botUsername); } catch (urlError) { setError('Error constructing URL: ' + urlError.message); return; } // Register event listener before opening link const handleAppActive = () => { try { const startParam = _sdk.miniApp.initDataUnsafe?.start_param; console.log('Start param received:', startParam); if (startParam) { const authData = JSON.parse(decodeURIComponent(startParam)); if (authData) { onLoginSuccess(authData); } } } catch (error) { setError('Error processing auth data: ' + error.message); } finally { _sdk.miniApp.removeEvent('active', handleAppActive); } }; _sdk.miniApp.onEvent('active', handleAppActive); // Open link with error handling await (0, _sdk.openLink)(connectUrl.toString(), { tryInstantView: false }); } catch (error) { setError('Auth flow failed: ' + error.message); console.error('Full error:', error); } }, [onLoginSuccess]); return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { className: "flex flex-col items-center", children: [error && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: "text-red-500 text-sm mb-2 px-4 py-2 bg-red-50 rounded", children: error }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("button", { onClick: handleTelegramAuth, className: "flex items-center justify-center px-4 py-2 border border-gray-300 rounded-full shadow-sm bg-white hover:bg-gray-50 relative", type: "button", children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("svg", { viewBox: "0 0 24 24", className: "w-5 h-5 mr-2", fill: "#4285F4", children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z", fill: "#4285F4" }), /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z", fill: "#34A853" }), /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z", fill: "#FBBC05" }), /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z", fill: "#EA4335" })] }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { className: "text-gray-700", children: "Continue with Google" })] })] }); }