Scan to open on your phone
Point a camera at the QR code - it opens this exact paste, no app needed.
https://codepastes.com/zzgsck951rhxs65ysin-tituloPlain Text
package com.negocio.desinfectantes.ui.productos
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Add
import androidx.compose.material.icons.filled.ChevronRight
import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material.icons.filled.WaterDrop
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import com.negocio.desinfectantes.data.AromaEntity
private val NavyAromas = Color(0xFF101D35)
private val CardBlueAromas = Color(0xFF1B2D4A)
private val AccentBlueAromas = Color(0xFF2585F5)
private val SoftBlueAromas = Color(0xFFA9BEDB)
@Composable
fun AromasScreen(
nombreProducto: String,
aromas: List<AromaEntity>,
onVolver: () -> Unit,
onAgregarAroma: () -> Unit,
onSeleccionarAroma: (AromaEntity) -> Unit
) {
Column(
modifier = Modifier
.fillMaxSize()
.padding(20.dp)
) {
Row(
verticalAlignment = Alignment.CenterVertically
) {
IconButton(onClick = onVolver) {
Icon(
imageVector = Icons.Default.ArrowBack,
contentDescription = "Volver",
tint = SoftBlueAromas
)
}
Text(
text = nombreProducto,
color = Color.White,
style = MaterialTheme.typography.headlineSmall
)
}
Spacer(modifier = Modifier.height(24.dp))
Text(
text = "AROMAS DEL PRODUCTO",
color = SoftBlueAromas,
style = MaterialTheme.typography.labelMedium
)
Spacer(modifier = Modifier.height(16.dp))
Button(
onClick = onAgregarAroma,
modifier = Modifier
.fillMaxWidth()
.height(54.dp),
shape = RoundedCornerShape(14.dp),
colors = ButtonDefaults.buttonColors(
containerColor = AccentBlueAromas
)
) {
Icon(Icons.Default.Add, contentDescription = null)
Spacer(modifier = Modifier.width(8.dp))
Text("Agregar aroma")
}
Spacer(modifier = Modifier.height(20.dp))
if (aromas.isEmpty()) {
Card(
modifier = Modifier.fillMaxWidth(),
colors = CardDefaults.cardColors(
containerColor = CardBlueAromas
),
shape = RoundedCornerShape(18.dp)
) {
Column(
modifier = Modifier
.fillMaxWidth()
.padding(24.dp),
horizontalAlignment = Alignment.CenterHorizontally
) {
Text("💧", style = MaterialTheme.typography.displayMedium)
Spacer(modifier = Modifier.height(12.dp))
Text(
"Todavía no hay aromas",
color = Color.White,
style = MaterialTheme.typography.titleMedium
)
Text(
"Agrega el primer aroma de este producto.",
color = SoftBlueAromas
)
}
}
} else {
LazyColumn(
verticalArrangement = Arrangement.spacedBy(12.dp)
) {
items(aromas) { aroma ->
Card(
onClick = { onSeleccionarAroma(aroma) },
modifier = Modifier.fillMaxWidth(),
colors = CardDefaults.cardColors(
containerColor = CardBlueAromas
),
shape = RoundedCornerShape(18.dp)
) {
Row(
modifier = Modifier
.fillMaxWidth()
.padding(18.dp),
verticalAlignment = Alignment.CenterVertically
) {
Icon(
imageVector = Icons.Default.WaterDrop,
contentDescription = null,
tint = AccentBlueAromas,
modifier = Modifier.size(32.dp)
)
Spacer(modifier = Modifier.width(14.dp))
Text(
text = aroma.nombre,
color = Color.White,
style = MaterialTheme.typography.titleMedium,
modifier = Modifier.weight(1f)
)
Icon(
imageVector = Icons.Default.ChevronRight,
contentDescription = null,
tint = SoftBlueAromas
)
}
}
}
}
}
}
}
5,545 chars · codepastes.com