expo-geetest-onelogin 0.8.0 → 0.9.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.
package/build/index.js CHANGED
@@ -107,9 +107,9 @@ function functionToCallbackId(callback) {
107
107
  return newCallbackId;
108
108
  }
109
109
  addChangeListener((data) => {
110
- if (data.type === 'callback') {
110
+ if (data.type === "callback") {
111
111
  if (callbackMap[data.callbackId]?.(data?.result)) {
112
- delete callbackMap[data.callbackId];
112
+ // delete callbackMap[data.callbackId!];
113
113
  }
114
114
  }
115
115
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EACL,kBAAkB,EAClB,YAAY,GAGb,MAAM,mBAAmB,CAAC;AAE3B,sFAAsF;AACtF,oDAAoD;AACpD,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAUhE,MAAM,OAAO,GAAG,IAAI,YAAY,CAC9B,yBAAyB,IAAI,kBAAkB,CAAC,mBAAmB,CACpE,CAAC;AAEF,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,IAAI,WAAW,GAAG,EAAE,CAAC;AAErB,MAAM,UAAU,iBAAiB,CAC/B,QAAgD;IAEhD,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAa;IAC/C,OAAO,MAAM,yBAAyB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,OAAO,EACL,uBAAuB,GAGxB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,KAAa;IAChC,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAE;QAC7B,OAAO,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9C;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,yBAAyB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO,yBAAyB,CAAC,2BAA2B,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,mBAA4C,EAC5C,QAAqD;IAErD,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAE;QAC7B,OAAO;KACR;IACD,IAAI,mBAAmB,EAAE,kBAAkB,EAAE;QAC3C,QAAQ,mBAAmB,EAAE,kBAAkB,EAAE;YAC/C,KAAK,2BAA2B;gBAC9B,mBAAmB,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACnD,MAAM;SACT;KACF;IACD,SAAS,OAAO,CAAC,GAAG;QAClB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3B,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;gBAChC,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aAC1B;YACD,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxC,IAAI,QAAQ,KAAK,CAAC,EAAE;oBAClB,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;iBACrB;qBAAM;oBACL,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;iBACjC;aACF;YACD,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE;gBAClC,GAAG,CAAC,GAAG,CAAC,GAAG;oBACP,UAAU,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAC7C,CAAA;aACF;QACH,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC7B,OAAO,yBAAyB,CAAC,YAAY,CAC3C,mBAAmB,EACnB,oBAAoB,CAAC,QAAQ,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAC5C,SAA+B,EAC/B,QAAkD;IAElD,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE;QACzB,SAAS,aAAa,CAAC,GAAG;YACxB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/B,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE;oBAClC,GAAG,CAAC,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAChD,OAAO;iBACR;gBACD,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;oBAChC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxB,OAAO;iBACR;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QACD,aAAa,CAAC,SAAS,CAAC,CAAC;QACzB,OAAO,yBAAyB,CAAC,8BAA8B,CAC7D,SAAS,EACT,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CACtD,CAAC;KACH;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAkB;IAC9C,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,CAAC,CAAC,CAAC;KACX;IACD,MAAM,aAAa,GAAG,EAAE,UAAU,CAAC;IACnC,WAAW,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;IACtC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;IACvB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;QAC9B,IAAI,WAAW,CAAC,IAAI,CAAC,UAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;YACjD,OAAO,WAAW,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;SACtC;KACF;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,QAAkB;IAC9C,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAE;QAC7B,OAAO,yBAAyB,CAAC,mBAAmB,EAAE,CAAC;KACxD;IACD,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE;QACzB,OAAO,yBAAyB,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;KAClE;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,qBAA6B,IAAI,EACjC,sBAA8B,IAAI;IAElC,OAAO,yBAAyB,CAAC,iBAAiB,CAChD,kBAAkB,EAClB,mBAAmB,CACpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,yBAAyB,CAAC,WAAW,EAAE,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAE;QAC7B,OAAO,yBAAyB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAClD;IACD,yBAAyB,CAAC,gBAAgB,EAAE,CAAC;AAC/C,CAAC","sourcesContent":["import { Platform, processColor } from \"react-native\";\nimport {\n NativeModulesProxy,\n EventEmitter,\n Subscription,\n requireNativeModule,\n} from \"expo-modules-core\";\n\n// Import the native module. On web, it will be resolved to ExpoGeetestOnelogin.web.ts\n// and on native platforms to ExpoGeetestOnelogin.ts\nimport ExpoGeetestOneloginModule from \"./ExpoGeetestOneloginModule\";\nimport ExpoGeetestOneloginView from \"./ExpoGeetestOneloginView\";\nimport {\n AndroidOneLoginResponse,\n AndroidOneLoginUIConfig,\n ChangeEventPayload,\n ExpoGeetestOneloginViewProps,\n IOSOneLoginResponse,\n IOSOneLoginUIConfig,\n} from \"./ExpoGeetestOnelogin.types\";\n\nconst emitter = new EventEmitter(\n ExpoGeetestOneloginModule ?? NativeModulesProxy.ExpoGeetestOnelogin\n);\n\nlet callbackId = 0;\nlet callbackMap = {};\n\nexport function addChangeListener<T>(\n listener: (event: ChangeEventPayload<T>) => void\n): Subscription {\n return emitter.addListener(\"onChange\", listener);\n}\n\nexport async function setValueAsync(value: string) {\n return await ExpoGeetestOneloginModule.setValueAsync(value);\n}\n\nexport {\n ExpoGeetestOneloginView,\n ExpoGeetestOneloginViewProps,\n ChangeEventPayload,\n};\n\n/**\n * 初始化。iOS不需要这这个Api,如果调用的话什么都不会发生\n * @param appId appId\tString\t极验后台配置唯一产品APPID,请在官网申请, 注意与服务端保持一致\n */\nexport function init(appId: string) {\n if (Platform.OS === \"android\") {\n return ExpoGeetestOneloginModule.init(appId);\n }\n}\n\n/**\n * 判断预取号结果是否有效\n *\n * @param appId 极验后台配置唯一产品APPID,请在官网申请, 如init接口传了 appId 此处可传空值\n */\nexport function register(appId: string) {\n return ExpoGeetestOneloginModule.register(appId);\n}\n\n/**\n * @return true: 预取号结果有效,可直接拉起授权页面 false: 预取号结果无效,需加载进度条,等待预取号完成之后拉起授权页面\n */\nexport function isPreGetTokenResultValidate(): boolean {\n return ExpoGeetestOneloginModule.isPreGetTokenResultValidate();\n}\n\nexport async function requestToken(\n oneLoginThemeConfig: AndroidOneLoginUIConfig,\n callback: (response: AndroidOneLoginResponse) => void\n) {\n if (Platform.OS !== \"android\") {\n return;\n }\n if (oneLoginThemeConfig?.privacyTextGravity) {\n switch (oneLoginThemeConfig?.privacyTextGravity) {\n case \"Gravity.CENTER_HORIZONTAL\":\n oneLoginThemeConfig[\"privacyTextGravity\"] = 1 << 0;\n break;\n }\n }\n function process(obj) {\n Object.keys(obj).map((key) => {\n if (typeof obj[key] === \"object\") {\n return process(obj[key]);\n }\n if (typeof obj[key] === \"string\" && obj[key].length > 0) {\n const colorInt = processColor(obj[key]);\n if (colorInt === 0) {\n obj[key] = colorInt;\n } else {\n obj[key] = colorInt || obj[key];\n }\n }\n if (typeof obj[key] === \"function\") {\n obj[key] = {\n callbackId: functionToCallbackId(obj[key]),\n }\n }\n });\n return obj;\n }\n process(oneLoginThemeConfig);\n return ExpoGeetestOneloginModule.requestToken(\n oneLoginThemeConfig,\n functionToCallbackId(callback)\n );\n}\n\n/**\n * 注意:\n * 1、在成功进入授权页面时,不会立即收到 completion 回调,在授权页面点击一键登录、切换账号或者返回按钮时,才会收到 completion 回调;\n * 2、若不能成功进入授权页面,则会立即收到 completion 回调\n * @param viewModel\n * @returns\n */\nexport function requestTokenWithViewController(\n viewModel?: IOSOneLoginUIConfig,\n callback?: (response: IOSOneLoginResponse) => void\n) {\n if (Platform.OS === \"ios\") {\n function processParams(map) {\n Object.keys(map).forEach((key) => {\n if (typeof map[key] === \"function\") {\n map.callbackId = functionToCallbackId(map[key]);\n return;\n }\n if (typeof map[key] === \"object\") {\n processParams(map[key]);\n return;\n }\n });\n }\n processParams(viewModel);\n return ExpoGeetestOneloginModule.requestTokenWithViewController(\n viewModel,\n callback ? functionToCallbackId(callback) : undefined\n );\n }\n}\n\nfunction functionToCallbackId(callback: Function): number {\n if (!callback) {\n return -1;\n }\n const newCallbackId = ++callbackId;\n callbackMap[newCallbackId] = callback;\n return newCallbackId;\n}\n\naddChangeListener((data) => {\n if (data.type === 'callback') {\n if (callbackMap[data.callbackId!]?.(data?.result)) {\n delete callbackMap[data.callbackId!];\n }\n }\n});\n\nexport async function dismiss(animated?: boolean) {\n if (Platform.OS === \"android\") {\n return ExpoGeetestOneloginModule.dismissAuthActivity();\n }\n if (Platform.OS === \"ios\") {\n return ExpoGeetestOneloginModule.dismissAuthViewController(true);\n }\n}\n\n/**\n * 超时时间,单位:ms,取值范围:1000~15000,默认8000。\n * @param preGetTokenTimeout 预取号超时时间\n * @param requestTokenTimeout 取号超时时间\n */\nexport function setRequestTimeout(\n preGetTokenTimeout: number = 8000,\n requestTokenTimeout: number = 8000\n) {\n return ExpoGeetestOneloginModule.setRequestTimeout(\n preGetTokenTimeout,\n requestTokenTimeout\n );\n}\n\nexport function stopLoading() {\n return ExpoGeetestOneloginModule.stopLoading();\n}\n\n/**\n * ios: 为保证用户在退出登录之后,能快速拉起授权页面,请在用户退出登录时,调用此方法\n * android: 登录成功后 SDK 内部不再维护预取号的有效性,如果用户退出登录后,为了方便下次重新登录能快速拉起授权页,也可以重新调用register进行预取号。\n */\nexport function renewPreGetToken(appId: string) {\n if (Platform.OS === \"android\") {\n return ExpoGeetestOneloginModule.register(appId);\n }\n ExpoGeetestOneloginModule.renewPreGetToken();\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Platform, processColor } from \"react-native\";\nimport {\n NativeModulesProxy,\n EventEmitter,\n Subscription,\n requireNativeModule,\n} from \"expo-modules-core\";\n\n// Import the native module. On web, it will be resolved to ExpoGeetestOnelogin.web.ts\n// and on native platforms to ExpoGeetestOnelogin.ts\nimport ExpoGeetestOneloginModule from \"./ExpoGeetestOneloginModule\";\nimport ExpoGeetestOneloginView from \"./ExpoGeetestOneloginView\";\nimport {\n AndroidOneLoginResponse,\n AndroidOneLoginUIConfig,\n ChangeEventPayload,\n ExpoGeetestOneloginViewProps,\n IOSOneLoginResponse,\n IOSOneLoginUIConfig,\n} from \"./ExpoGeetestOnelogin.types\";\n\nconst emitter = new EventEmitter(\n ExpoGeetestOneloginModule ?? NativeModulesProxy.ExpoGeetestOnelogin\n);\n\nlet callbackId = 0;\nlet callbackMap = {};\n\nexport function addChangeListener<T>(\n listener: (event: ChangeEventPayload<T>) => void\n): Subscription {\n return emitter.addListener(\"onChange\", listener);\n}\n\nexport async function setValueAsync(value: string) {\n return await ExpoGeetestOneloginModule.setValueAsync(value);\n}\n\nexport {\n ExpoGeetestOneloginView,\n ExpoGeetestOneloginViewProps,\n ChangeEventPayload,\n};\n\n/**\n * 初始化。iOS不需要这这个Api,如果调用的话什么都不会发生\n * @param appId appId\tString\t极验后台配置唯一产品APPID,请在官网申请, 注意与服务端保持一致\n */\nexport function init(appId: string) {\n if (Platform.OS === \"android\") {\n return ExpoGeetestOneloginModule.init(appId);\n }\n}\n\n/**\n * 判断预取号结果是否有效\n *\n * @param appId 极验后台配置唯一产品APPID,请在官网申请, 如init接口传了 appId 此处可传空值\n */\nexport function register(appId: string) {\n return ExpoGeetestOneloginModule.register(appId);\n}\n\n/**\n * @return true: 预取号结果有效,可直接拉起授权页面 false: 预取号结果无效,需加载进度条,等待预取号完成之后拉起授权页面\n */\nexport function isPreGetTokenResultValidate(): boolean {\n return ExpoGeetestOneloginModule.isPreGetTokenResultValidate();\n}\n\nexport async function requestToken(\n oneLoginThemeConfig: AndroidOneLoginUIConfig,\n callback: (response: AndroidOneLoginResponse) => void\n) {\n if (Platform.OS !== \"android\") {\n return;\n }\n if (oneLoginThemeConfig?.privacyTextGravity) {\n switch (oneLoginThemeConfig?.privacyTextGravity) {\n case \"Gravity.CENTER_HORIZONTAL\":\n oneLoginThemeConfig[\"privacyTextGravity\"] = 1 << 0;\n break;\n }\n }\n function process(obj) {\n Object.keys(obj).map((key) => {\n if (typeof obj[key] === \"object\") {\n return process(obj[key]);\n }\n if (typeof obj[key] === \"string\" && obj[key].length > 0) {\n const colorInt = processColor(obj[key]);\n if (colorInt === 0) {\n obj[key] = colorInt;\n } else {\n obj[key] = colorInt || obj[key];\n }\n }\n if (typeof obj[key] === \"function\") {\n obj[key] = {\n callbackId: functionToCallbackId(obj[key]),\n };\n }\n });\n return obj;\n }\n process(oneLoginThemeConfig);\n return ExpoGeetestOneloginModule.requestToken(\n oneLoginThemeConfig,\n functionToCallbackId(callback)\n );\n}\n\n/**\n * 注意:\n * 1、在成功进入授权页面时,不会立即收到 completion 回调,在授权页面点击一键登录、切换账号或者返回按钮时,才会收到 completion 回调;\n * 2、若不能成功进入授权页面,则会立即收到 completion 回调\n * @param viewModel\n * @returns\n */\nexport function requestTokenWithViewController(\n viewModel?: IOSOneLoginUIConfig,\n callback?: (response: IOSOneLoginResponse) => void\n) {\n if (Platform.OS === \"ios\") {\n function processParams(map) {\n Object.keys(map).forEach((key) => {\n if (typeof map[key] === \"function\") {\n map.callbackId = functionToCallbackId(map[key]);\n return;\n }\n if (typeof map[key] === \"object\") {\n processParams(map[key]);\n return;\n }\n });\n }\n processParams(viewModel);\n return ExpoGeetestOneloginModule.requestTokenWithViewController(\n viewModel,\n callback ? functionToCallbackId(callback) : undefined\n );\n }\n}\n\nfunction functionToCallbackId(callback: Function): number {\n if (!callback) {\n return -1;\n }\n const newCallbackId = ++callbackId;\n callbackMap[newCallbackId] = callback;\n return newCallbackId;\n}\n\naddChangeListener((data) => {\n if (data.type === \"callback\") {\n if (callbackMap[data.callbackId!]?.(data?.result)) {\n // delete callbackMap[data.callbackId!];\n }\n }\n});\n\nexport async function dismiss(animated?: boolean) {\n if (Platform.OS === \"android\") {\n return ExpoGeetestOneloginModule.dismissAuthActivity();\n }\n if (Platform.OS === \"ios\") {\n return ExpoGeetestOneloginModule.dismissAuthViewController(true);\n }\n}\n\n/**\n * 超时时间,单位:ms,取值范围:1000~15000,默认8000。\n * @param preGetTokenTimeout 预取号超时时间\n * @param requestTokenTimeout 取号超时时间\n */\nexport function setRequestTimeout(\n preGetTokenTimeout: number = 8000,\n requestTokenTimeout: number = 8000\n) {\n return ExpoGeetestOneloginModule.setRequestTimeout(\n preGetTokenTimeout,\n requestTokenTimeout\n );\n}\n\nexport function stopLoading() {\n return ExpoGeetestOneloginModule.stopLoading();\n}\n\n/**\n * ios: 为保证用户在退出登录之后,能快速拉起授权页面,请在用户退出登录时,调用此方法\n * android: 登录成功后 SDK 内部不再维护预取号的有效性,如果用户退出登录后,为了方便下次重新登录能快速拉起授权页,也可以重新调用register进行预取号。\n */\nexport function renewPreGetToken(appId: string) {\n if (Platform.OS === \"android\") {\n return ExpoGeetestOneloginModule.register(appId);\n }\n ExpoGeetestOneloginModule.renewPreGetToken();\n}\n"]}
package/ios/DTO.swift CHANGED
@@ -373,6 +373,10 @@ struct RNUIButton: Record {
373
373
  @Field var callbackId: Int?
374
374
  func build() -> UIButton {
375
375
  let button = UIButton.init(frame: frame!)
376
+ button.imageView?.contentMode = .scaleToFill
377
+ button.contentMode = .scaleToFill
378
+ button.contentHorizontalAlignment = .fill
379
+ button.contentVerticalAlignment = .fill
376
380
  button.setImage(uiImage?.build(), for: UIControl.State.normal)
377
381
  button.adjustsImageWhenHighlighted = false
378
382
  if (callbackId != nil) {
@@ -542,7 +546,7 @@ struct RNOLAuthViewModel: Record {
542
546
  /**
543
547
  隐藏切换账号按钮。默认不隐藏。
544
548
  */
545
- @Field var switchButtonHidden: Bool;
549
+ @Field var switchButtonHidden: Bool?;
546
550
 
547
551
  /**
548
552
  * 点击授权页面切换账号按钮的回调
@@ -16,7 +16,7 @@ Pod::Spec.new do |s|
16
16
  s.static_framework = true
17
17
 
18
18
  s.dependency 'ExpoModulesCore'
19
- s.dependency 'OneLoginSDK-iOS-xcframework', '~> 2.9.1'
19
+ s.dependency 'OneLoginSDK-iOS-xcframework', '2.9.1'
20
20
 
21
21
  # Swift/Objective-C compatibility
22
22
  s.pod_target_xcconfig = {
@@ -51,12 +51,21 @@ public class ExpoGeetestOneloginModule: Module {
51
51
  DispatchQueue.main.async {
52
52
  // Find the nearest view controller
53
53
  var controller = UIApplication.shared.windows.filter {$0.isKeyWindow}.first?.rootViewController;
54
+ var reactViewController = controller?.view.reactViewController();
55
+ var presentingViewController = controller?.presentingViewController;
54
56
  var presentedController = controller?.presentedViewController;
55
- while (presentedController != nil && !presentedController!.isBeingDismissed) {
56
- controller = presentedController;
57
- presentedController = controller?.presentedViewController;
57
+ if (presentedController != nil) {
58
+ while (presentedController != nil && !presentedController!.isBeingDismissed) {
59
+ controller = presentedController;
60
+ presentedController = controller?.presentedViewController;
61
+ }
62
+ } else {
63
+ while let child = controller?.children.last {
64
+ controller = child
65
+ }
58
66
  }
59
67
 
68
+
60
69
  let viewModel = OLAuthViewModel()
61
70
  if (viewModelRN.statusBarStyle != nil) {
62
71
  switch viewModelRN.statusBarStyle {
@@ -73,6 +82,9 @@ public class ExpoGeetestOneloginModule: Module {
73
82
  if (viewModelRN.backgroundVideoPath != nil) {
74
83
  viewModel.backgroundVideoPath = viewModelRN.backgroundVideoPath;
75
84
  }
85
+ if (viewModelRN.pullAuthVCStyle == "push") {
86
+ viewModel.pullAuthVCStyle = OLPullAuthVCStyle.push
87
+ }
76
88
  if (viewModelRN.navTextMargin != nil) {
77
89
  viewModel.navTextMargin = viewModelRN.navTextMargin!
78
90
  }
@@ -246,6 +258,9 @@ public class ExpoGeetestOneloginModule: Module {
246
258
 
247
259
  }
248
260
  }
261
+ if (viewModelRN.switchButtonHidden != nil) {
262
+ viewModel.switchButtonHidden = viewModelRN.switchButtonHidden!
263
+ }
249
264
  if (viewModelRN.clickSwitchButtonBlock != nil) {
250
265
  viewModel.clickSwitchButtonBlock = {
251
266
  self.callback(callbackId: viewModelRN.clickSwitchButtonBlock!.callbackId, params: nil)
@@ -304,9 +319,11 @@ public class ExpoGeetestOneloginModule: Module {
304
319
  }
305
320
 
306
321
  if (controller != nil) {
307
- OneLoginPro.requestToken(with: controller!, viewModel: viewModel, completion: { result in
308
- self.callback(callbackId: callbackId, params: ["result": result])
309
- })
322
+ OneLoginPro.requestToken(with: controller!, viewModel: viewModel){ [weak self] result in
323
+ if let strongSelf = self {
324
+ strongSelf.callback(callbackId: callbackId, params: ["result": result])
325
+ }
326
+ }
310
327
  }
311
328
  }
312
329
  }
@@ -336,9 +353,6 @@ public class ExpoGeetestOneloginModule: Module {
336
353
  @objc func onClicked(sender: UIButton) {
337
354
  self.callback(callbackId: sender.tag, params: ["type": "callback"])
338
355
  }
339
- func callback(callbackId: Int) {
340
- self.callback(callbackId: callbackId, params: nil)
341
- }
342
356
  func callback(callbackId: Int, params: Dictionary<String, Any>?) {
343
357
  self.sendEvent("onChange", ["callbackId": callbackId, "type": "callback"].merging(params ?? [:], uniquingKeysWith: { (_, new) in new }))
344
358
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-geetest-onelogin",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "react native plugin for https://docs.geetest.com/onelogin/overview/prodes",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
package/src/index.ts CHANGED
@@ -97,8 +97,8 @@ export async function requestToken(
97
97
  }
98
98
  if (typeof obj[key] === "function") {
99
99
  obj[key] = {
100
- callbackId: functionToCallbackId(obj[key]),
101
- }
100
+ callbackId: functionToCallbackId(obj[key]),
101
+ };
102
102
  }
103
103
  });
104
104
  return obj;
@@ -152,9 +152,9 @@ function functionToCallbackId(callback: Function): number {
152
152
  }
153
153
 
154
154
  addChangeListener((data) => {
155
- if (data.type === 'callback') {
155
+ if (data.type === "callback") {
156
156
  if (callbackMap[data.callbackId!]?.(data?.result)) {
157
- delete callbackMap[data.callbackId!];
157
+ // delete callbackMap[data.callbackId!];
158
158
  }
159
159
  }
160
160
  });