KotlinPublicationScriptsBui.../core/src/commonMain/kotlin/dev/inmo/kmppscriptbuilder/core/ui/ListView.kt

27 lines
742 B
Kotlin
Raw Normal View History

2022-11-15 12:53:59 +00:00
package dev.inmo.kmppscriptbuilder.core.ui
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateListOf
import dev.inmo.kmppscriptbuilder.core.ui.utils.Drawer
expect class ListViewDrawer<T>() : Drawer<ListView<T>>
2022-11-15 13:55:54 +00:00
abstract class ListView<T>(title: String) : VerticalView(title) {
2022-11-15 12:53:59 +00:00
internal val itemsList = mutableStateListOf<T>()
internal open val addItemText: String = "Add"
internal open val removeItemText: String = "Remove"
internal abstract fun createItem(): T
@Composable
internal abstract fun buildView(item: T)
protected val drawer = ListViewDrawer<T>()
2022-11-15 18:56:24 +00:00
override val content: @Composable () -> Unit = {
2022-11-15 13:55:54 +00:00
with(drawer) {
draw()
2022-11-15 12:53:59 +00:00
}
}
}