I'm new to the Jetpack Compose
, and I'm trying to implement a function inside a button but it gives the following error:
@Composable invocations can only happen from the context of a @Composable function in mContext.startActivity(Intent(mContext, MainScreen()::class.java))
@Composable
fun AdminAuth() {
Column(
modifier = Modifier
.fillMaxSize()
.padding(20.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
var password by rememberSaveable { mutableStateOf("") }
var passawordVisibility by remember { mutableStateOf(false) }
val icon = if (passawordVisibility)
painterResource(id = R.drawable.ic_visibility)
else
painterResource(id = R.drawable.ic_visibility_off)
Text(text = "Insira a senha do usuário Master:", fontSize = 15.sp)
OutlinedTextField(
value = password,
onValueChange = {
password = it
},
placeholder = { Text(text = "Senha") },
label = { Text(text = "Senha") },
trailingIcon = {
IconButton(onClick = {
passawordVisibility = !passawordVisibility
}) {
Icon(
painter = icon,
contentDescription = "Ícone de visibilidade"
)
}
},
keyboardOptions = KeyboardOptions(
keyboardType = KeyboardType.Password
),
visualTransformation = if (passawordVisibility)
VisualTransformation.None
else PasswordVisualTransformation()
)
val mContext = LocalContext.current
OutlinedButton(
onClick = {
if (password.equals("Abac@xi123")) {
mContext.startActivity(Intent(mContext, MainScreen()::class.java))
}
},
modifier = Modifier
.fillMaxWidth()
.padding(35.dp),
) {
Text(text = "Entrar")
}
}
}
@Composable
@Preview
fun AdminAuthPreview() {
Column(
modifier = Modifier
.fillMaxSize()
.background(Color.White),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
AdminAuth()
}
}