@Composable fun DrawVectorToggle() { var isOpen by +state { false } Clickable(onClick = { isOpen = !isOpen }) { if (isOpen) { Container(expanded = true) { Surface(color = Color.LightGray, shape = RoundedCornerShape(4.dp)) { Row { Text(modifier = Spacing(8.dp), text = "OPENED") Container(width = 32.dp, height = 32.dp) { val vector = +vectorResource(R.drawable.ic_arrow_drop_up) DrawVector(vectorImage = vector) } } } } } else { Container(expanded = true) { Surface(color = Color.LightGray, shape = RoundedCornerShape(4.dp)) { Row { Text(modifier = Spacing(8.dp), text = "CLOSED") Container(width = 32.dp, height = 32.dp) { val vector = +vectorResource(R.drawable.ic_arrow_drop_down) DrawVector(vectorImage = vector) } } } } } } } @Composable fun DrawVectorToggleDRY() { var isOpen by +state { false } val vector = if (isOpen) +vectorResource(R.drawable.ic_arrow_drop_up) else +vectorResource(R.drawable.ic_arrow_drop_down) Clickable(onClick = { isOpen = !isOpen }) { Container(expanded = true) { Surface(color = Color.LightGray, shape = RoundedCornerShape(4.dp)) { Row { Text(modifier = Spacing(8.dp), text = "CLOSED") Container(width = 32.dp, height = 32.dp) { DrawVector(vectorImage = vector) } } } } } }