kjsuikit/src/jsMain/kotlin/dev/inmo/jsuikit/UIKitAttributeValueBuilder.kt

34 lines
892 B
Kotlin
Raw Normal View History

2022-01-12 10:27:49 +00:00
package dev.inmo.jsuikit
2021-12-22 08:38:12 +00:00
2022-01-12 13:58:52 +00:00
import dev.inmo.jsuikit.modifiers.AttributeValue
import dev.inmo.jsuikit.utils.AttributeBuilder
import dev.inmo.jsuikit.utils.buildAttribute
import org.jetbrains.compose.web.attributes.AttrsScope
2021-12-22 08:38:12 +00:00
@Deprecated("Will be removed soon")
2021-12-22 08:38:12 +00:00
class UIKitAttributeValueBuilder {
private val attrs = mutableListOf<Pair<String, String>>()
infix fun String.to(other: String?) {
other ?.let {
attrs.add(Pair(this, other))
}
}
infix fun String.to(other: AttributeValue?) {
2021-12-22 08:38:12 +00:00
this to other ?.name
}
fun build(): String = attrs.joinToString(";") { (k, v) -> "$k: $v" }
}
fun AttrsScope<*>.buildAndAddAttribute(
2021-12-22 08:38:12 +00:00
attributeName: String,
skipNullValues: Boolean = true,
block: AttributeBuilder.() -> Unit
2021-12-22 08:38:12 +00:00
) {
buildAttribute(attributeName, skipNullValues, block).let {
attr(it.first, it.second)
}
2021-12-22 08:38:12 +00:00
}