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
|
|
|
}
|
|
|
|
}
|