package uz.myid.cmp import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.graphics.ImageBitmap import cocoapods.MyIdSDK.MyIdBuildModeDEBUG import cocoapods.MyIdSDK.MyIdClient import cocoapods.MyIdSDK.MyIdClientDelegateProtocol import cocoapods.MyIdSDK.MyIdConfig import cocoapods.MyIdSDK.MyIdException import cocoapods.MyIdSDK.MyIdResult import kotlinx.cinterop.ExperimentalForeignApi import platform.darwin.NSObject @OptIn(ExperimentalForeignApi::class) @Composable actual fun rememberMyIdManager( onCompleted: (String?, ImageBitmap?) -> Unit, onFailed: (String?) -> Unit, onCancelled: () -> Unit, ): MyIdManager { return remember { MyIdManager { data -> val config = MyIdConfig() config.setClientId(data.clientId) config.setClientHash(data.clientHash) config.setClientHashId(data.clientHashId) config.setBuildMode(MyIdBuildModeDEBUG) MyIdClient.startWithConfig( config = config, withDelegate = object : MyIdClientDelegateProtocol, NSObject() { override fun onSuccessWithResult(result: MyIdResult) { onCompleted( result.code(), null, ) } override fun onErrorWithException(exception: MyIdException) { onFailed(exception.message()) } override fun onUserExited() { onCancelled() } } ) } } }