react-native-okhi 1.0.3-2.beta.1

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.
Files changed (127) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +174 -0
  3. package/android/build.gradle +139 -0
  4. package/android/gradle.properties +5 -0
  5. package/android/src/main/AndroidManifest.xml +4 -0
  6. package/android/src/main/java/com/reactnativeokhi/OkhiModule.java +317 -0
  7. package/android/src/main/java/com/reactnativeokhi/OkhiPackage.java +28 -0
  8. package/ios/OkHiExtension.swift +27 -0
  9. package/ios/OkHiStruct.swift +29 -0
  10. package/ios/Okhi-Bridging-Header.h +3 -0
  11. package/ios/Okhi.m +41 -0
  12. package/ios/Okhi.swift +207 -0
  13. package/ios/Okhi.xcodeproj/project.pbxproj +283 -0
  14. package/ios/Okhi.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
  15. package/lib/commonjs/OkCollect/Helpers.js +47 -0
  16. package/lib/commonjs/OkCollect/Helpers.js.map +1 -0
  17. package/lib/commonjs/OkCollect/OkHiLocationManager.js +202 -0
  18. package/lib/commonjs/OkCollect/OkHiLocationManager.js.map +1 -0
  19. package/lib/commonjs/OkCollect/Spinner.js +32 -0
  20. package/lib/commonjs/OkCollect/Spinner.js.map +1 -0
  21. package/lib/commonjs/OkCollect/Util.js +192 -0
  22. package/lib/commonjs/OkCollect/Util.js.map +1 -0
  23. package/lib/commonjs/OkCollect/app.json +4 -0
  24. package/lib/commonjs/OkCollect/index.js +52 -0
  25. package/lib/commonjs/OkCollect/index.js.map +1 -0
  26. package/lib/commonjs/OkCollect/types.js +6 -0
  27. package/lib/commonjs/OkCollect/types.js.map +1 -0
  28. package/lib/commonjs/OkCore/Helpers.js +367 -0
  29. package/lib/commonjs/OkCore/Helpers.js.map +1 -0
  30. package/lib/commonjs/OkCore/OkHiAuth.js +126 -0
  31. package/lib/commonjs/OkCore/OkHiAuth.js.map +1 -0
  32. package/lib/commonjs/OkCore/OkHiException.js +133 -0
  33. package/lib/commonjs/OkCore/OkHiException.js.map +1 -0
  34. package/lib/commonjs/OkCore/OkHiMode.js +16 -0
  35. package/lib/commonjs/OkCore/OkHiMode.js.map +1 -0
  36. package/lib/commonjs/OkCore/_helpers.js +50 -0
  37. package/lib/commonjs/OkCore/_helpers.js.map +1 -0
  38. package/lib/commonjs/OkCore/_types.js +2 -0
  39. package/lib/commonjs/OkCore/_types.js.map +1 -0
  40. package/lib/commonjs/OkCore/index.js +117 -0
  41. package/lib/commonjs/OkCore/index.js.map +1 -0
  42. package/lib/commonjs/OkCore/types.js +2 -0
  43. package/lib/commonjs/OkCore/types.js.map +1 -0
  44. package/lib/commonjs/OkHiNativeModule/index.js +24 -0
  45. package/lib/commonjs/OkHiNativeModule/index.js.map +1 -0
  46. package/lib/commonjs/OkVerify/index.js +246 -0
  47. package/lib/commonjs/OkVerify/index.js.map +1 -0
  48. package/lib/commonjs/OkVerify/types.js +2 -0
  49. package/lib/commonjs/OkVerify/types.js.map +1 -0
  50. package/lib/commonjs/index.js +45 -0
  51. package/lib/commonjs/index.js.map +1 -0
  52. package/lib/module/OkCollect/Helpers.js +36 -0
  53. package/lib/module/OkCollect/Helpers.js.map +1 -0
  54. package/lib/module/OkCollect/OkHiLocationManager.js +179 -0
  55. package/lib/module/OkCollect/OkHiLocationManager.js.map +1 -0
  56. package/lib/module/OkCollect/Spinner.js +20 -0
  57. package/lib/module/OkCollect/Spinner.js.map +1 -0
  58. package/lib/module/OkCollect/Util.js +171 -0
  59. package/lib/module/OkCollect/Util.js.map +1 -0
  60. package/lib/module/OkCollect/app.json +4 -0
  61. package/lib/module/OkCollect/index.js +4 -0
  62. package/lib/module/OkCollect/index.js.map +1 -0
  63. package/lib/module/OkCollect/types.js +2 -0
  64. package/lib/module/OkCollect/types.js.map +1 -0
  65. package/lib/module/OkCore/Helpers.js +315 -0
  66. package/lib/module/OkCore/Helpers.js.map +1 -0
  67. package/lib/module/OkCore/OkHiAuth.js +112 -0
  68. package/lib/module/OkCore/OkHiAuth.js.map +1 -0
  69. package/lib/module/OkCore/OkHiException.js +124 -0
  70. package/lib/module/OkCore/OkHiException.js.map +1 -0
  71. package/lib/module/OkCore/OkHiMode.js +8 -0
  72. package/lib/module/OkCore/OkHiMode.js.map +1 -0
  73. package/lib/module/OkCore/_helpers.js +38 -0
  74. package/lib/module/OkCore/_helpers.js.map +1 -0
  75. package/lib/module/OkCore/_types.js +2 -0
  76. package/lib/module/OkCore/_types.js.map +1 -0
  77. package/lib/module/OkCore/index.js +50 -0
  78. package/lib/module/OkCore/index.js.map +1 -0
  79. package/lib/module/OkCore/types.js +2 -0
  80. package/lib/module/OkCore/types.js.map +1 -0
  81. package/lib/module/OkHiNativeModule/index.js +14 -0
  82. package/lib/module/OkHiNativeModule/index.js.map +1 -0
  83. package/lib/module/OkVerify/index.js +187 -0
  84. package/lib/module/OkVerify/index.js.map +1 -0
  85. package/lib/module/OkVerify/types.js +2 -0
  86. package/lib/module/OkVerify/types.js.map +1 -0
  87. package/lib/module/index.js +4 -0
  88. package/lib/module/index.js.map +1 -0
  89. package/lib/typescript/OkCollect/Helpers.d.ts +9 -0
  90. package/lib/typescript/OkCollect/OkHiLocationManager.d.ts +6 -0
  91. package/lib/typescript/OkCollect/Spinner.d.ts +4 -0
  92. package/lib/typescript/OkCollect/Util.d.ts +26 -0
  93. package/lib/typescript/OkCollect/index.d.ts +3 -0
  94. package/lib/typescript/OkCollect/types.d.ts +133 -0
  95. package/lib/typescript/OkCore/Helpers.d.ts +82 -0
  96. package/lib/typescript/OkCore/OkHiAuth.d.ts +16 -0
  97. package/lib/typescript/OkCore/OkHiException.d.ts +81 -0
  98. package/lib/typescript/OkCore/OkHiMode.d.ts +7 -0
  99. package/lib/typescript/OkCore/_helpers.d.ts +3 -0
  100. package/lib/typescript/OkCore/_types.d.ts +38 -0
  101. package/lib/typescript/OkCore/index.d.ts +17 -0
  102. package/lib/typescript/OkCore/types.d.ts +180 -0
  103. package/lib/typescript/OkHiNativeModule/index.d.ts +34 -0
  104. package/lib/typescript/OkVerify/index.d.ts +60 -0
  105. package/lib/typescript/OkVerify/types.d.ts +5 -0
  106. package/lib/typescript/index.d.ts +3 -0
  107. package/package.json +152 -0
  108. package/react-native-okhi.podspec +36 -0
  109. package/src/OkCollect/Helpers.ts +53 -0
  110. package/src/OkCollect/OkHiLocationManager.tsx +209 -0
  111. package/src/OkCollect/Spinner.tsx +18 -0
  112. package/src/OkCollect/Util.ts +195 -0
  113. package/src/OkCollect/app.json +4 -0
  114. package/src/OkCollect/index.ts +3 -0
  115. package/src/OkCollect/types.ts +142 -0
  116. package/src/OkCore/Helpers.ts +389 -0
  117. package/src/OkCore/OkHiAuth.ts +106 -0
  118. package/src/OkCore/OkHiException.ts +93 -0
  119. package/src/OkCore/OkHiMode.ts +7 -0
  120. package/src/OkCore/_helpers.ts +48 -0
  121. package/src/OkCore/_types.ts +37 -0
  122. package/src/OkCore/index.ts +59 -0
  123. package/src/OkCore/types.ts +203 -0
  124. package/src/OkHiNativeModule/index.ts +63 -0
  125. package/src/OkVerify/index.ts +243 -0
  126. package/src/OkVerify/types.ts +3 -0
  127. package/src/index.tsx +3 -0
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.OkHiLocationManager = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _reactNativeWebview = require("react-native-webview");
13
+
14
+ var _Spinner = require("./Spinner");
15
+
16
+ var _Util = require("./Util");
17
+
18
+ var _OkHiException = require("../OkCore/OkHiException");
19
+
20
+ var _OkHiAuth = require("../OkCore/OkHiAuth");
21
+
22
+ var _OkVerify = require("../OkVerify");
23
+
24
+ var _OkCore = require("../OkCore");
25
+
26
+ var _OkHiNativeModule = require("../OkHiNativeModule");
27
+
28
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
+
30
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+
32
+ /**
33
+ * The OkHiLocationManager React Component is used to display an in app modal, enabling the user to quickly create an accurate OkHi address.
34
+ */
35
+ const OkHiLocationManager = props => {
36
+ const [token, setToken] = (0, _react.useState)(null);
37
+ const [applicationConfiguration, setApplicationConfiguration] = (0, _react.useState)(null);
38
+ const [startPayload, setStartPaylaod] = (0, _react.useState)(null);
39
+ const defaultStyle = {
40
+ flex: 1
41
+ };
42
+ const style = props.style ? { ...props.style,
43
+ ...defaultStyle
44
+ } : defaultStyle;
45
+ const {
46
+ user,
47
+ onSuccess,
48
+ onCloseRequest,
49
+ onError,
50
+ loader,
51
+ launch
52
+ } = props;
53
+ const webViewRef = (0, _react.useRef)(null);
54
+ (0, _react.useEffect)(() => {
55
+ if (applicationConfiguration == null && token == null && user.phone) {
56
+ (0, _OkCore.getApplicationConfiguration)().then(config => {
57
+ if (!config && launch) {
58
+ onError(new _OkHiException.OkHiException({
59
+ code: _OkHiException.OkHiException.UNAUTHORIZED_CODE,
60
+ message: _OkHiException.OkHiException.UNAUTHORIZED_MESSAGE
61
+ }));
62
+ } else if (config) {
63
+ setApplicationConfiguration(config);
64
+ const auth = new _OkHiAuth.OkHiAuth();
65
+ auth.anonymousSignInWithPhoneNumber(user.phone, ['verify'], config).then(setToken).catch(onError);
66
+ }
67
+ }).catch(error => {
68
+ if (launch) {
69
+ onError(error);
70
+ }
71
+ });
72
+ }
73
+ }, [onError, user.phone, launch, applicationConfiguration, token]);
74
+ (0, _react.useEffect)(() => {
75
+ if (token !== null && applicationConfiguration !== null) {
76
+ // TODO: handle faliure
77
+ (0, _Util.generateStartDataPayload)(props, token, applicationConfiguration).then(startPayload => {
78
+ if (_reactNative.Platform.OS === 'android') {
79
+ _OkHiNativeModule.OkHiNativeModule.setItem('okcollect-launch-payload', JSON.stringify({
80
+ message: 'select_location',
81
+ payload: startPayload,
82
+ url: (0, _Util.getFrameUrl)(applicationConfiguration)
83
+ })).catch(console.error);
84
+ }
85
+
86
+ setStartPaylaod(startPayload);
87
+ }).catch(console.error);
88
+ }
89
+ }, [applicationConfiguration, props, token]);
90
+
91
+ const handleOnMessage = _ref => {
92
+ let {
93
+ nativeEvent: {
94
+ data
95
+ }
96
+ } = _ref;
97
+
98
+ try {
99
+ const response = JSON.parse(data);
100
+
101
+ if (response.message === 'fatal_exit') {
102
+ onError(new _OkHiException.OkHiException({
103
+ code: _OkHiException.OkHiException.UNKNOWN_ERROR_CODE,
104
+ message: response.payload.toString()
105
+ }));
106
+ } else if (response.message === 'exit_app') {
107
+ onCloseRequest();
108
+ } else if (response.message === 'request_enable_protected_apps') {
109
+ (0, _OkCore.openProtectedAppsSettings)();
110
+ } else {
111
+ onSuccess({ ...response.payload,
112
+ location: (0, _Util.parseOkHiLocation)(response.payload.location),
113
+ startVerification: function (config) {
114
+ const createdUser = { ...this.user
115
+ };
116
+ const location = { ...this.location
117
+ };
118
+ return new Promise((resolve, reject) => {
119
+ if (!location.id) {
120
+ reject(new _OkHiException.OkHiException({
121
+ code: _OkHiException.OkHiException.BAD_REQUEST_CODE,
122
+ message: 'Missing location id from response'
123
+ }));
124
+ } else {
125
+ (0, _OkVerify.start)(createdUser.phone, location.id, location.lat, location.lon, config).then(resolve).catch(reject);
126
+ }
127
+ });
128
+ }
129
+ });
130
+ }
131
+ } catch (error) {
132
+ let errorMessage = 'Something went wrong';
133
+
134
+ if (error instanceof Error) {
135
+ errorMessage = error.message;
136
+ }
137
+
138
+ onError(new _OkHiException.OkHiException({
139
+ code: _OkHiException.OkHiException.UNKNOWN_ERROR_CODE,
140
+ message: errorMessage
141
+ }));
142
+ }
143
+ };
144
+
145
+ const handleOnError = () => {
146
+ onError(new _OkHiException.OkHiException({
147
+ code: _OkHiException.OkHiException.NETWORK_ERROR_CODE,
148
+ message: _OkHiException.OkHiException.NETWORK_ERROR_MESSAGE
149
+ }));
150
+ };
151
+
152
+ const handleModalRequestClose = () => {
153
+ var _webViewRef$current;
154
+
155
+ (_webViewRef$current = webViewRef.current) === null || _webViewRef$current === void 0 ? void 0 : _webViewRef$current.goBack();
156
+ };
157
+
158
+ const renderContent = () => {
159
+ if (token === null || applicationConfiguration == null) {
160
+ return loader || /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, null);
161
+ }
162
+
163
+ if (startPayload === null) {
164
+ return loader || /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, null);
165
+ }
166
+
167
+ const {
168
+ jsAfterLoad,
169
+ jsBeforeLoad
170
+ } = (0, _Util.generateJavaScriptStartScript)({
171
+ message: 'select_location',
172
+ payload: startPayload
173
+ });
174
+ return /*#__PURE__*/_react.default.createElement(_reactNative.SafeAreaView, {
175
+ style: style
176
+ }, /*#__PURE__*/_react.default.createElement(_reactNativeWebview.WebView, {
177
+ source: {
178
+ uri: (0, _Util.getFrameUrl)(applicationConfiguration)
179
+ },
180
+ injectedJavaScriptBeforeContentLoaded: _reactNative.Platform.OS === 'ios' ? jsBeforeLoad : undefined,
181
+ injectedJavaScript: _reactNative.Platform.OS === 'ios' ? undefined : jsAfterLoad,
182
+ onMessage: handleOnMessage,
183
+ onError: handleOnError,
184
+ onHttpError: handleOnError,
185
+ geolocationEnabled: true,
186
+ allowsBackForwardNavigationGestures: true,
187
+ ref: webViewRef
188
+ }));
189
+ };
190
+
191
+ return /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
192
+ animationType: "slide",
193
+ transparent: false,
194
+ visible: launch,
195
+ onRequestClose: handleModalRequestClose
196
+ }, launch ? renderContent() : null);
197
+ };
198
+
199
+ exports.OkHiLocationManager = OkHiLocationManager;
200
+ var _default = OkHiLocationManager;
201
+ exports.default = _default;
202
+ //# sourceMappingURL=OkHiLocationManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OkHiLocationManager","props","token","setToken","useState","applicationConfiguration","setApplicationConfiguration","startPayload","setStartPaylaod","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","webViewRef","useRef","useEffect","phone","getApplicationConfiguration","then","config","OkHiException","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","auth","OkHiAuth","anonymousSignInWithPhoneNumber","catch","error","generateStartDataPayload","Platform","OS","OkHiNativeModule","setItem","JSON","stringify","payload","url","getFrameUrl","console","handleOnMessage","nativeEvent","data","response","parse","UNKNOWN_ERROR_CODE","toString","openProtectedAppsSettings","location","parseOkHiLocation","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","sv","lat","lon","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","handleModalRequestClose","current","goBack","renderContent","jsAfterLoad","jsBeforeLoad","generateJavaScriptStartScript","uri","undefined"],"sources":["OkHiLocationManager.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport { Modal, SafeAreaView, Platform } from 'react-native';\nimport { WebView, WebViewMessageEvent } from 'react-native-webview';\nimport { Spinner } from './Spinner';\nimport type {\n OkHiLocationManagerResponse,\n OkHiLocationManagerProps,\n OkHiLocationManagerStartDataPayload,\n} from './types';\nimport {\n getFrameUrl,\n generateJavaScriptStartScript,\n generateStartDataPayload,\n parseOkHiLocation,\n} from './Util';\nimport { OkHiException } from '../OkCore/OkHiException';\nimport { OkHiAuth } from '../OkCore/OkHiAuth';\nimport type { AuthApplicationConfig } from '../OkCore/_types';\nimport { start as sv } from '../OkVerify';\nimport type { OkVerifyStartConfiguration } from '../OkVerify/types';\nimport {\n getApplicationConfiguration,\n openProtectedAppsSettings,\n} from '../OkCore';\nimport { OkHiNativeModule } from '../OkHiNativeModule';\n\n/**\n * The OkHiLocationManager React Component is used to display an in app modal, enabling the user to quickly create an accurate OkHi address.\n */\nexport const OkHiLocationManager = (props: OkHiLocationManagerProps) => {\n const [token, setToken] = useState<string | null>(null);\n const [applicationConfiguration, setApplicationConfiguration] =\n useState<AuthApplicationConfig | null>(null);\n const [startPayload, setStartPaylaod] =\n useState<null | OkHiLocationManagerStartDataPayload>(null);\n const defaultStyle = { flex: 1 };\n const style = props.style\n ? { ...props.style, ...defaultStyle }\n : defaultStyle;\n\n const { user, onSuccess, onCloseRequest, onError, loader, launch } = props;\n const webViewRef = useRef<WebView | null>(null);\n\n useEffect(() => {\n if (applicationConfiguration == null && token == null && user.phone) {\n getApplicationConfiguration()\n .then((config) => {\n if (!config && launch) {\n onError(\n new OkHiException({\n code: OkHiException.UNAUTHORIZED_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n })\n );\n } else if (config) {\n setApplicationConfiguration(config);\n const auth = new OkHiAuth();\n auth\n .anonymousSignInWithPhoneNumber(user.phone, ['verify'], config)\n .then(setToken)\n .catch(onError);\n }\n })\n .catch((error) => {\n if (launch) {\n onError(error);\n }\n });\n }\n }, [onError, user.phone, launch, applicationConfiguration, token]);\n\n useEffect(() => {\n if (token !== null && applicationConfiguration !== null) {\n // TODO: handle faliure\n generateStartDataPayload(props, token, applicationConfiguration)\n .then((startPayload) => {\n if (Platform.OS === 'android') {\n OkHiNativeModule.setItem(\n 'okcollect-launch-payload',\n JSON.stringify({\n message: 'select_location',\n payload: startPayload,\n url: getFrameUrl(applicationConfiguration),\n })\n ).catch(console.error);\n }\n setStartPaylaod(startPayload);\n })\n .catch(console.error);\n }\n }, [applicationConfiguration, props, token]);\n\n const handleOnMessage = ({ nativeEvent: { data } }: WebViewMessageEvent) => {\n try {\n const response: OkHiLocationManagerResponse = JSON.parse(data);\n if (response.message === 'fatal_exit') {\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: response.payload.toString(),\n })\n );\n } else if (response.message === 'exit_app') {\n onCloseRequest();\n } else if (response.message === 'request_enable_protected_apps') {\n openProtectedAppsSettings();\n } else {\n onSuccess({\n ...response.payload,\n location: parseOkHiLocation(response.payload.location),\n startVerification: function (config?: OkVerifyStartConfiguration) {\n const createdUser = { ...this.user };\n const location = { ...this.location };\n return new Promise((resolve, reject) => {\n if (!location.id) {\n reject(\n new OkHiException({\n code: OkHiException.BAD_REQUEST_CODE,\n message: 'Missing location id from response',\n })\n );\n } else {\n sv(\n createdUser.phone,\n location.id,\n location.lat,\n location.lon,\n config\n )\n .then(resolve)\n .catch(reject);\n }\n });\n },\n });\n }\n } catch (error) {\n let errorMessage = 'Something went wrong';\n if (error instanceof Error) {\n errorMessage = error.message;\n }\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: errorMessage,\n })\n );\n }\n };\n\n const handleOnError = () => {\n onError(\n new OkHiException({\n code: OkHiException.NETWORK_ERROR_CODE,\n message: OkHiException.NETWORK_ERROR_MESSAGE,\n })\n );\n };\n\n const handleModalRequestClose = () => {\n webViewRef.current?.goBack();\n };\n\n const renderContent = () => {\n if (token === null || applicationConfiguration == null) {\n return loader || <Spinner />;\n }\n\n if (startPayload === null) {\n return loader || <Spinner />;\n }\n\n const { jsAfterLoad, jsBeforeLoad } = generateJavaScriptStartScript({\n message: 'select_location',\n payload: startPayload,\n });\n\n return (\n <SafeAreaView style={style}>\n <WebView\n source={{ uri: getFrameUrl(applicationConfiguration) }}\n injectedJavaScriptBeforeContentLoaded={\n Platform.OS === 'ios' ? jsBeforeLoad : undefined\n }\n injectedJavaScript={Platform.OS === 'ios' ? undefined : jsAfterLoad}\n onMessage={handleOnMessage}\n onError={handleOnError}\n onHttpError={handleOnError}\n geolocationEnabled={true}\n allowsBackForwardNavigationGestures={true}\n ref={webViewRef}\n />\n </SafeAreaView>\n );\n };\n\n return (\n <Modal\n animationType=\"slide\"\n transparent={false}\n visible={launch}\n onRequestClose={handleModalRequestClose}\n >\n {launch ? renderContent() : null}\n </Modal>\n );\n};\n\nexport default OkHiLocationManager;\n"],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Spinner = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ /**
15
+ * Default spinner component that'll be used as the initial loading indicator.
16
+ */
17
+ const Spinner = () => {
18
+ const style = {
19
+ flex: 1,
20
+ alignItems: 'center',
21
+ justifyContent: 'center'
22
+ };
23
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
24
+ style: style
25
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, {
26
+ color: "teal",
27
+ size: "small"
28
+ }));
29
+ };
30
+
31
+ exports.Spinner = Spinner;
32
+ //# sourceMappingURL=Spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Spinner","style","flex","alignItems","justifyContent"],"sources":["Spinner.tsx"],"sourcesContent":["import React from 'react';\nimport { ActivityIndicator, View, ViewStyle } from 'react-native';\n\n/**\n * Default spinner component that'll be used as the initial loading indicator.\n */\nexport const Spinner = () => {\n const style: ViewStyle = {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n };\n return (\n <View style={style}>\n <ActivityIndicator color=\"teal\" size=\"small\" />\n </View>\n );\n};\n"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA;AACA;AACA;AACO,MAAMA,OAAO,GAAG,MAAM;EAC3B,MAAMC,KAAgB,GAAG;IACvBC,IAAI,EAAE,CADiB;IAEvBC,UAAU,EAAE,QAFW;IAGvBC,cAAc,EAAE;EAHO,CAAzB;EAKA,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAEH;EAAb,gBACE,6BAAC,8BAAD;IAAmB,KAAK,EAAC,MAAzB;IAAgC,IAAI,EAAC;EAArC,EADF,CADF;AAKD,CAXM"}
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.parseOkHiLocation = exports.getFrameUrl = exports.generateStartDataPayload = exports.generateJavaScriptStartScript = void 0;
7
+
8
+ var _OkCore = require("../OkCore");
9
+
10
+ var _app = _interopRequireDefault(require("./app.json"));
11
+
12
+ var _reactNative = require("react-native");
13
+
14
+ var _OkHiNativeModule = require("../OkHiNativeModule");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ /**
19
+ * @ignore
20
+ */
21
+ const generateStartDataPayload = async (props, authToken, applicationConfiguration) => {
22
+ var _props$theme, _props$theme$colors, _props$theme2, _props$theme2$appBar, _applicationConfigura, _applicationConfigura2, _applicationConfigura3, _props$config, _props$theme3, _props$theme3$appBar, _props$config2, _props$config2$appBar, _props$config3, _props$config3$addres, _props$config4, _props$config4$addres, _props$config5, _props$config5$addres, _props$config6, _props$config6$addres;
23
+
24
+ const payload = {};
25
+ payload.style = !props.theme ? undefined : {
26
+ base: {
27
+ color: (_props$theme = props.theme) === null || _props$theme === void 0 ? void 0 : (_props$theme$colors = _props$theme.colors) === null || _props$theme$colors === void 0 ? void 0 : _props$theme$colors.primary,
28
+ logo: (_props$theme2 = props.theme) === null || _props$theme2 === void 0 ? void 0 : (_props$theme2$appBar = _props$theme2.appBar) === null || _props$theme2$appBar === void 0 ? void 0 : _props$theme2$appBar.logo,
29
+ name: (_applicationConfigura = applicationConfiguration.app) === null || _applicationConfigura === void 0 ? void 0 : _applicationConfigura.name
30
+ }
31
+ };
32
+ payload.user = {
33
+ phone: props.user.phone,
34
+ firstName: props.user.firstName,
35
+ lastName: props.user.lastName,
36
+ email: props.user.email
37
+ };
38
+ payload.auth = {
39
+ authToken
40
+ };
41
+ payload.context = {
42
+ container: {
43
+ name: (_applicationConfigura2 = applicationConfiguration.app) === null || _applicationConfigura2 === void 0 ? void 0 : _applicationConfigura2.name,
44
+ version: (_applicationConfigura3 = applicationConfiguration.app) === null || _applicationConfigura3 === void 0 ? void 0 : _applicationConfigura3.version
45
+ },
46
+ developer: {
47
+ name: applicationConfiguration.context.developer
48
+ },
49
+ library: {
50
+ name: _app.default.name,
51
+ version: _app.default.version
52
+ },
53
+ platform: {
54
+ name: 'react-native'
55
+ }
56
+ };
57
+ let hasLocationPermission;
58
+
59
+ try {
60
+ hasLocationPermission = await (0, _OkCore.isLocationPermissionGranted)();
61
+ } catch (error) {
62
+ console.log(error);
63
+ }
64
+
65
+ let hasBackgroundLocationPermission;
66
+
67
+ try {
68
+ hasBackgroundLocationPermission = await (0, _OkCore.isBackgroundLocationPermissionGranted)();
69
+ } catch (error) {
70
+ console.log(error);
71
+ }
72
+
73
+ if (typeof hasLocationPermission === 'boolean' && typeof hasBackgroundLocationPermission === 'boolean') {
74
+ payload.context.permissions = {
75
+ location: hasBackgroundLocationPermission ? 'always' : hasLocationPermission ? 'whenInUse' : 'denied'
76
+ };
77
+ }
78
+
79
+ if (_reactNative.Platform.OS === 'android') {
80
+ const {
81
+ manufacturer,
82
+ model
83
+ } = await _OkHiNativeModule.OkHiNativeModule.retrieveDeviceInfo();
84
+ payload.context.device = {
85
+ manufacturer,
86
+ model
87
+ };
88
+ payload.context.permissions = { ...payload.context.permissions
89
+ };
90
+ }
91
+
92
+ payload.config = {
93
+ protectedApps: _reactNative.Platform.OS === 'android' && (await (0, _OkCore.canOpenProtectedAppsSettings)()),
94
+ streetView: typeof ((_props$config = props.config) === null || _props$config === void 0 ? void 0 : _props$config.streetView) === 'boolean' ? props.config.streetView : true,
95
+ appBar: {
96
+ color: (_props$theme3 = props.theme) === null || _props$theme3 === void 0 ? void 0 : (_props$theme3$appBar = _props$theme3.appBar) === null || _props$theme3$appBar === void 0 ? void 0 : _props$theme3$appBar.backgroundColor,
97
+ visible: (_props$config2 = props.config) === null || _props$config2 === void 0 ? void 0 : (_props$config2$appBar = _props$config2.appBar) === null || _props$config2$appBar === void 0 ? void 0 : _props$config2$appBar.visible
98
+ },
99
+ addressTypes: {
100
+ home: typeof ((_props$config3 = props.config) === null || _props$config3 === void 0 ? void 0 : (_props$config3$addres = _props$config3.addressTypes) === null || _props$config3$addres === void 0 ? void 0 : _props$config3$addres.home) === 'boolean' ? (_props$config4 = props.config) === null || _props$config4 === void 0 ? void 0 : (_props$config4$addres = _props$config4.addressTypes) === null || _props$config4$addres === void 0 ? void 0 : _props$config4$addres.home : true,
101
+ work: typeof ((_props$config5 = props.config) === null || _props$config5 === void 0 ? void 0 : (_props$config5$addres = _props$config5.addressTypes) === null || _props$config5$addres === void 0 ? void 0 : _props$config5$addres.work) === 'boolean' ? (_props$config6 = props.config) === null || _props$config6 === void 0 ? void 0 : (_props$config6$addres = _props$config6.addressTypes) === null || _props$config6$addres === void 0 ? void 0 : _props$config6$addres.work : true
102
+ }
103
+ };
104
+ return payload;
105
+ };
106
+ /**
107
+ * @ignore
108
+ */
109
+
110
+
111
+ exports.generateStartDataPayload = generateStartDataPayload;
112
+
113
+ const getFrameUrl = applicationConfiguration => {
114
+ const DEV_FRAME_URL = 'https://dev-manager-v5.okhi.io';
115
+ const PROD_FRAME_URL = 'https://manager-v5.okhi.io';
116
+ const SANDBOX_FRAME_URL = 'https://sandbox-manager-v5.okhi.io';
117
+
118
+ if (applicationConfiguration.context.mode === _OkCore.OkHiMode.PROD) {
119
+ return PROD_FRAME_URL;
120
+ }
121
+
122
+ if (applicationConfiguration.context.mode === 'dev') {
123
+ return DEV_FRAME_URL;
124
+ }
125
+
126
+ return SANDBOX_FRAME_URL;
127
+ };
128
+ /**
129
+ * @ignore
130
+ */
131
+
132
+
133
+ exports.getFrameUrl = getFrameUrl;
134
+
135
+ const generateJavaScriptStartScript = startPayload => {
136
+ const jsBeforeLoad = `
137
+ window.isNativeApp = true;
138
+ window.NativeApp = {
139
+ bridge: {
140
+ receiveMessage: window.ReactNativeWebView.postMessage
141
+ },
142
+ data: ${JSON.stringify(startPayload)}
143
+ }
144
+ true;
145
+ `;
146
+ const jsAfterLoad = `
147
+ window.startOkHiLocationManager({
148
+ receiveMessage: function(data) { window.ReactNativeWebView.postMessage(data) } },
149
+ ${JSON.stringify(startPayload)})
150
+ `;
151
+ return {
152
+ jsBeforeLoad,
153
+ jsAfterLoad
154
+ };
155
+ };
156
+ /**
157
+ * @ignore
158
+ */
159
+
160
+
161
+ exports.generateJavaScriptStartScript = generateJavaScriptStartScript;
162
+
163
+ const parseOkHiLocation = location => {
164
+ var _location$geo_point, _location$geo_point2, _location$street_view, _location$street_view2;
165
+
166
+ return {
167
+ id: location === null || location === void 0 ? void 0 : location.id,
168
+ lat: location === null || location === void 0 ? void 0 : (_location$geo_point = location.geo_point) === null || _location$geo_point === void 0 ? void 0 : _location$geo_point.lat,
169
+ lon: location === null || location === void 0 ? void 0 : (_location$geo_point2 = location.geo_point) === null || _location$geo_point2 === void 0 ? void 0 : _location$geo_point2.lon,
170
+ placeId: location === null || location === void 0 ? void 0 : location.place_id,
171
+ plusCode: location === null || location === void 0 ? void 0 : location.plus_code,
172
+ propertyName: location === null || location === void 0 ? void 0 : location.property_name,
173
+ streetName: location === null || location === void 0 ? void 0 : location.street_name,
174
+ title: location === null || location === void 0 ? void 0 : location.title,
175
+ subtitle: location === null || location === void 0 ? void 0 : location.subtitle,
176
+ directions: location === null || location === void 0 ? void 0 : location.directions,
177
+ otherInformation: location === null || location === void 0 ? void 0 : location.other_information,
178
+ url: location === null || location === void 0 ? void 0 : location.url,
179
+ streetViewPanoId: location === null || location === void 0 ? void 0 : (_location$street_view = location.street_view) === null || _location$street_view === void 0 ? void 0 : _location$street_view.pano_id,
180
+ streetViewPanoUrl: location === null || location === void 0 ? void 0 : (_location$street_view2 = location.street_view) === null || _location$street_view2 === void 0 ? void 0 : _location$street_view2.url,
181
+ userId: location === null || location === void 0 ? void 0 : location.user_id,
182
+ propertyNumber: location === null || location === void 0 ? void 0 : location.propertyNumber,
183
+ photo: location === null || location === void 0 ? void 0 : location.photo,
184
+ displayTitle: location === null || location === void 0 ? void 0 : location.display_title,
185
+ country: location === null || location === void 0 ? void 0 : location.country,
186
+ state: location === null || location === void 0 ? void 0 : location.state,
187
+ city: location === null || location === void 0 ? void 0 : location.city
188
+ };
189
+ };
190
+
191
+ exports.parseOkHiLocation = parseOkHiLocation;
192
+ //# sourceMappingURL=Util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["generateStartDataPayload","props","authToken","applicationConfiguration","payload","style","theme","undefined","base","color","colors","primary","logo","appBar","name","app","user","phone","firstName","lastName","email","auth","context","container","version","developer","library","manifest","platform","hasLocationPermission","isLocationPermissionGranted","error","console","log","hasBackgroundLocationPermission","isBackgroundLocationPermissionGranted","permissions","location","Platform","OS","manufacturer","model","OkHiNativeModule","retrieveDeviceInfo","device","config","protectedApps","canOpenProtectedAppsSettings","streetView","backgroundColor","visible","addressTypes","home","work","getFrameUrl","DEV_FRAME_URL","PROD_FRAME_URL","SANDBOX_FRAME_URL","mode","OkHiMode","PROD","generateJavaScriptStartScript","startPayload","jsBeforeLoad","JSON","stringify","jsAfterLoad","parseOkHiLocation","id","lat","geo_point","lon","placeId","place_id","plusCode","plus_code","propertyName","property_name","streetName","street_name","title","subtitle","directions","otherInformation","other_information","url","streetViewPanoId","street_view","pano_id","streetViewPanoUrl","userId","user_id","propertyNumber","photo","displayTitle","display_title","country","state","city"],"sources":["Util.ts"],"sourcesContent":["import type { OkHiLocationManagerProps } from './types';\nimport {\n canOpenProtectedAppsSettings,\n isBackgroundLocationPermissionGranted,\n isLocationPermissionGranted,\n OkHiLocation,\n} from '../OkCore';\nimport { OkHiMode } from '../OkCore';\nimport type {\n OkHiLocationManagerStartDataPayload,\n OkHiLocationManagerStartMessage,\n} from './types';\nimport manifest from './app.json'; //TODO: fix this\nimport type { AuthApplicationConfig } from '../OkCore/_types';\nimport { Platform } from 'react-native';\nimport { OkHiNativeModule } from '../OkHiNativeModule';\n\n/**\n * @ignore\n */\nexport const generateStartDataPayload = async (\n props: OkHiLocationManagerProps,\n authToken: string,\n applicationConfiguration: AuthApplicationConfig\n): Promise<OkHiLocationManagerStartDataPayload> => {\n const payload: any = {};\n payload.style = !props.theme\n ? undefined\n : {\n base: {\n color: props.theme?.colors?.primary,\n logo: props.theme?.appBar?.logo,\n name: applicationConfiguration.app?.name,\n },\n };\n payload.user = {\n phone: props.user.phone,\n firstName: props.user.firstName,\n lastName: props.user.lastName,\n email: props.user.email,\n };\n payload.auth = {\n authToken,\n };\n payload.context = {\n container: {\n name: applicationConfiguration.app?.name,\n version: applicationConfiguration.app?.version,\n },\n developer: {\n name: applicationConfiguration.context.developer,\n },\n library: {\n name: manifest.name,\n version: manifest.version,\n },\n platform: {\n name: 'react-native',\n },\n };\n\n let hasLocationPermission: boolean | undefined;\n try {\n hasLocationPermission = await isLocationPermissionGranted();\n } catch (error) {\n console.log(error);\n }\n\n let hasBackgroundLocationPermission: boolean | undefined;\n try {\n hasBackgroundLocationPermission =\n await isBackgroundLocationPermissionGranted();\n } catch (error) {\n console.log(error);\n }\n\n if (\n typeof hasLocationPermission === 'boolean' &&\n typeof hasBackgroundLocationPermission === 'boolean'\n ) {\n payload.context.permissions = {\n location: hasBackgroundLocationPermission\n ? 'always'\n : hasLocationPermission\n ? 'whenInUse'\n : 'denied',\n };\n }\n\n if (Platform.OS === 'android') {\n const { manufacturer, model } = await OkHiNativeModule.retrieveDeviceInfo();\n payload.context.device = {\n manufacturer,\n model,\n };\n payload.context.permissions = {\n ...payload.context.permissions,\n };\n }\n payload.config = {\n protectedApps:\n Platform.OS === 'android' && (await canOpenProtectedAppsSettings()),\n streetView:\n typeof props.config?.streetView === 'boolean'\n ? props.config.streetView\n : true,\n appBar: {\n color: props.theme?.appBar?.backgroundColor,\n visible: props.config?.appBar?.visible,\n },\n addressTypes: {\n home:\n typeof props.config?.addressTypes?.home === 'boolean'\n ? props.config?.addressTypes?.home\n : true,\n work:\n typeof props.config?.addressTypes?.work === 'boolean'\n ? props.config?.addressTypes?.work\n : true,\n },\n };\n return payload;\n};\n\n/**\n * @ignore\n */\nexport const getFrameUrl = (\n applicationConfiguration: AuthApplicationConfig\n) => {\n const DEV_FRAME_URL = 'https://dev-manager-v5.okhi.io';\n const PROD_FRAME_URL = 'https://manager-v5.okhi.io';\n const SANDBOX_FRAME_URL = 'https://sandbox-manager-v5.okhi.io';\n if (applicationConfiguration.context.mode === OkHiMode.PROD) {\n return PROD_FRAME_URL;\n }\n if (applicationConfiguration.context.mode === ('dev' as any)) {\n return DEV_FRAME_URL;\n }\n return SANDBOX_FRAME_URL;\n};\n\n/**\n * @ignore\n */\nexport const generateJavaScriptStartScript = (startPayload: {\n message: OkHiLocationManagerStartMessage;\n payload: OkHiLocationManagerStartDataPayload;\n}) => {\n const jsBeforeLoad = `\n window.isNativeApp = true;\n window.NativeApp = {\n bridge: {\n receiveMessage: window.ReactNativeWebView.postMessage\n },\n data: ${JSON.stringify(startPayload)}\n }\n true;\n `;\n const jsAfterLoad = `\n window.startOkHiLocationManager({ \n receiveMessage: function(data) { window.ReactNativeWebView.postMessage(data) } }, \n ${JSON.stringify(startPayload)})\n `;\n return { jsBeforeLoad, jsAfterLoad };\n};\n\n/**\n * @ignore\n */\nexport const parseOkHiLocation = (location: any): OkHiLocation => {\n return {\n id: location?.id,\n lat: location?.geo_point?.lat,\n lon: location?.geo_point?.lon,\n placeId: location?.place_id,\n plusCode: location?.plus_code,\n propertyName: location?.property_name,\n streetName: location?.street_name,\n title: location?.title,\n subtitle: location?.subtitle,\n directions: location?.directions,\n otherInformation: location?.other_information,\n url: location?.url,\n streetViewPanoId: location?.street_view?.pano_id,\n streetViewPanoUrl: location?.street_view?.url,\n userId: location?.user_id,\n propertyNumber: location?.propertyNumber,\n photo: location?.photo,\n displayTitle: location?.display_title,\n country: location?.country,\n state: location?.state,\n city: location?.city,\n };\n};\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ {
2
+ "name": "okhiWebReactNative",
3
+ "version": "1.0.32.beta.1"
4
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ OkHiLocationManagerProps: true,
8
+ OkCollectSuccessResponse: true
9
+ };
10
+ Object.defineProperty(exports, "OkCollectSuccessResponse", {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _types.OkCollectSuccessResponse;
14
+ }
15
+ });
16
+ Object.defineProperty(exports, "OkHiLocationManagerProps", {
17
+ enumerable: true,
18
+ get: function () {
19
+ return _types.OkHiLocationManagerProps;
20
+ }
21
+ });
22
+
23
+ var _Helpers = require("./Helpers");
24
+
25
+ Object.keys(_Helpers).forEach(function (key) {
26
+ if (key === "default" || key === "__esModule") return;
27
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
28
+ if (key in exports && exports[key] === _Helpers[key]) return;
29
+ Object.defineProperty(exports, key, {
30
+ enumerable: true,
31
+ get: function () {
32
+ return _Helpers[key];
33
+ }
34
+ });
35
+ });
36
+
37
+ var _OkHiLocationManager = require("./OkHiLocationManager");
38
+
39
+ Object.keys(_OkHiLocationManager).forEach(function (key) {
40
+ if (key === "default" || key === "__esModule") return;
41
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
42
+ if (key in exports && exports[key] === _OkHiLocationManager[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _OkHiLocationManager[key];
47
+ }
48
+ });
49
+ });
50
+
51
+ var _types = require("./types");
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './Helpers';\nexport * from './OkHiLocationManager';\nexport { OkHiLocationManagerProps, OkCollectSuccessResponse } from './types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ViewStyle } from 'react-native';\nimport type { OkHiException } from '../OkCore/OkHiException';\nimport type { OkHiUser, OkHiLocation } from '../OkCore/types';\nimport type { OkVerifyStartConfiguration } from '../OkVerify/types';\n\n/**\n * The OkCollect Success Response object contains information about the newly created user and location once an address has been successfully created.\n * It can be used to extract information about the address and/or start address verification process.\n */\nexport interface OkCollectSuccessResponse {\n /**\n * The [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object containing information about the newly created user.\n */\n user: OkHiUser;\n /**\n * The [OkHiLocation](https://okhi.github.io/react-native-core/interfaces/okhilocation.html) object containing information about the newly created user.\n */\n location: OkHiLocation;\n\n /**\n * Starts address verification\n */\n startVerification: (config?: OkVerifyStartConfiguration) => Promise<string>;\n}\n\n/**\n * The OkHiLocationManager exposes props that you can use to customise it's functionality and appearance.\n */\nexport interface OkHiLocationManagerProps {\n /**\n * **Required:** A boolean flag that determines whether or not to show the Location Manager.\n */\n launch: boolean;\n /**\n * **Required:** A defined [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object, with a mandatory \"phone\" key property.\n */\n user: OkHiUser;\n /**\n * **Optional:** A custom JSX.Element that'll be used as a loading indicator.\n */\n loader?: JSX.Element;\n /**\n * **Optional:** Used to customise the appearance of the Container that wraps the location manager.\n */\n style?: ViewStyle;\n /**\n * **Required:** A callback that'll be invoked with an {@link OkCollectSuccessResponse} once an accurate OkHi address has been successfully created.\n */\n onSuccess: (response: OkCollectSuccessResponse) => any;\n /**\n * **Required:** A callback that'll be invoked whenever an error occurs during the address creation process.\n */\n onError: (error: OkHiException) => any;\n /**\n * **Required:** A callback that'll be invoked whenever a user taps on the close button.\n */\n onCloseRequest: () => any;\n /**\n * **Optional:** An object that'll be used to customise the appearance of the Location Manager to better match your branding requirements.\n */\n theme?: {\n appBar?: {\n backgroundColor?: string;\n logo?: string;\n };\n colors?: {\n primary?: string;\n };\n };\n /**\n * **Optional:** An object that'll be used to customise the functionality of the Location Manager. This object dictates whether you want some features on or off.\n */\n config?: {\n streetView?: boolean;\n appBar?: {\n visible?: boolean;\n };\n addressTypes?: {\n home?: boolean;\n work?: boolean;\n };\n };\n}\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerStartDataPayload {\n style?: {\n base?: {\n color?: string;\n logo?: string;\n name?: string;\n };\n };\n auth: {\n authToken: string;\n };\n context: {\n container?: {\n name?: string;\n version?: string;\n };\n developer: {\n name: string;\n };\n library: {\n name: string;\n version: string;\n };\n platform: {\n name: 'react-native';\n };\n };\n config?: {\n streetView?: boolean;\n appBar?: {\n color?: string;\n visible?: boolean;\n };\n };\n user: OkHiUser;\n}\n\n/**\n * @ignore\n */\nexport type OkHiLocationManagerStartMessage = 'select_location' | 'start_app';\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerResponse {\n message:\n | 'location_selected'\n | 'location_created'\n | 'location_updated'\n | 'exit_app'\n | 'request_enable_protected_apps'\n | 'fatal_exit';\n payload: { user: any; location: any };\n}\n"],"mappings":""}