@onairos/react-native 1.0.2 → 1.0.3

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.
@@ -1,155 +1,64 @@
1
- import React, { useCallback, useEffect, useState } from 'react';
2
- import { TouchableOpacity, StyleSheet, Text, Linking } from 'react-native';
3
- import Icon from 'react-native-vector-icons/MaterialIcons';
1
+ import React, { useState } from 'react';
2
+ import { TouchableOpacity, Text, StyleSheet, View } from 'react-native';
4
3
  import { UniversalOnboarding } from './UniversalOnboarding';
5
- import { DataRequestModal } from './DataRequestModal';
6
- import { useCredentials } from '../hooks/useCredentials';
7
- // import { validateCredentials } from '../utils/auth';
8
- // import { COLORS } from '../constants';
9
-
4
+ import { COLORS } from '../constants';
10
5
  export const OnairosButton = ({
6
+ title,
7
+ onPress,
8
+ style,
9
+ buttonType = 'default',
10
+ buttonForm = 'signup',
11
11
  AppName,
12
12
  requestData,
13
13
  returnLink,
14
+ onComplete,
14
15
  embedd = false,
15
- color = '#00BFA5',
16
- icon = 'auto_awesome',
17
- onResolved,
18
- login = false,
19
- buttonType = 'circle',
20
16
  debug = false,
21
17
  test = false
22
18
  }) => {
23
19
  const [showOnboarding, setShowOnboarding] = useState(false);
24
- const [showDataRequest, setShowDataRequest] = useState(false);
25
- const {
26
- hasCredentials,
27
- getCredentials,
28
- validateCredentials
29
- } = useCredentials();
30
- const [loading, setLoading] = useState(false);
31
- const handlePress = useCallback(async () => {
32
- setLoading(true);
33
- try {
34
- const hasExisting = await hasCredentials();
35
- if (!hasExisting) {
36
- setShowOnboarding(true);
37
- return;
38
- }
39
- const credentials = await getCredentials();
40
- if (!credentials) {
41
- setShowOnboarding(true);
42
- return;
43
- }
44
- const validationResult = await validateCredentials(credentials.username);
45
- if (!validationResult.isValid) {
46
- setShowOnboarding(true);
47
- return;
48
- }
49
-
50
- // If we have valid credentials, show data request modal
51
- setShowDataRequest(true);
52
- } catch (error) {
53
- console.error('Error in button press:', error);
20
+ const handlePress = () => {
21
+ if (buttonForm === 'signup') {
54
22
  setShowOnboarding(true);
55
- } finally {
56
- setLoading(false);
23
+ } else {
24
+ onPress();
57
25
  }
58
- }, [hasCredentials, getCredentials, validateCredentials]);
59
- const handleDataRequestAccept = useCallback(async () => {
60
- try {
61
- const credentials = await getCredentials();
62
- if (credentials) {
63
- onResolved('https://api2.onairos.uk', credentials.accessToken, credentials);
64
- }
65
- setShowDataRequest(false);
66
- } catch (error) {
67
- console.error('Error handling data request accept:', error);
68
- }
69
- }, [getCredentials, onResolved]);
70
- useEffect(() => {
71
- // Setup deep linking
72
- const handleDeepLink = ({
73
- url
74
- }) => {
75
- if (url.includes('onairosreact://authenticate')) {
76
- // Handle authentication callback
77
- const params = new URL(url).searchParams;
78
- const nonce = params.get('nonce');
79
- const callback = params.get('callback');
80
- if (nonce && callback) {
81
- // Process authentication
82
- setShowOnboarding(false);
83
- }
84
- }
85
- };
86
- Linking.addEventListener('url', handleDeepLink);
87
- return () => {
88
- // Cleanup deep linking
89
- // Note: Remove event listener based on RN version
90
- // if (Platform.OS === 'android') {
91
- // Linking.removeEventListener('url', handleDeepLink);
92
- // }
93
- };
94
- }, []);
95
- const buttonStyles = [styles.button, buttonType === 'pill' ? styles.pillButton : styles.circleButton, {
96
- backgroundColor: color
97
- }];
98
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TouchableOpacity, {
99
- style: buttonStyles,
100
- onPress: handlePress,
101
- disabled: loading
102
- }, /*#__PURE__*/React.createElement(Icon, {
103
- name: icon,
104
- size: 24,
105
- color: "white"
106
- }), buttonType === 'pill' && /*#__PURE__*/React.createElement(Text, {
26
+ };
27
+ const handleOnboardingComplete = (apiUrl, token, data) => {
28
+ setShowOnboarding(false);
29
+ onComplete(apiUrl, token, data);
30
+ };
31
+ return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(TouchableOpacity, {
32
+ style: [styles.button, buttonType === 'pill' && styles.pillButton, style],
33
+ onPress: handlePress
34
+ }, /*#__PURE__*/React.createElement(Text, {
107
35
  style: styles.buttonText
108
- }, "Connect with Onairos")), /*#__PURE__*/React.createElement(UniversalOnboarding, {
36
+ }, title)), /*#__PURE__*/React.createElement(UniversalOnboarding, {
109
37
  visible: showOnboarding,
110
38
  onClose: () => setShowOnboarding(false),
111
39
  AppName: AppName,
112
40
  requestData: requestData,
113
41
  returnLink: returnLink,
114
- onComplete: onResolved,
42
+ onComplete: handleOnboardingComplete,
115
43
  embedd: embedd,
116
44
  debug: debug,
117
45
  test: test
118
- }), /*#__PURE__*/React.createElement(DataRequestModal, {
119
- visible: showDataRequest,
120
- onClose: () => setShowDataRequest(false),
121
- onAccept: handleDataRequestAccept,
122
- requestData: requestData,
123
- AppName: AppName
124
46
  }));
125
47
  };
126
48
  const styles = StyleSheet.create({
127
49
  button: {
50
+ backgroundColor: COLORS.primary,
51
+ paddingVertical: 12,
52
+ paddingHorizontal: 24,
53
+ borderRadius: 8,
128
54
  alignItems: 'center',
129
- justifyContent: 'center',
130
- elevation: 3,
131
- shadowColor: '#000',
132
- shadowOffset: {
133
- width: 0,
134
- height: 2
135
- },
136
- shadowOpacity: 0.25,
137
- shadowRadius: 3.84
138
- },
139
- circleButton: {
140
- width: 60,
141
- height: 60,
142
- borderRadius: 30
55
+ justifyContent: 'center'
143
56
  },
144
57
  pillButton: {
145
- flexDirection: 'row',
146
- paddingHorizontal: 16,
147
- paddingVertical: 12,
148
- borderRadius: 25
58
+ borderRadius: 20
149
59
  },
150
60
  buttonText: {
151
- color: 'white',
152
- marginLeft: 8,
61
+ color: '#fff',
153
62
  fontSize: 16,
154
63
  fontWeight: '600'
155
64
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useState","TouchableOpacity","StyleSheet","Text","Linking","Icon","UniversalOnboarding","DataRequestModal","useCredentials","OnairosButton","AppName","requestData","returnLink","embedd","color","icon","onResolved","login","buttonType","debug","test","showOnboarding","setShowOnboarding","showDataRequest","setShowDataRequest","hasCredentials","getCredentials","validateCredentials","loading","setLoading","handlePress","hasExisting","credentials","validationResult","username","isValid","error","console","handleDataRequestAccept","accessToken","handleDeepLink","url","includes","params","URL","searchParams","nonce","get","callback","addEventListener","buttonStyles","styles","button","pillButton","circleButton","backgroundColor","createElement","Fragment","style","onPress","disabled","name","size","buttonText","visible","onClose","onComplete","onAccept","create","alignItems","justifyContent","elevation","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","borderRadius","flexDirection","paddingHorizontal","paddingVertical","marginLeft","fontSize","fontWeight"],"sourceRoot":"..\\..\\..\\src","sources":["components/OnairosButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","TouchableOpacity","Text","StyleSheet","View","UniversalOnboarding","COLORS","OnairosButton","title","onPress","style","buttonType","buttonForm","AppName","requestData","returnLink","onComplete","embedd","debug","test","showOnboarding","setShowOnboarding","handlePress","handleOnboardingComplete","apiUrl","token","data","createElement","styles","button","pillButton","buttonText","visible","onClose","create","backgroundColor","primary","paddingVertical","paddingHorizontal","borderRadius","alignItems","justifyContent","color","fontSize","fontWeight"],"sourceRoot":"..\\..\\..\\src","sources":["components/OnairosButton.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,gBAAgB,EAAEC,IAAI,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AACvE,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,MAAM,QAAQ,cAAc;AAGrC,OAAO,MAAMC,aAA2C,GAAGA,CAAC;EAC1DC,KAAK;EACLC,OAAO;EACPC,KAAK;EACLC,UAAU,GAAG,SAAS;EACtBC,UAAU,GAAG,QAAQ;EACrBC,OAAO;EACPC,WAAW;EACXC,UAAU;EACVC,UAAU;EACVC,MAAM,GAAG,KAAK;EACdC,KAAK,GAAG,KAAK;EACbC,IAAI,GAAG;AACT,CAAC,KAAK;EACJ,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGrB,QAAQ,CAAC,KAAK,CAAC;EAE3D,MAAMsB,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAIV,UAAU,KAAK,QAAQ,EAAE;MAC3BS,iBAAiB,CAAC,IAAI,CAAC;IACzB,CAAC,MAAM;MACLZ,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,MAAMc,wBAAwB,GAAGA,CAACC,MAAc,EAAEC,KAAa,EAAEC,IAAS,KAAK;IAC7EL,iBAAiB,CAAC,KAAK,CAAC;IACxBL,UAAU,CAACQ,MAAM,EAAEC,KAAK,EAAEC,IAAI,CAAC;EACjC,CAAC;EAED,oBACE3B,KAAA,CAAA4B,aAAA,CAACvB,IAAI,qBACHL,KAAA,CAAA4B,aAAA,CAAC1B,gBAAgB;IACfS,KAAK,EAAE,CACLkB,MAAM,CAACC,MAAM,EACblB,UAAU,KAAK,MAAM,IAAIiB,MAAM,CAACE,UAAU,EAC1CpB,KAAK,CACL;IACFD,OAAO,EAAEa;EAAY,gBAErBvB,KAAA,CAAA4B,aAAA,CAACzB,IAAI;IAACQ,KAAK,EAAEkB,MAAM,CAACG;EAAW,GAAEvB,KAAY,CAC7B,CAAC,eAEnBT,KAAA,CAAA4B,aAAA,CAACtB,mBAAmB;IAClB2B,OAAO,EAAEZ,cAAe;IACxBa,OAAO,EAAEA,CAAA,KAAMZ,iBAAiB,CAAC,KAAK,CAAE;IACxCR,OAAO,EAAEA,OAAQ;IACjBC,WAAW,EAAEA,WAAY;IACzBC,UAAU,EAAEA,UAAW;IACvBC,UAAU,EAAEO,wBAAyB;IACrCN,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA,KAAM;IACbC,IAAI,EAAEA;EAAK,CACZ,CACG,CAAC;AAEX,CAAC;AAED,MAAMS,MAAM,GAAGzB,UAAU,CAAC+B,MAAM,CAAC;EAC/BL,MAAM,EAAE;IACNM,eAAe,EAAE7B,MAAM,CAAC8B,OAAO;IAC/BC,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE,EAAE;IACrBC,YAAY,EAAE,CAAC;IACfC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDX,UAAU,EAAE;IACVS,YAAY,EAAE;EAChB,CAAC;EACDR,UAAU,EAAE;IACVW,KAAK,EAAE,MAAM;IACbC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
@@ -17,14 +17,15 @@ export const UniversalOnboarding = ({
17
17
  requestData,
18
18
  returnLink,
19
19
  onComplete,
20
- embedd,
21
- debug,
22
- test
20
+ embedd = false,
21
+ debug = false,
22
+ test = false
23
23
  }) => {
24
24
  const bottomSheetRef = useRef(null);
25
25
  const [step, setStep] = useState('connect');
26
26
  const [connections, setConnections] = useState({});
27
27
  const [pin, setPin] = useState('');
28
+ const [selectedTier, setSelectedTier] = useState('Medium');
28
29
  const [training, setTraining] = useState({
29
30
  progress: 0,
30
31
  eta: ''
@@ -77,11 +78,13 @@ export const UniversalOnboarding = ({
77
78
  clearInterval(interval);
78
79
  onComplete('https://api2.onairos.uk', 'dummy-token', {
79
80
  pin: userPin,
80
- connections
81
+ connections,
82
+ selectedTier,
83
+ tierData: requestData[selectedTier]
81
84
  });
82
85
  }
83
86
  }, 1000);
84
- }, [connections, onComplete]);
87
+ }, [connections, onComplete, selectedTier, requestData]);
85
88
  const canProceedToPin = useMemo(() => {
86
89
  const connectedPlatforms = Object.values(connections).filter(Boolean).length;
87
90
  return connectedPlatforms >= 2;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","View","Text","StyleSheet","TouchableOpacity","Dimensions","BottomSheet","Icon","PlatformList","PinInput","TrainingModal","useConnections","COLORS","height","get","UniversalOnboarding","visible","onClose","AppName","requestData","returnLink","onComplete","embedd","debug","test","bottomSheetRef","step","setStep","connections","setConnections","pin","setPin","training","setTraining","progress","eta","connectPlatform","disconnectPlatform","getConnectionStatus","isConnecting","snapPoints","_bottomSheetRef$curre","current","expand","loadInitialStatus","_bottomSheetRef$curre2","close","status","handlePlatformToggle","platform","connect","error","console","handlePinSubmit","userPin","interval","setInterval","Math","round","clearInterval","canProceedToPin","connectedPlatforms","Object","values","filter","Boolean","length","renderHeader","createElement","style","styles","header","name","size","color","primary","headerTitle","onPress","closeButton","renderContent","onToggle","isLoading","canProceed","onProceed","onSubmit","minLength","requireSpecialChar","requireNumber","onCancel","ref","enablePanDownToClose","index","container","create","flex","backgroundColor","flexDirection","alignItems","padding","headerBg","borderTopLeftRadius","borderTopRightRadius","fontSize","fontWeight","marginLeft"],"sourceRoot":"..\\..\\..\\src","sources":["components/UniversalOnboarding.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","View","Text","StyleSheet","TouchableOpacity","Dimensions","BottomSheet","Icon","PlatformList","PinInput","TrainingModal","useConnections","COLORS","height","get","UniversalOnboarding","visible","onClose","AppName","requestData","returnLink","onComplete","embedd","debug","test","bottomSheetRef","step","setStep","connections","setConnections","pin","setPin","selectedTier","setSelectedTier","training","setTraining","progress","eta","connectPlatform","disconnectPlatform","getConnectionStatus","isConnecting","snapPoints","_bottomSheetRef$curre","current","expand","loadInitialStatus","_bottomSheetRef$curre2","close","status","handlePlatformToggle","platform","connect","error","console","handlePinSubmit","userPin","interval","setInterval","Math","round","clearInterval","tierData","canProceedToPin","connectedPlatforms","Object","values","filter","Boolean","length","renderHeader","createElement","style","styles","header","name","size","color","primary","headerTitle","onPress","closeButton","renderContent","onToggle","isLoading","canProceed","onProceed","onSubmit","minLength","requireSpecialChar","requireNumber","onCancel","ref","enablePanDownToClose","index","container","create","flex","backgroundColor","flexDirection","alignItems","padding","headerBg","borderTopLeftRadius","borderTopRightRadius","fontSize","fontWeight","marginLeft"],"sourceRoot":"..\\..\\..\\src","sources":["components/UniversalOnboarding.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,34 +1,11 @@
1
- // Components
2
- export { OnairosButton } from './components/OnairosButton';
3
- export { UniversalOnboarding } from './components/UniversalOnboarding';
4
- export { Overlay } from './components/Overlay';
1
+ import OnairosButton from './components/OnairosButton';
2
+ import * as AuthUtils from './utils/auth';
3
+ import * as CryptoUtils from './utils/crypto';
4
+ import * as ApiUtils from './utils/api';
5
5
 
6
- // Screen Components
7
- export { ConnectorScreen } from './components/screens/ConnectorScreen';
8
- export { PinCreationScreen } from './components/screens/PinCreationScreen';
9
- export { LoadingScreen } from './components/screens/LoadingScreen';
6
+ // Export the main component
7
+ export default OnairosButton;
10
8
 
11
- // Onboarding Components
12
- export { OAuthWebView } from './components/onboarding/OAuthWebView';
13
- export { PlatformConnector } from './components/onboarding/PlatformConnector';
14
- export { OnboardingHeader } from './components/onboarding/OnboardingHeader';
15
- export { PinInput } from './components/onboarding/PinInput';
16
-
17
- // Hooks
18
- export { useConnections } from './hooks/useConnections';
19
- export { useCredentials } from './hooks/useCredentials';
20
-
21
- // Utilities
22
- export { storeCredentials, getCredentials, hasCredentials, deleteCredentials, updateCredentials, generateDeviceUsername, verifyCredentials } from './utils/secureStorage';
23
- export { validateCredentials, createAccount, authenticate, refreshToken, getPlatformData, getUserProfile, updatePlatformConnections } from './utils/onairosApi';
24
- export { rsaEncrypt, sha256, base64ToBuffer } from './utils/crypto';
25
- export { logDebug, logError, isDebugMode } from './utils/debugHelper';
26
-
27
- // Services
28
- export { connectPlatform, disconnectPlatform, initializeOAuthService, cleanupOAuthService, storePlatformConnection } from './services/oauthService';
29
-
30
- // Types
31
-
32
- // Constants
33
- export { COLORS, PLATFORMS, API_ENDPOINTS, STORAGE_KEYS, PIN_REQUIREMENTS, DEEP_LINK_CONFIG } from './constants';
9
+ // Export utilities for advanced usage
10
+ export { AuthUtils, CryptoUtils, ApiUtils };
34
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["OnairosButton","UniversalOnboarding","Overlay","ConnectorScreen","PinCreationScreen","LoadingScreen","OAuthWebView","PlatformConnector","OnboardingHeader","PinInput","useConnections","useCredentials","storeCredentials","getCredentials","hasCredentials","deleteCredentials","updateCredentials","generateDeviceUsername","verifyCredentials","validateCredentials","createAccount","authenticate","refreshToken","getPlatformData","getUserProfile","updatePlatformConnections","rsaEncrypt","sha256","base64ToBuffer","logDebug","logError","isDebugMode","connectPlatform","disconnectPlatform","initializeOAuthService","cleanupOAuthService","storePlatformConnection","COLORS","PLATFORMS","API_ENDPOINTS","STORAGE_KEYS","PIN_REQUIREMENTS","DEEP_LINK_CONFIG"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":"AAAA;AACA,SAASA,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,mBAAmB,QAAQ,kCAAkC;AACtE,SAASC,OAAO,QAAQ,sBAAsB;;AAE9C;AACA,SAASC,eAAe,QAAQ,sCAAsC;AACtE,SAASC,iBAAiB,QAAQ,wCAAwC;AAC1E,SAASC,aAAa,QAAQ,oCAAoC;;AAElE;AACA,SAASC,YAAY,QAAQ,sCAAsC;AACnE,SAASC,iBAAiB,QAAQ,2CAA2C;AAC7E,SAASC,gBAAgB,QAAQ,0CAA0C;AAC3E,SAASC,QAAQ,QAAQ,kCAAkC;;AAE3D;AACA,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,cAAc,QAAQ,wBAAwB;;AAEvD;AACA,SACEC,gBAAgB,EAChBC,cAAc,EACdC,cAAc,EACdC,iBAAiB,EACjBC,iBAAiB,EACjBC,sBAAsB,EACtBC,iBAAiB,QACZ,uBAAuB;AAE9B,SACEC,mBAAmB,EACnBC,aAAa,EACbC,YAAY,EACZC,YAAY,EACZC,eAAe,EACfC,cAAc,EACdC,yBAAyB,QACpB,oBAAoB;AAE3B,SACEC,UAAU,EACVC,MAAM,EACNC,cAAc,QACT,gBAAgB;AAEvB,SACEC,QAAQ,EACRC,QAAQ,EACRC,WAAW,QACN,qBAAqB;;AAE5B;AACA,SACEC,eAAe,EACfC,kBAAkB,EAClBC,sBAAsB,EACtBC,mBAAmB,EACnBC,uBAAuB,QAClB,yBAAyB;;AAEhC;;AAkBA;AACA,SAASC,MAAM,EAAEC,SAAS,EAAEC,aAAa,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,gBAAgB,QAAQ,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["OnairosButton","AuthUtils","CryptoUtils","ApiUtils"],"sourceRoot":"..\\..\\src","sources":["index.js"],"mappings":"AAAA,OAAOA,aAAa,MAAM,4BAA4B;AACtD,OAAO,KAAKC,SAAS,MAAM,cAAc;AACzC,OAAO,KAAKC,WAAW,MAAM,gBAAgB;AAC7C,OAAO,KAAKC,QAAQ,MAAM,aAAa;;AAEvC;AACA,eAAeH,aAAa;;AAE5B;AACA,SACEC,SAAS,EACTC,WAAW,EACXC,QAAQ","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"..\\..\\src","sources":["types.ts"],"mappings":"","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onairos/react-native",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Onairos React Native SDK for social media authentication and AI model training",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -1,132 +1,49 @@
1
- import React, { useCallback, useEffect, useState } from 'react';
2
- import {
3
- TouchableOpacity,
4
- StyleSheet,
5
- View,
6
- Text,
7
- Platform,
8
- Linking,
9
- Modal,
10
- } from 'react-native';
11
- import Icon from 'react-native-vector-icons/MaterialIcons';
12
- import * as Keychain from 'react-native-keychain';
1
+ import React, { useState } from 'react';
2
+ import { TouchableOpacity, Text, StyleSheet, View } from 'react-native';
13
3
  import { UniversalOnboarding } from './UniversalOnboarding';
14
- import { DataRequestModal } from './DataRequestModal';
15
- import { useCredentials } from '../hooks/useCredentials';
16
- // import { validateCredentials } from '../utils/auth';
17
- // import { COLORS } from '../constants';
4
+ import { COLORS } from '../constants';
18
5
  import type { OnairosButtonProps } from '../types';
19
6
 
20
7
  export const OnairosButton: React.FC<OnairosButtonProps> = ({
8
+ title,
9
+ onPress,
10
+ style,
11
+ buttonType = 'default',
12
+ buttonForm = 'signup',
21
13
  AppName,
22
14
  requestData,
23
15
  returnLink,
16
+ onComplete,
24
17
  embedd = false,
25
- color = '#00BFA5',
26
- icon = 'auto_awesome',
27
- onResolved,
28
- login = false,
29
- buttonType = 'circle',
30
18
  debug = false,
31
19
  test = false,
32
20
  }) => {
33
21
  const [showOnboarding, setShowOnboarding] = useState(false);
34
- const [showDataRequest, setShowDataRequest] = useState(false);
35
- const { hasCredentials, getCredentials, validateCredentials } = useCredentials();
36
- const [loading, setLoading] = useState(false);
37
22
 
38
- const handlePress = useCallback(async () => {
39
- setLoading(true);
40
- try {
41
- const hasExisting = await hasCredentials();
42
-
43
- if (!hasExisting) {
44
- setShowOnboarding(true);
45
- return;
46
- }
47
-
48
- const credentials = await getCredentials();
49
- if (!credentials) {
50
- setShowOnboarding(true);
51
- return;
52
- }
53
-
54
- const validationResult = await validateCredentials(credentials.username);
55
- if (!validationResult.isValid) {
56
- setShowOnboarding(true);
57
- return;
58
- }
59
-
60
- // If we have valid credentials, show data request modal
61
- setShowDataRequest(true);
62
- } catch (error) {
63
- console.error('Error in button press:', error);
23
+ const handlePress = () => {
24
+ if (buttonForm === 'signup') {
64
25
  setShowOnboarding(true);
65
- } finally {
66
- setLoading(false);
67
- }
68
- }, [hasCredentials, getCredentials, validateCredentials]);
69
-
70
- const handleDataRequestAccept = useCallback(async () => {
71
- try {
72
- const credentials = await getCredentials();
73
- if (credentials) {
74
- onResolved(
75
- 'https://api2.onairos.uk',
76
- credentials.accessToken,
77
- credentials
78
- );
79
- }
80
- setShowDataRequest(false);
81
- } catch (error) {
82
- console.error('Error handling data request accept:', error);
26
+ } else {
27
+ onPress();
83
28
  }
84
- }, [getCredentials, onResolved]);
85
-
86
- useEffect(() => {
87
- // Setup deep linking
88
- const handleDeepLink = ({ url }: { url: string }) => {
89
- if (url.includes('onairosreact://authenticate')) {
90
- // Handle authentication callback
91
- const params = new URL(url).searchParams;
92
- const nonce = params.get('nonce');
93
- const callback = params.get('callback');
94
-
95
- if (nonce && callback) {
96
- // Process authentication
97
- setShowOnboarding(false);
98
- }
99
- }
100
- };
101
-
102
- Linking.addEventListener('url', handleDeepLink);
103
-
104
- return () => {
105
- // Cleanup deep linking
106
- // Note: Remove event listener based on RN version
107
- // if (Platform.OS === 'android') {
108
- // Linking.removeEventListener('url', handleDeepLink);
109
- // }
110
- };
111
- }, []);
29
+ };
112
30
 
113
- const buttonStyles = [
114
- styles.button,
115
- buttonType === 'pill' ? styles.pillButton : styles.circleButton,
116
- { backgroundColor: color },
117
- ];
31
+ const handleOnboardingComplete = (apiUrl: string, token: string, data: any) => {
32
+ setShowOnboarding(false);
33
+ onComplete(apiUrl, token, data);
34
+ };
118
35
 
119
36
  return (
120
- <>
37
+ <View>
121
38
  <TouchableOpacity
122
- style={buttonStyles}
39
+ style={[
40
+ styles.button,
41
+ buttonType === 'pill' && styles.pillButton,
42
+ style,
43
+ ]}
123
44
  onPress={handlePress}
124
- disabled={loading}
125
45
  >
126
- <Icon name={icon} size={24} color="white" />
127
- {buttonType === 'pill' && (
128
- <Text style={styles.buttonText}>Connect with Onairos</Text>
129
- )}
46
+ <Text style={styles.buttonText}>{title}</Text>
130
47
  </TouchableOpacity>
131
48
 
132
49
  <UniversalOnboarding
@@ -135,47 +52,29 @@ export const OnairosButton: React.FC<OnairosButtonProps> = ({
135
52
  AppName={AppName}
136
53
  requestData={requestData}
137
54
  returnLink={returnLink}
138
- onComplete={onResolved}
55
+ onComplete={handleOnboardingComplete}
139
56
  embedd={embedd}
140
57
  debug={debug}
141
58
  test={test}
142
59
  />
143
-
144
- <DataRequestModal
145
- visible={showDataRequest}
146
- onClose={() => setShowDataRequest(false)}
147
- onAccept={handleDataRequestAccept}
148
- requestData={requestData}
149
- AppName={AppName}
150
- />
151
- </>
60
+ </View>
152
61
  );
153
62
  };
154
63
 
155
64
  const styles = StyleSheet.create({
156
65
  button: {
66
+ backgroundColor: COLORS.primary,
67
+ paddingVertical: 12,
68
+ paddingHorizontal: 24,
69
+ borderRadius: 8,
157
70
  alignItems: 'center',
158
71
  justifyContent: 'center',
159
- elevation: 3,
160
- shadowColor: '#000',
161
- shadowOffset: { width: 0, height: 2 },
162
- shadowOpacity: 0.25,
163
- shadowRadius: 3.84,
164
- },
165
- circleButton: {
166
- width: 60,
167
- height: 60,
168
- borderRadius: 30,
169
72
  },
170
73
  pillButton: {
171
- flexDirection: 'row',
172
- paddingHorizontal: 16,
173
- paddingVertical: 12,
174
- borderRadius: 25,
74
+ borderRadius: 20,
175
75
  },
176
76
  buttonText: {
177
- color: 'white',
178
- marginLeft: 8,
77
+ color: '#fff',
179
78
  fontSize: 16,
180
79
  fontWeight: '600',
181
80
  },
@@ -25,14 +25,15 @@ export const UniversalOnboarding: React.FC<UniversalOnboardingProps> = ({
25
25
  requestData,
26
26
  returnLink,
27
27
  onComplete,
28
- embedd,
29
- debug,
30
- test,
28
+ embedd = false,
29
+ debug = false,
30
+ test = false,
31
31
  }) => {
32
32
  const bottomSheetRef = useRef<BottomSheet>(null);
33
33
  const [step, setStep] = useState<'connect' | 'pin' | 'training'>('connect');
34
34
  const [connections, setConnections] = useState<ConnectionStatus>({});
35
35
  const [pin, setPin] = useState<string>('');
36
+ const [selectedTier, setSelectedTier] = useState<keyof typeof requestData>('Medium');
36
37
  const [training, setTraining] = useState<{
37
38
  progress: number;
38
39
  eta: string;
@@ -90,10 +91,12 @@ export const UniversalOnboarding: React.FC<UniversalOnboardingProps> = ({
90
91
  onComplete('https://api2.onairos.uk', 'dummy-token', {
91
92
  pin: userPin,
92
93
  connections,
94
+ selectedTier,
95
+ tierData: requestData[selectedTier],
93
96
  });
94
97
  }
95
98
  }, 1000);
96
- }, [connections, onComplete]);
99
+ }, [connections, onComplete, selectedTier, requestData]);
97
100
 
98
101
  const canProceedToPin = useMemo(() => {
99
102
  const connectedPlatforms = Object.values(connections).filter(Boolean).length;