@onairos/react-native 2.1.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,29 +6,117 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.onairosApi = void 0;
7
7
  var _axios = _interopRequireDefault(require("axios"));
8
8
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- const BASE_URL = 'https://api2.onairos.uk';
10
- class OnairosApi {
11
- constructor(baseUrl = BASE_URL) {
12
- this.baseUrl = baseUrl;
13
- }
14
- async get(endpoint) {
9
+ /**
10
+ * Onairos API service for handling API requests
11
+ */
12
+ const onairosApi = exports.onairosApi = {
13
+ baseUrl: 'https://api2.onairos.uk',
14
+ /**
15
+ * Make a GET request to the API
16
+ * @param endpoint The endpoint to request
17
+ * @returns The response data
18
+ */
19
+ get: async endpoint => {
15
20
  try {
16
- const response = await _axios.default.get(`${this.baseUrl}/${endpoint}`);
21
+ const response = await _axios.default.get(`${onairosApi.baseUrl}/${endpoint}`);
17
22
  return response.data;
18
23
  } catch (error) {
19
- console.error('API GET Error:', error);
24
+ console.error(`GET ${endpoint} error:`, error);
20
25
  throw error;
21
26
  }
22
- }
23
- async post(endpoint, data) {
27
+ },
28
+ /**
29
+ * Make a POST request to the API
30
+ * @param endpoint The endpoint to request
31
+ * @param data The data to send
32
+ * @returns The response data
33
+ */
34
+ post: async (endpoint, data) => {
24
35
  try {
25
- const response = await _axios.default.post(`${this.baseUrl}/${endpoint}`, data);
36
+ const response = await _axios.default.post(`${onairosApi.baseUrl}/${endpoint}`, data);
26
37
  return response.data;
27
38
  } catch (error) {
28
- console.error('API POST Error:', error);
39
+ console.error(`POST ${endpoint} error:`, error);
40
+ throw error;
41
+ }
42
+ },
43
+ /**
44
+ * Get the server's public key for encryption
45
+ * @returns The server's public key
46
+ */
47
+ getServerPublicKey: async () => {
48
+ try {
49
+ const response = await onairosApi.get('public/getPublicKey');
50
+ return response.publicKey;
51
+ } catch (error) {
52
+ console.error('Error getting server public key:', error);
53
+ return '';
54
+ }
55
+ },
56
+ /**
57
+ * Validate credentials with the server
58
+ * @param username The username to validate
59
+ * @returns Whether the credentials are valid
60
+ */
61
+ validateCredentials: async username => {
62
+ try {
63
+ const response = await onairosApi.post('validate', {
64
+ username
65
+ });
66
+ return response.valid === true;
67
+ } catch (error) {
68
+ console.error('Error validating credentials:', error);
69
+ return false;
70
+ }
71
+ },
72
+ /**
73
+ * Get account information for a user
74
+ * @param username The username to get account info for
75
+ * @returns The account information
76
+ */
77
+ getAccountInfo: async username => {
78
+ try {
79
+ const response = await onairosApi.post('getAccountInfo', {
80
+ Info: {
81
+ username
82
+ }
83
+ });
84
+ return response.AccountInfo;
85
+ } catch (error) {
86
+ console.error('Error getting account info:', error);
87
+ return null;
88
+ }
89
+ },
90
+ /**
91
+ * Get API URL and token for a user
92
+ * @param params The parameters for the request
93
+ * @returns The API URL and token
94
+ */
95
+ getApiUrl: async params => {
96
+ try {
97
+ const response = await onairosApi.post('getAPIUrlMobile', {
98
+ Info: {
99
+ storage: 'local',
100
+ appId: params.appId,
101
+ confirmations: params.confirmations,
102
+ developerURL: 'devURL',
103
+ EncryptedUserPin: params.encryptedModelKey,
104
+ account: params.username,
105
+ proofMode: false
106
+ }
107
+ });
108
+ if (response && response.apiUrl && response.token) {
109
+ return {
110
+ apiUrl: response.apiUrl,
111
+ token: response.token
112
+ };
113
+ } else {
114
+ throw new Error('Invalid response from getAPIUrlMobile');
115
+ }
116
+ } catch (error) {
117
+ console.error('Error getting API URL:', error);
29
118
  throw error;
30
119
  }
31
120
  }
32
- }
33
- const onairosApi = exports.onairosApi = new OnairosApi();
121
+ };
34
122
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_axios","_interopRequireDefault","require","e","__esModule","default","BASE_URL","OnairosApi","constructor","baseUrl","get","endpoint","response","axios","data","error","console","post","onairosApi","exports"],"sourceRoot":"..\\..\\..\\src","sources":["api/index.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0B,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1B,MAAMG,QAAQ,GAAG,yBAAyB;AAE1C,MAAMC,UAAU,CAAC;EAGfC,WAAWA,CAACC,OAAe,GAAGH,QAAQ,EAAE;IACtC,IAAI,CAACG,OAAO,GAAGA,OAAO;EACxB;EAEA,MAAMC,GAAGA,CAACC,QAAgB,EAAE;IAC1B,IAAI;MACF,MAAMC,QAAQ,GAAG,MAAMC,cAAK,CAACH,GAAG,CAAC,GAAG,IAAI,CAACD,OAAO,IAAIE,QAAQ,EAAE,CAAC;MAC/D,OAAOC,QAAQ,CAACE,IAAI;IACtB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,gBAAgB,EAAEA,KAAK,CAAC;MACtC,MAAMA,KAAK;IACb;EACF;EAEA,MAAME,IAAIA,CAACN,QAAgB,EAAEG,IAAS,EAAE;IACtC,IAAI;MACF,MAAMF,QAAQ,GAAG,MAAMC,cAAK,CAACI,IAAI,CAAC,GAAG,IAAI,CAACR,OAAO,IAAIE,QAAQ,EAAE,EAAEG,IAAI,CAAC;MACtE,OAAOF,QAAQ,CAACE,IAAI;IACtB,CAAC,CAAC,OAAOC,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,iBAAiB,EAAEA,KAAK,CAAC;MACvC,MAAMA,KAAK;IACb;EACF;AACF;AAEO,MAAMG,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,IAAIX,UAAU,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_axios","_interopRequireDefault","require","e","__esModule","default","onairosApi","exports","baseUrl","get","endpoint","response","axios","data","error","console","post","getServerPublicKey","publicKey","validateCredentials","username","valid","getAccountInfo","Info","AccountInfo","getApiUrl","params","storage","appId","confirmations","developerURL","EncryptedUserPin","encryptedModelKey","account","proofMode","apiUrl","token","Error"],"sourceRoot":"..\\..\\..\\src","sources":["api/index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Onairos = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _OnairosButton = require("./OnairosButton");
10
+ var _secureStorage = require("../utils/secureStorage");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ /**
13
+ * Main Onairos component - wraps OnairosButton with additional state management and logic
14
+ */
15
+ const Onairos = ({
16
+ AppName,
17
+ returnLink,
18
+ requestData,
19
+ buttonType = 'normal',
20
+ buttonForm = 'default',
21
+ buttonWidth,
22
+ buttonHeight,
23
+ color,
24
+ hasStroke,
25
+ preferredPlatform,
26
+ onResolved,
27
+ onRejection,
28
+ testMode = false,
29
+ containerStyle
30
+ }) => {
31
+ const [isInitialized, setIsInitialized] = (0, _react.useState)(false);
32
+ const [hasExistingCredentials, setHasExistingCredentials] = (0, _react.useState)(false);
33
+ const initialize = (0, _react.useCallback)(async () => {
34
+ try {
35
+ // Check for existing credentials
36
+ const credentialsExist = await (0, _secureStorage.hasCredentials)();
37
+ setHasExistingCredentials(credentialsExist);
38
+ if (credentialsExist) {
39
+ // Load credentials to verify they are valid
40
+ const credentials = await (0, _secureStorage.getCredentials)();
41
+ if (!credentials || !credentials.username || !credentials.userPin) {
42
+ setHasExistingCredentials(false);
43
+ }
44
+ }
45
+ } catch (error) {
46
+ console.error('Error initializing Onairos:', error);
47
+ } finally {
48
+ setIsInitialized(true);
49
+ }
50
+ }, []);
51
+ (0, _react.useEffect)(() => {
52
+ initialize();
53
+ }, [initialize]);
54
+ const handleResolved = (0, _react.useCallback)((apiUrl, token, userData) => {
55
+ if (onResolved) {
56
+ onResolved(apiUrl, token, userData);
57
+ }
58
+ }, [onResolved]);
59
+ const handleRejection = (0, _react.useCallback)(error => {
60
+ if (onRejection) {
61
+ onRejection(error);
62
+ }
63
+ }, [onRejection]);
64
+ if (!isInitialized) {
65
+ // Could render a loading state here if needed
66
+ return null;
67
+ }
68
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
69
+ style: containerStyle
70
+ }, /*#__PURE__*/_react.default.createElement(_OnairosButton.OnairosButton, {
71
+ AppName: AppName,
72
+ returnLink: returnLink,
73
+ requestData: requestData,
74
+ buttonType: buttonType,
75
+ buttonForm: buttonForm,
76
+ buttonWidth: buttonWidth,
77
+ buttonHeight: buttonHeight,
78
+ color: color,
79
+ hasStroke: hasStroke,
80
+ enabled: true,
81
+ preferredPlatform: preferredPlatform,
82
+ onResolved: handleResolved,
83
+ onRejection: handleRejection,
84
+ preCheck: async () => true,
85
+ testMode: testMode
86
+ }));
87
+ };
88
+ exports.Onairos = Onairos;
89
+ //# sourceMappingURL=Onairos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_OnairosButton","_secureStorage","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Onairos","AppName","returnLink","requestData","buttonType","buttonForm","buttonWidth","buttonHeight","color","hasStroke","preferredPlatform","onResolved","onRejection","testMode","containerStyle","isInitialized","setIsInitialized","useState","hasExistingCredentials","setHasExistingCredentials","initialize","useCallback","credentialsExist","hasCredentials","credentials","getCredentials","username","userPin","error","console","useEffect","handleResolved","apiUrl","token","userData","handleRejection","createElement","View","style","OnairosButton","enabled","preCheck","exports"],"sourceRoot":"..\\..\\..\\src","sources":["components/Onairos.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAEA,IAAAG,cAAA,GAAAH,OAAA;AAAwE,SAAAD,wBAAAK,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAP,uBAAA,YAAAA,CAAAK,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AA4BxE;AACA;AACA;AACO,MAAMkB,OAA+B,GAAGA,CAAC;EAC9CC,OAAO;EACPC,UAAU;EACVC,WAAW;EACXC,UAAU,GAAG,QAAQ;EACrBC,UAAU,GAAG,SAAS;EACtBC,WAAW;EACXC,YAAY;EACZC,KAAK;EACLC,SAAS;EACTC,iBAAiB;EACjBC,UAAU;EACVC,WAAW;EACXC,QAAQ,GAAG,KAAK;EAChBC;AACF,CAAC,KAAK;EACJ,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EACzD,MAAM,CAACC,sBAAsB,EAAEC,yBAAyB,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EAE3E,MAAMG,UAAU,GAAG,IAAAC,kBAAW,EAAC,YAAY;IACzC,IAAI;MACF;MACA,MAAMC,gBAAgB,GAAG,MAAM,IAAAC,6BAAc,EAAC,CAAC;MAC/CJ,yBAAyB,CAACG,gBAAgB,CAAC;MAE3C,IAAIA,gBAAgB,EAAE;QACpB;QACA,MAAME,WAAW,GAAG,MAAM,IAAAC,6BAAc,EAAC,CAAC;QAC1C,IAAI,CAACD,WAAW,IAAI,CAACA,WAAW,CAACE,QAAQ,IAAI,CAACF,WAAW,CAACG,OAAO,EAAE;UACjER,yBAAyB,CAAC,KAAK,CAAC;QAClC;MACF;IACF,CAAC,CAAC,OAAOS,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;IACrD,CAAC,SAAS;MACRZ,gBAAgB,CAAC,IAAI,CAAC;IACxB;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAc,gBAAS,EAAC,MAAM;IACdV,UAAU,CAAC,CAAC;EACd,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;EAEhB,MAAMW,cAAc,GAAG,IAAAV,kBAAW,EAAC,CAACW,MAAc,EAAEC,KAAa,EAAEC,QAAa,KAAK;IACnF,IAAIvB,UAAU,EAAE;MACdA,UAAU,CAACqB,MAAM,EAAEC,KAAK,EAAEC,QAAQ,CAAC;IACrC;EACF,CAAC,EAAE,CAACvB,UAAU,CAAC,CAAC;EAEhB,MAAMwB,eAAe,GAAG,IAAAd,kBAAW,EAAEO,KAAc,IAAK;IACtD,IAAIhB,WAAW,EAAE;MACfA,WAAW,CAACgB,KAAK,CAAC;IACpB;EACF,CAAC,EAAE,CAAChB,WAAW,CAAC,CAAC;EAEjB,IAAI,CAACG,aAAa,EAAE;IAClB;IACA,OAAO,IAAI;EACb;EAEA,oBACExC,MAAA,CAAAgB,OAAA,CAAA6C,aAAA,CAAC1D,YAAA,CAAA2D,IAAI;IAACC,KAAK,EAAExB;EAAe,gBAC1BvC,MAAA,CAAAgB,OAAA,CAAA6C,aAAA,CAACzD,cAAA,CAAA4D,aAAa;IACZtC,OAAO,EAAEA,OAAQ;IACjBC,UAAU,EAAEA,UAAW;IACvBC,WAAW,EAAEA,WAAY;IACzBC,UAAU,EAAEA,UAAW;IACvBC,UAAU,EAAEA,UAAW;IACvBC,WAAW,EAAEA,WAAY;IACzBC,YAAY,EAAEA,YAAa;IAC3BC,KAAK,EAAEA,KAAM;IACbC,SAAS,EAAEA,SAAU;IACrB+B,OAAO,EAAE,IAAK;IACd9B,iBAAiB,EAAEA,iBAAkB;IACrCC,UAAU,EAAEoB,cAAe;IAC3BnB,WAAW,EAAEuB,eAAgB;IAC7BM,QAAQ,EAAE,MAAAA,CAAA,KAAY,IAAK;IAC3B5B,QAAQ,EAAEA;EAAS,CACpB,CACG,CAAC;AAEX,CAAC;AAAC6B,OAAA,CAAA1C,OAAA,GAAAA,OAAA","ignoreList":[]}
@@ -9,7 +9,11 @@ var _reactNative = require("react-native");
9
9
  var _UniversalOnboarding = require("./UniversalOnboarding");
10
10
  var _Overlay = require("./Overlay");
11
11
  var _secureStorage = require("../utils/secureStorage");
12
+ var _api = require("../api");
12
13
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ /**
15
+ * OnairosButton Component - A sign-in button similar to Google/Apple sign-in
16
+ */
13
17
  const OnairosButton = ({
14
18
  returnLink,
15
19
  prefillUrl,
@@ -33,37 +37,68 @@ const OnairosButton = ({
33
37
  const [showOnboarding, setShowOnboarding] = (0, _react.useState)(false);
34
38
  const [showOverlay, setShowOverlay] = (0, _react.useState)(false);
35
39
  const [storedCredentials, setStoredCredentials] = (0, _react.useState)(null);
40
+ const [isLoading, setIsLoading] = (0, _react.useState)(false);
36
41
  const isDarkMode = color === 'black' || !color && !hasStroke;
37
42
  const handlePress = async () => {
38
- if (!enabled) return;
39
- if (preCheck) {
40
- const shouldProceed = await preCheck();
41
- if (!shouldProceed) {
42
- onRejection === null || onRejection === void 0 || onRejection();
43
- return;
43
+ if (!enabled || isLoading) return;
44
+ setIsLoading(true);
45
+ try {
46
+ if (preCheck) {
47
+ const shouldProceed = await preCheck();
48
+ if (!shouldProceed) {
49
+ onRejection === null || onRejection === void 0 || onRejection('Precheck validation failed');
50
+ return;
51
+ }
44
52
  }
45
- }
46
53
 
47
- // Check if credentials exist
48
- const hasStoredCreds = await (0, _secureStorage.hasCredentials)();
49
- if (hasStoredCreds) {
50
- // If credentials exist, fetch them and display overlay
51
- const credentials = await (0, _secureStorage.getCredentials)();
52
- setStoredCredentials(credentials);
53
- setShowOverlay(true);
54
- } else {
55
- // If no credentials, show onboarding
56
- setShowOnboarding(true);
54
+ // Check if credentials exist
55
+ const hasStoredCreds = await (0, _secureStorage.hasCredentials)();
56
+ if (hasStoredCreds) {
57
+ // If credentials exist, fetch them and verify
58
+ const credentials = await (0, _secureStorage.getCredentials)();
59
+ if (!credentials || !credentials.username || !credentials.userPin) {
60
+ // Invalid credentials, clear and start fresh
61
+ await (0, _secureStorage.clearCredentials)();
62
+ setShowOnboarding(true);
63
+ return;
64
+ }
65
+
66
+ // Validate credentials with server
67
+ const isValid = await _api.onairosApi.validateCredentials(credentials.username);
68
+ if (!isValid) {
69
+ // Clear invalid credentials
70
+ await (0, _secureStorage.clearCredentials)();
71
+ setShowOnboarding(true);
72
+ return;
73
+ }
74
+
75
+ // Store and display overlay with valid credentials
76
+ setStoredCredentials(credentials);
77
+ setShowOverlay(true);
78
+ } else {
79
+ // If no credentials, show onboarding
80
+ setShowOnboarding(true);
81
+ }
82
+ } catch (error) {
83
+ console.error('Error during button press flow:', error);
84
+ _reactNative.Alert.alert('Error', 'An error occurred. Please try again later.');
85
+ onRejection === null || onRejection === void 0 || onRejection(error instanceof Error ? error.message : 'Unknown error');
86
+ } finally {
87
+ setIsLoading(false);
57
88
  }
58
89
  };
59
- const handleOnboardingComplete = (apiUrl, token, data) => {
90
+ const handleOnboardingComplete = (0, _react.useCallback)((apiUrl, token, data) => {
60
91
  setShowOnboarding(false);
61
- onResolved === null || onResolved === void 0 || onResolved(apiUrl, token, data);
62
- };
63
- const handleOverlayResolved = (apiUrl, token, data) => {
92
+ if (onResolved) {
93
+ onResolved(apiUrl, token, data);
94
+ }
95
+ }, [onResolved]);
96
+ const handleOverlayResolved = (0, _react.useCallback)((apiUrl, token, data) => {
64
97
  setShowOverlay(false);
65
- onResolved === null || onResolved === void 0 || onResolved(apiUrl, token, data);
66
- };
98
+ if (onResolved) {
99
+ onResolved(apiUrl, token, data);
100
+ }
101
+ }, [onResolved]);
67
102
 
68
103
  // Calculate button styles based on props
69
104
  const buttonStyle = [styles.button, buttonType === 'pill' && styles.pillButton, hasStroke && styles.strokedButton, {
@@ -71,20 +106,26 @@ const OnairosButton = ({
71
106
  height: buttonHeight
72
107
  }, color ? {
73
108
  backgroundColor: color
74
- } : null, isDarkMode ? styles.darkButton : styles.lightButton, swerv && styles.swervButton].filter(Boolean);
109
+ } : null, isDarkMode ? styles.darkButton : styles.lightButton, swerv && styles.swervButton, !enabled && styles.disabledButton].filter(Boolean);
75
110
 
76
111
  // Calculate text styles based on props
77
- const textStyle = [styles.buttonText, isDarkMode ? styles.lightText : styles.darkText].filter(Boolean);
112
+ const textStyle = [styles.buttonText, isDarkMode ? styles.lightText : styles.darkText, !enabled && styles.disabledText].filter(Boolean);
78
113
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, null, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
79
114
  style: buttonStyle,
80
115
  onPress: handlePress,
81
- disabled: !enabled,
116
+ disabled: !enabled || isLoading,
82
117
  accessibilityLabel: `Sign in with Onairos`
83
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
118
+ }, isLoading ? /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
119
+ size: "small",
120
+ color: isDarkMode ? '#fff' : '#000'
121
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
84
122
  style: textStyle
85
- }, "Sign in with Onairos")), showOnboarding && /*#__PURE__*/_react.default.createElement(_UniversalOnboarding.UniversalOnboarding, {
123
+ }, "Sign in with Onairos"))), showOnboarding && /*#__PURE__*/_react.default.createElement(_UniversalOnboarding.UniversalOnboarding, {
86
124
  visible: showOnboarding,
87
- onClose: () => setShowOnboarding(false),
125
+ onClose: () => {
126
+ setShowOnboarding(false);
127
+ onRejection === null || onRejection === void 0 || onRejection('User closed onboarding');
128
+ },
88
129
  AppName: AppName,
89
130
  requestData: requestData,
90
131
  returnLink: returnLink,
@@ -130,6 +171,9 @@ const styles = _reactNative.StyleSheet.create({
130
171
  backgroundColor: '#fff',
131
172
  borderColor: '#000'
132
173
  },
174
+ disabledButton: {
175
+ opacity: 0.6
176
+ },
133
177
  buttonText: {
134
178
  fontSize: 16,
135
179
  fontWeight: '600',
@@ -140,6 +184,9 @@ const styles = _reactNative.StyleSheet.create({
140
184
  },
141
185
  darkText: {
142
186
  color: '#000'
187
+ },
188
+ disabledText: {
189
+ opacity: 0.7
143
190
  }
144
191
  });
145
192
  //# sourceMappingURL=OnairosButton.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_UniversalOnboarding","_Overlay","_secureStorage","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OnairosButton","returnLink","prefillUrl","AppName","buttonType","requestData","buttonWidth","buttonHeight","hasStroke","enabled","buttonForm","onRejection","onResolved","preCheck","color","swerv","debug","preferredPlatform","testMode","showOnboarding","setShowOnboarding","useState","showOverlay","setShowOverlay","storedCredentials","setStoredCredentials","isDarkMode","handlePress","shouldProceed","hasStoredCreds","hasCredentials","credentials","getCredentials","handleOnboardingComplete","apiUrl","token","data","handleOverlayResolved","buttonStyle","styles","button","pillButton","strokedButton","width","height","backgroundColor","darkButton","lightButton","swervButton","filter","Boolean","textStyle","buttonText","lightText","darkText","createElement","View","TouchableOpacity","style","onPress","disabled","accessibilityLabel","Text","UniversalOnboarding","visible","onClose","onComplete","test","Overlay","username","modelKey","userPin","exports","StyleSheet","create","flexDirection","alignItems","justifyContent","paddingVertical","paddingHorizontal","borderRadius","borderWidth","borderColor","transform","rotate","fontSize","fontWeight","textAlign"],"sourceRoot":"..\\..\\..\\src","sources":["components/OnairosButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_UniversalOnboarding","_Overlay","_secureStorage","_api","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OnairosButton","returnLink","prefillUrl","AppName","buttonType","requestData","buttonWidth","buttonHeight","hasStroke","enabled","buttonForm","onRejection","onResolved","preCheck","color","swerv","debug","preferredPlatform","testMode","showOnboarding","setShowOnboarding","useState","showOverlay","setShowOverlay","storedCredentials","setStoredCredentials","isLoading","setIsLoading","isDarkMode","handlePress","shouldProceed","hasStoredCreds","hasCredentials","credentials","getCredentials","username","userPin","clearCredentials","isValid","onairosApi","validateCredentials","error","console","Alert","alert","Error","message","handleOnboardingComplete","useCallback","apiUrl","token","data","handleOverlayResolved","buttonStyle","styles","button","pillButton","strokedButton","width","height","backgroundColor","darkButton","lightButton","swervButton","disabledButton","filter","Boolean","textStyle","buttonText","lightText","darkText","disabledText","createElement","View","TouchableOpacity","style","onPress","disabled","accessibilityLabel","ActivityIndicator","size","Fragment","Text","UniversalOnboarding","visible","onClose","onComplete","test","Overlay","modelKey","exports","StyleSheet","create","flexDirection","alignItems","justifyContent","paddingVertical","paddingHorizontal","borderRadius","borderWidth","borderColor","transform","rotate","opacity","fontSize","fontWeight","textAlign"],"sourceRoot":"..\\..\\..\\src","sources":["components/OnairosButton.tsx"],"mappings":"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","ignoreList":[]}