Load icons off main

pull/3390/head
Alex Baker 9 months ago
parent 1608aaeb54
commit 886e848172

@ -6,11 +6,14 @@ import androidx.compose.material.icons.Icons
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.runtime.getValue
import androidx.compose.runtime.produceState
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.unit.dp
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.tasks.compose.pickers.label
@Composable
@ -20,13 +23,18 @@ fun TasksIcon(
tint: Color = MaterialTheme.colorScheme.onSurface,
) {
Box(modifier = modifier.size(24.dp)) {
Icon(
imageVector = remember (label) {
val loadedImageVector by produceState<ImageVector?>(initialValue = null, label) {
value = withContext(Dispatchers.IO) {
imageVectorByName(label)
} ?: return@Box,
contentDescription = label,
tint = tint,
)
}
}
loadedImageVector?.let { vector ->
Icon(
imageVector = vector,
contentDescription = label,
tint = tint,
)
}
}
}

Loading…
Cancel
Save