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

35 lines
1.2 KiB
Kotlin
Raw Normal View History

2022-11-15 12:53:59 +00:00
package dev.inmo.kmppscriptbuilder.core.ui
2022-11-15 13:55:54 +00:00
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
2022-11-15 18:56:24 +00:00
import dev.inmo.kmppscriptbuilder.core.models.JSProjectType
import dev.inmo.kmppscriptbuilder.core.models.JVMProjectType
2022-11-15 13:55:54 +00:00
import dev.inmo.kmppscriptbuilder.core.models.MultiplatformProjectType
import dev.inmo.kmppscriptbuilder.core.models.ProjectType
2022-11-15 18:56:24 +00:00
import dev.inmo.kmppscriptbuilder.core.ui.utils.ButtonsPanel
2022-11-15 13:55:54 +00:00
import dev.inmo.kmppscriptbuilder.core.ui.utils.Drawer
2022-11-15 18:56:24 +00:00
expect class ProjectTypeDrawer : Drawer<ProjectType>
expect fun ProjectTypeDrawerWithView(view: ProjectTypeView): ProjectTypeDrawer
2022-11-15 12:53:59 +00:00
class ProjectTypeView : VerticalView("Project type") {
var projectType by mutableStateOf<ProjectType>(MultiplatformProjectType)
2022-11-15 18:56:24 +00:00
private val typeDrawer = ProjectTypeDrawerWithView(this)
2022-11-15 12:53:59 +00:00
2022-11-15 13:55:54 +00:00
override val content: @Composable () -> Unit = {
2022-11-15 18:56:24 +00:00
ButtonsPanel(
MultiplatformProjectType,
JVMProjectType,
JSProjectType
) {
with(typeDrawer) {
with (it) {
draw()
}
}
}
2022-11-15 12:53:59 +00:00
}
}