KotlinPublicationScriptsBui.../core/src/jvmMain/kotlin/dev/inmo/kmppscriptbuilder/core/ui/ProjectTypeDrawer.kt

41 lines
1.4 KiB
Kotlin
Raw Normal View History

2022-11-15 13:55:54 +00:00
package dev.inmo.kmppscriptbuilder.core.ui
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding
import androidx.compose.material.Button
import androidx.compose.material.OutlinedButton
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import dev.inmo.kmppscriptbuilder.core.models.JSProjectType
import dev.inmo.kmppscriptbuilder.core.models.JVMProjectType
import dev.inmo.kmppscriptbuilder.core.models.MultiplatformProjectType
import dev.inmo.kmppscriptbuilder.core.models.ProjectType
import dev.inmo.kmppscriptbuilder.core.ui.utils.Drawer
2022-11-15 18:56:24 +00:00
actual class ProjectTypeDrawer(
private val projectTypeView: ProjectTypeView
) : Drawer<ProjectType> {
2022-11-15 13:55:54 +00:00
@Composable
2022-11-15 18:56:24 +00:00
override fun ProjectType.draw() {
if (projectTypeView.projectType == this) {
2022-11-15 13:55:54 +00:00
Button({}, Modifier.padding(8.dp)) {
2022-11-15 18:56:24 +00:00
Text(name)
2022-11-15 13:55:54 +00:00
}
} else {
OutlinedButton(
{
2022-11-15 18:56:24 +00:00
projectTypeView.projectType = this
2022-11-15 13:55:54 +00:00
},
Modifier.padding(8.dp)
) {
2022-11-15 18:56:24 +00:00
Text(name)
2022-11-15 13:55:54 +00:00
}
}
}
}
2022-11-15 18:56:24 +00:00
actual fun ProjectTypeDrawerWithView(view: ProjectTypeView): ProjectTypeDrawer = ProjectTypeDrawer(projectTypeView = view)