2.7 KiB
Changelog
[0.0.0-web-dev-14] - 01'June 2021
[0.0.0-web-dev-13] - 25'May 2021
Changes in build:
0.0.0-web-dev-13 is built against Kotlin 1.5.0. We've also split web compose dependency into two: one for using DOM entities and one for using Widget entities.
We've moved all Compose for Web logic (apart from runtime) to the compose-jb repository. At this stage of development it makes it easier to experiment, build and, most importantly to contribute to the project.
We have artefacts for the JS target into two, the aliases which gradle compose plugin provides for this artefacts have changed accordingly. Here's what've changed:
0.0.0-web-dev-12
val jsMain by getting {
dependencies {
implementation(compose.web.web)
implementation(compose.runtime)
}
}
0.0.0-web-dev-13
val jsMain by getting {
dependencies {
// add this dependency if you want to use the common API widgets
// full example here - https://github.com/JetBrains/compose-jb/tree/1f43be9c912a681a05008117574ecc1473226ffe/examples/falling_balls_with_web
implementation(compose.web.widgets)
// add this dependency if you want to use the DOM API
// full example here - https://github.com/JetBrains/compose-jb/tree/1f43be9c912a681a05008117574ecc1473226ffe/examples/web_landing
implementation(compose.web.core)
implementation(compose.runtime)
}
}
Changes in code:
In 0.0.0-web-dev-13 each classes
invocation will add class names instead of recreating classList completely.
To illustrate the difference, consider following code:
Div(attrs = {
classes("a", "b")
classes("c", "d")
}) {}
This code will create following DOM layout:
0.0.0-web-dev-12 | 0.0.0-web-dev-13 |
---|---|
<div class="c d"> |
<div class="a b c d"> |
Throughout the pre-alpha period in our quest for most convenient API we are not promising any version-to-version back compatibility. In this particular case, however, though this change is, strictly speaking, breaking back compatibility, it's very unlikely one was relying such behavior. Essentially, in 0.0.0-web-dev-12 it was possible to have class deletion in composition. We've failed to find any idiomatic scenarios where one will need to delete class name. Please, feel free to post an issue if you still believe that this scenario needs to be supported as well.