package dev.inmo.kmppscriptbuilder.desktop.views import androidx.compose.runtime.* import dev.inmo.kmppscriptbuilder.core.models.Developer import dev.inmo.kmppscriptbuilder.desktop.utils.CommonTextField class DeveloperState( id: String = "", name: String = "", eMail: String = "" ) { var id: String by mutableStateOf(id) var name: String by mutableStateOf(name) var eMail: String by mutableStateOf(eMail) fun toDeveloper() = Developer(id, name, eMail) } private fun Developer.toDeveloperState() = DeveloperState(id, name, eMail) class DevelopersView : ListView("Developers info") { var developers: List get() = itemsList.map { it.toDeveloper() } set(value) { itemsList.clear() itemsList.addAll( value.map { it.toDeveloperState() } ) } override val addItemText: String = "Add developer" override val removeItemText: String = "Remove developer" override fun createItem(): DeveloperState = DeveloperState() @Composable override fun buildView(item: DeveloperState) { CommonTextField( item.id, "Developer username" ) { item.id = it } CommonTextField( item.name, "Developer name" ) { item.name = it } CommonTextField( item.eMail, "Developer E-Mail" ) { item.eMail = it } } }