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
|
2022-11-15 18:56:24 +00:00
|
|
|
import androidx.compose.runtime.mutableStateListOf
|
2022-11-15 13:55:54 +00:00
|
|
|
import androidx.compose.runtime.mutableStateOf
|
|
|
|
import androidx.compose.runtime.setValue
|
2022-11-15 12:53:59 +00:00
|
|
|
import dev.inmo.kmppscriptbuilder.core.models.MavenPublishingRepository
|
2022-11-15 18:56:24 +00:00
|
|
|
import dev.inmo.kmppscriptbuilder.core.ui.utils.CommonTextField
|
2022-11-15 13:55:54 +00:00
|
|
|
import dev.inmo.kmppscriptbuilder.core.ui.utils.Drawer
|
2022-11-15 12:53:59 +00:00
|
|
|
|
|
|
|
class RepositoryState(
|
|
|
|
name: String = "",
|
|
|
|
url: String = ""
|
|
|
|
) {
|
|
|
|
var name: String by mutableStateOf(name)
|
|
|
|
var url: String by mutableStateOf(url)
|
|
|
|
|
|
|
|
fun toRepository() = MavenPublishingRepository(name, url)
|
|
|
|
}
|
|
|
|
|
|
|
|
private fun MavenPublishingRepository.toRepositoryState() = RepositoryState(name, url)
|
|
|
|
|
|
|
|
class RepositoriesView : ListView<RepositoryState>("Repositories info") {
|
|
|
|
var repositories: List<MavenPublishingRepository>
|
|
|
|
get() = itemsList.map { it.toRepository() }
|
|
|
|
set(value) {
|
|
|
|
itemsList.clear()
|
|
|
|
itemsList.addAll(
|
|
|
|
value.map { it.toRepositoryState() }
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
override val addItemText: String = "Add repository"
|
|
|
|
override val removeItemText: String = "Remove repository"
|
|
|
|
|
|
|
|
override fun createItem(): RepositoryState = RepositoryState()
|
2022-11-15 13:55:54 +00:00
|
|
|
|
2022-11-15 12:53:59 +00:00
|
|
|
@Composable
|
|
|
|
override fun buildView(item: RepositoryState) {
|
2022-11-15 18:56:24 +00:00
|
|
|
CommonTextField(
|
|
|
|
item.name,
|
|
|
|
"Repository name",
|
|
|
|
) { item.name = it }
|
|
|
|
CommonTextField(
|
|
|
|
item.url,
|
|
|
|
"Repository url",
|
|
|
|
) { item.url = it }
|
2022-11-15 12:53:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|