package uz.myid.cmp import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.safeDrawingPadding import androidx.compose.material3.ElevatedButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.ImageBitmap import androidx.compose.ui.unit.dp import uz.myid.cmp.theme.AppTheme @Composable internal fun App() { AppTheme { var resultMessage by remember { mutableStateOf(null) } var resultBitmap by remember { mutableStateOf(null) } val myidManager = rememberMyIdManager( onCompleted = { code, imageBitmap -> resultMessage = code resultBitmap = imageBitmap }, onFailed = { message -> resultMessage = message }, onCancelled = { resultMessage = "User exited" }, ) Column( modifier = Modifier .fillMaxSize() .safeDrawingPadding() .padding(20.dp), verticalArrangement = Arrangement.spacedBy(20.dp) ) { ElevatedButton( onClick = { myidManager.launch( MyIdData( clientId = MyIdCredentials.CLIENT_ID, clientHash = MyIdCredentials.CLIENT_HASH, clientHashId = MyIdCredentials.CLIENT_HASH_ID, ) ) }, modifier = Modifier.align(Alignment.CenterHorizontally) ) { Text( text = "Start MyID", style = MaterialTheme.typography.titleMedium, ) } resultMessage?.let { Text( text = it, style = MaterialTheme.typography.bodyMedium, ) } resultBitmap?.let { Image( bitmap = it, contentDescription = "Face image", ) } } } }