@@ -9,16 +9,14 @@ import android.app.Activity
99import android.content.Intent
1010import android.net.Uri
1111import com.facebook.react.bridge.*
12- import com.openlogin .core.OpenLogin
12+ import com.web3auth .core.Web3Auth
1313import java.lang.Exception
1414import java.util.*
1515import com.facebook.react.bridge.WritableMap
1616
1717import com.facebook.react.bridge.ReactContext
1818import com.facebook.react.modules.core.DeviceEventManagerModule.RCTDeviceEventEmitter
19- import com.openlogin.core.types.LoginParams
20- import com.openlogin.core.types.OpenLoginOptions
21- import com.openlogin.core.types.OpenLoginResponse
19+ import com.web3auth.core.types.*
2220import kotlinx.coroutines.CoroutineScope
2321import kotlinx.coroutines.Dispatchers
2422import kotlinx.coroutines.launch
@@ -27,24 +25,25 @@ import java8.util.concurrent.CompletableFuture
2725// Quick note on allowing RN Modules to receive Activity Events
2826// https://stackoverflow.com/questions/45744013/onnewintent-is-not-called-on-reactcontextbasejavamodule-react-native
2927
30- class OpenloginReactNativeSdkModule (reactContext : ReactApplicationContext ) : ReactContextBaseJavaModule(reactContext) {
28+ class OpenloginReactNativeSdkModule (reactContext : ReactApplicationContext ) :
29+ ReactContextBaseJavaModule (reactContext) {
3130
3231 override fun getName (): String {
3332 return " OpenloginReactNativeSdk"
3433 }
3534
36- private lateinit var openlogin: OpenLogin
35+ private lateinit var openlogin: Web3Auth
3736
3837 @ReactMethod
3938 fun init (params : ReadableMap , promise : Promise ) = try {
4039 val clientId = params.getString(" clientId" ) as String
4140 val network = params.getString(" network" ) as String
4241 val redirectUrl = params.getString(" redirectUrl" )
43- openlogin = OpenLogin (
44- OpenLoginOptions (
42+ openlogin = Web3Auth (
43+ Web3AuthOptions (
4544 context = currentActivity!! ,
4645 clientId = clientId,
47- network = OpenLogin .Network .valueOf(network.toUpperCase(Locale .ROOT )),
46+ network = Web3Auth .Network .valueOf(network.toUpperCase(Locale .ROOT )),
4847 redirectUrl = Uri .parse(redirectUrl ? : " ${reactApplicationContext!! .packageName} ://auth" )
4948 )
5049 )
@@ -55,7 +54,7 @@ class OpenloginReactNativeSdkModule(reactContext: ReactApplicationContext) : Rea
5554 override fun onActivityResult (p0 : Activity ? , p1 : Int , p2 : Int , p3 : Intent ? ) {}
5655
5756 override fun onNewIntent (p0 : Intent ? ) {
58- openlogin.setResultUrl(p0?.data)
57+ openlogin.setResultUrl(p0?.data)
5958 }
6059 })
6160 promise.resolve(null )
@@ -69,7 +68,23 @@ class OpenloginReactNativeSdkModule(reactContext: ReactApplicationContext) : Rea
6968
7069 CoroutineScope (Dispatchers .Default ).launch {
7170 try {
72- val loginCF = openlogin.login(LoginParams (getOpenLoginProvider(provider)))
71+ val loginParams = LoginParams (
72+ loginProvider = getWeb3AuthProvider(provider),
73+ relogin = if (! params.hasKey(" relogin" )) null else params.getBoolean(" relogin" ),
74+ dappShare = if (! params.hasKey(" dappShare" )) null else params.getString(" dappShare" ),
75+ redirectUrl = if (! params.hasKey(" redirectUrl" )) null else Uri .parse(params.getString(" redirectUrl" )),
76+ appState = if (! params.hasKey(" appState" )) null else params.getString(" appState" ),
77+ extraLoginOptions = ExtraLoginOptions (
78+ login_hint = if (params.hasKey(" extraLoginOptions" ) || params.getMap(" extraLoginOptions" )
79+ ?.hasKey(" login_hint" ) == null || params.getMap(" extraLoginOptions" )
80+ ?.hasKey(" login_hint" ) == true
81+ ) params.getMap(" extraLoginOptions" )?.getString(" login_hint" ) else null
82+
83+ )
84+ )
85+ val loginCF = openlogin.login(
86+ loginParams,
87+ )
7388 loginCF.join()
7489 loginCF.whenComplete { result, error ->
7590 launch(Dispatchers .Main ) {
@@ -78,6 +93,7 @@ class OpenloginReactNativeSdkModule(reactContext: ReactApplicationContext) : Rea
7893 } else {
7994 val map = Arguments .createMap()
8095 map.putString(" privKey" , result.privKey)
96+ map.putString(" ed25519PrivKey" , result.ed25519PrivKey)
8197 val userInfoMap = Arguments .createMap()
8298 userInfoMap.putString(" email" , result.userInfo?.email)
8399 userInfoMap.putString(" name" , result.userInfo?.name)
@@ -86,6 +102,7 @@ class OpenloginReactNativeSdkModule(reactContext: ReactApplicationContext) : Rea
86102 userInfoMap.putString(" verifier" , result.userInfo?.verifier)
87103 userInfoMap.putString(" verifierId" , result.userInfo?.verifierId)
88104 userInfoMap.putString(" typeOfLogin" , result.userInfo?.typeOfLogin)
105+ userInfoMap.putString(" dappShare" , result.userInfo?.dappShare)
89106 map.putMap(" userInfo" , userInfoMap)
90107 promise.resolve(map)
91108 }
@@ -97,47 +114,47 @@ class OpenloginReactNativeSdkModule(reactContext: ReactApplicationContext) : Rea
97114 }
98115 }
99116
100- @ReactMethod
101- fun logout (params : ReadableMap , promise : Promise ) {
102- CoroutineScope (Dispatchers .Default ).launch {
103- try {
104- val logoutCF = openlogin.logout()
105- logoutCF.join()
106- logoutCF.whenComplete { _, error ->
107- launch(Dispatchers .Main ) {
108- if (error != null ) {
109- promise.reject(error)
110- } else {
111- promise.resolve(null )
112- }
113- }
117+ @ReactMethod
118+ fun logout (params : ReadableMap , promise : Promise ) {
119+ CoroutineScope (Dispatchers .Default ).launch {
120+ try {
121+ val logoutCF = openlogin.logout()
122+ logoutCF.join()
123+ logoutCF.whenComplete { _, error ->
124+ launch(Dispatchers .Main ) {
125+ if (error != null ) {
126+ promise.reject(error)
127+ } else {
128+ promise.resolve(null )
114129 }
115- } catch (e: Exception ) {
116- launch(Dispatchers .Main ) { promise.reject(e) }
117130 }
118131 }
132+ } catch (e: Exception ) {
133+ launch(Dispatchers .Main ) { promise.reject(e) }
119134 }
135+ }
136+ }
120137
121- fun getOpenLoginProvider (provider : String? ): OpenLogin . Provider {
122- return when (provider) {
123- " google" -> OpenLogin . Provider .GOOGLE
124- " facebook" -> OpenLogin . Provider .FACEBOOK
125- " reddit" -> OpenLogin . Provider .REDDIT
126- " discord" -> OpenLogin . Provider .DISCORD
127- " twitch" -> OpenLogin . Provider .TWITCH
128- " apple" -> OpenLogin . Provider .APPLE
129- " line" -> OpenLogin . Provider .LINE
130- " github" -> OpenLogin . Provider .GITHUB
131- " kakao" -> OpenLogin . Provider .KAKAO
132- " linkedin" -> OpenLogin . Provider .LINKEDIN
133- " twitter" -> OpenLogin . Provider .TWITTER
134- " weibo" -> OpenLogin . Provider .WEIBO
135- " wechat" -> OpenLogin . Provider .WECHAT
136- " email_passwordless" -> OpenLogin . Provider .EMAIL_PASSWORDLESS
137-
138- else -> OpenLogin . Provider .GOOGLE
139- }
140- }
138+ fun getWeb3AuthProvider (provider : String? ): Provider {
139+ return when (provider) {
140+ " google" -> Provider .GOOGLE
141+ " facebook" -> Provider .FACEBOOK
142+ " reddit" -> Provider .REDDIT
143+ " discord" -> Provider .DISCORD
144+ " twitch" -> Provider .TWITCH
145+ " apple" -> Provider .APPLE
146+ " line" -> Provider .LINE
147+ " github" -> Provider .GITHUB
148+ " kakao" -> Provider .KAKAO
149+ " linkedin" -> Provider .LINKEDIN
150+ " twitter" -> Provider .TWITTER
151+ " weibo" -> Provider .WEIBO
152+ " wechat" -> Provider .WECHAT
153+ " email_passwordless" -> Provider .EMAIL_PASSWORDLESS
154+
155+ else -> Provider .GOOGLE
156+ }
157+ }
141158
142159}
143160
0 commit comments