Skip to content

Commit

Permalink
[web] Remove classes builder version from API
Browse files Browse the repository at this point in the history
  • Loading branch information
Schahen committed May 28, 2021
1 parent bf4f705 commit 42ad7c7
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,6 @@ class AttrsBuilder<TTag : Tag> : EventsListenerBuilder() {
styleBuilder.apply(builder)
}

inline fun classes(builder: ClassesAttrBuilder.() -> Unit) =
prop(setClassList, ClassesAttrBuilder().apply(builder).asList().toTypedArray())

fun classes(vararg classes: String) = prop(setClassList, classes)

fun id(value: String) = attr(ID, value)
Expand Down Expand Up @@ -70,17 +67,6 @@ class AttrsBuilder<TTag : Tag> : EventsListenerBuilder() {
}
}

class ClassesAttrBuilder {
private val classes = mutableListOf<String>()

operator fun String.unaryPlus() {
classes.add(this)
}

fun asList(): List<String> = classes
fun asString(): String = classes.joinToString(" ")
}

val setClassList: (HTMLElement, Array<out String>) -> Unit = { e, classList ->
e.classList.add(*classList)
}
47 changes: 4 additions & 43 deletions web/core/src/jsTest/kotlin/elements/AttributesTests.kt
Original file line number Diff line number Diff line change
Expand Up @@ -99,52 +99,13 @@ class AttributesTests {
}

@Test
fun multipleClassesBuildersCallsAddMoreClasses() = runTest {
composition {
Div({
classes("a", "b")
classes {
+"c"
+"d"
}
}) {}
}

val div = root.firstChild as HTMLDivElement
assertEquals(
expected = "a b c d",
actual = div.getAttribute("class")
)
}


@Test
fun multipleClassesBuildersCallsAddMoreClasses2() = runTest {
composition {
Div({
classes {
+"c"
+"d"
}
classes("a", "b")
}) {}
}

val div = root.firstChild as HTMLDivElement
assertEquals(
expected = "c d a b",
actual = div.getAttribute("class")
)
}

@Test
fun multipleClassesBuildersCallsWithConditionsAddCorrectClasses() = runTest {
fun multipleClassesCallsWithConditionsAddCorrectClasses() = runTest {
val addClassD = mutableStateOf(true)
composition {
Div({
classes {
+"c"
if (addClassD.value) +"d"
classes("c")
if (addClassD.value) {
classes("d")
}
classes("a", "b")
}) {}
Expand Down

0 comments on commit 42ad7c7

Please sign in to comment.