diff --git a/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/IconPackConversionState.kt b/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/IconPackConversionState.kt index 16fcbeb1..26a205de 100644 --- a/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/IconPackConversionState.kt +++ b/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/IconPackConversionState.kt @@ -2,6 +2,7 @@ package io.github.composegears.valkyrie.ui.screen.mode.iconpack.conversion import io.github.composegears.valkyrie.ir.IrImageVector import io.github.composegears.valkyrie.parser.svgxml.util.IconType +import io.github.composegears.valkyrie.util.extension.Uuid sealed interface IconPackConversionState { @@ -20,11 +21,16 @@ sealed interface IconPackConversionState { } sealed interface BatchIcon { + val id: String val iconName: IconName - data class Broken(override val iconName: IconName) : BatchIcon + data class Broken( + override val id: String = Uuid.random(), + override val iconName: IconName, + ) : BatchIcon data class Valid( + override val id: String = Uuid.random(), override val iconName: IconName, val iconPack: IconPack, val iconType: IconType, diff --git a/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/batch/BatchProcessingStateUi.kt b/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/batch/BatchProcessingStateUi.kt index 161923ad..a7cd8397 100644 --- a/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/batch/BatchProcessingStateUi.kt +++ b/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/ui/screen/mode/iconpack/conversion/ui/batch/BatchProcessingStateUi.kt @@ -74,7 +74,7 @@ fun BatchProcessingStateUi( horizontalArrangement = Arrangement.spacedBy(8.dp), verticalArrangement = Arrangement.spacedBy(8.dp), ) { - items(items = state.icons, key = { it.iconName }) { batchIcon -> + items(items = state.icons, key = { it.id }) { batchIcon -> when (batchIcon) { is BatchIcon.Broken -> BrokenIconItem( broken = batchIcon, diff --git a/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/util/extension/Uuid.kt b/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/util/extension/Uuid.kt new file mode 100644 index 00000000..1b87293c --- /dev/null +++ b/idea-plugin/src/main/kotlin/io/github/composegears/valkyrie/util/extension/Uuid.kt @@ -0,0 +1,10 @@ +package io.github.composegears.valkyrie.util.extension + +import kotlin.uuid.ExperimentalUuidApi +import kotlin.uuid.Uuid + +object Uuid { + + @OptIn(ExperimentalUuidApi::class) + fun random() = Uuid.random().toString() +}