66 lines
2.4 KiB
Kotlin
66 lines
2.4 KiB
Kotlin
package dev.inmo.kmppscriptbuilder.core.ui
|
|
|
|
import androidx.compose.foundation.clickable
|
|
import androidx.compose.foundation.layout.Box
|
|
import androidx.compose.foundation.layout.Column
|
|
import androidx.compose.foundation.layout.fillMaxSize
|
|
import androidx.compose.foundation.layout.padding
|
|
import androidx.compose.material.Divider
|
|
import androidx.compose.material.Text
|
|
import androidx.compose.material.TopAppBar
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.unit.dp
|
|
import dev.inmo.kmppscriptbuilder.core.ui.utils.CommonText
|
|
import dev.inmo.kmppscriptbuilder.core.ui.utils.Drawer
|
|
import dev.inmo.kmppscriptbuilder.core.utils.exportGradle
|
|
import dev.inmo.kmppscriptbuilder.core.utils.loadConfig
|
|
import dev.inmo.kmppscriptbuilder.core.utils.saveAs
|
|
import dev.inmo.kmppscriptbuilder.core.utils.saveConfig
|
|
|
|
actual object BuilderViewDrawer : Drawer<BuilderView> {
|
|
override fun BuilderView.draw() {
|
|
Box(Modifier.fillMaxSize()) {
|
|
Column() {
|
|
TopAppBar(
|
|
@Composable {
|
|
Text("Kotlin publication scripts builder", Modifier.clickable { println(config) })
|
|
},
|
|
actions = {
|
|
createIcon("Open file", "images/open_file.svg") {
|
|
loadConfig()?.also {
|
|
config = it
|
|
}
|
|
}
|
|
|
|
if (saveAvailableState) {
|
|
createIcon("Save", "images/save_file.svg") {
|
|
saveConfig(config)
|
|
}
|
|
}
|
|
|
|
if (saveAvailableState) {
|
|
createIcon("Export Gradle script", "images/export_gradle.svg") {
|
|
exportGradle(config)
|
|
}
|
|
}
|
|
|
|
createIcon("Save as", "images/save_as.svg") {
|
|
if (saveAs(config)) {
|
|
saveAvailableState = true
|
|
}
|
|
}
|
|
}
|
|
)
|
|
Column(Modifier.padding(8.dp)) {
|
|
projectTypeView.init()
|
|
Divider()
|
|
licensesView.init()
|
|
Divider()
|
|
mavenInfoView.init()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|