Skip to content

Commit d4de7c3

Browse files
committed
Extract Modifier.toAttrs
1 parent 83962de commit d4de7c3

File tree

20 files changed

+48
-41
lines changed

20 files changed

+48
-41
lines changed

compose-multiplatform-common/src/jsMain/kotlin/com/huanshankeji/compose/foundation/layout/Spacer.js.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ package com.huanshankeji.compose.foundation.layout
22

33
import androidx.compose.runtime.Composable
44
import com.huanshankeji.compose.ui.Modifier
5-
import com.varabyte.kobweb.compose.ui.toAttrs
5+
import com.huanshankeji.compose.ui.toAttrs
66
import org.jetbrains.compose.web.dom.Div
77

88
@Composable
99
actual fun Spacer(modifier: Modifier) {
1010
AddKobwebComposeStyleSheet()
11-
Div(attrs = modifier.platformModifier.toAttrs { classes("kobweb-spacer") })
11+
Div(attrs = modifier.toAttrs { classes("kobweb-spacer") })
1212
//com.varabyte.kobweb.compose.foundation.layout.Spacer() // use this when `Modifier` is supported
1313
}

compose-multiplatform-common/src/jsMain/kotlin/com/huanshankeji/compose/foundation/text/BasicText.js.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.huanshankeji.compose.foundation.text
22

33
import androidx.compose.runtime.Composable
44
import com.huanshankeji.compose.ui.Modifier
5-
import com.varabyte.kobweb.compose.ui.toAttrs
5+
import com.huanshankeji.compose.ui.toAttrs
66
import org.jetbrains.compose.web.dom.Span
77
import org.jetbrains.compose.web.dom.Text
88

@@ -17,4 +17,4 @@ actual fun BasicText(text: String) =
1717

1818
@Composable
1919
actual fun BasicText(text: String, modifier: Modifier) =
20-
Span(modifier.platformModifier.toAttrs()) { Text(text) }
20+
Span(modifier.toAttrs()) { Text(text) }

compose-multiplatform-common/src/jsMain/kotlin/com/huanshankeji/compose/ui/Modifier.js.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package com.huanshankeji.compose.ui
22

3+
import com.varabyte.kobweb.compose.ui.toAttrs
4+
import org.jetbrains.compose.web.attributes.AttrsScope
5+
import org.w3c.dom.Element
36
import com.varabyte.kobweb.compose.ui.Modifier as PlatformModifier
47

58
typealias PlatformModifier = PlatformModifier
@@ -34,3 +37,6 @@ actual interface Modifier {
3437

3538
fun PlatformModifier.toCommonModifier() =
3639
Modifier.Impl(this)
40+
41+
fun <A : AttrsScope<Element>> Modifier.toAttrs(finalHandler: (A.() -> Unit)? = null): A.() -> Unit =
42+
platformModifier.toAttrs(finalHandler)

compose-multiplatform-material2/src/jsMain/kotlin/com/huanshankeji/compose/material2/Button.js.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import com.huanshankeji.compose.foundation.layout.RowScope
66
import com.huanshankeji.compose.material2.ext.ButtonType
77
import com.huanshankeji.compose.material2.ext.toMDCButtonType
88
import com.huanshankeji.compose.ui.Modifier
9-
import com.varabyte.kobweb.compose.ui.toAttrs
9+
import com.huanshankeji.compose.ui.toAttrs
1010
import dev.petuska.kmdc.button.MDCButton
1111
import dev.petuska.kmdc.button.MDCButtonScope
1212
import org.w3c.dom.HTMLButtonElement
@@ -20,7 +20,7 @@ internal fun CommonButton(
2020
) =
2121
MDCButton(
2222
buttonType.toMDCButtonType(),
23-
attrs = modifier.platformModifier.toAttrs {
23+
attrs = modifier.toAttrs {
2424
onClick { onClick() }
2525
},
2626
content = content

compose-multiplatform-material2/src/jsMain/kotlin/com/huanshankeji/compose/material2/Checkbox.js.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.huanshankeji.compose.material2
22

33
import androidx.compose.runtime.Composable
44
import com.huanshankeji.compose.ui.Modifier
5-
import com.varabyte.kobweb.compose.ui.toAttrs
5+
import com.huanshankeji.compose.ui.toAttrs
66
import dev.petuska.kmdc.checkbox.MDCCheckbox
77

88
// https://github.com/mpetuska/kmdc/blob/master/sandbox/src/jsMain/showcases/MDCCheckbox.kt
@@ -13,6 +13,6 @@ actual fun Checkbox(
1313
modifier: Modifier,
1414
enabled: Boolean
1515
) =
16-
MDCCheckbox(checked, !enabled, attrs = modifier.platformModifier.toAttrs {
16+
MDCCheckbox(checked, !enabled, attrs = modifier.toAttrs {
1717
onCheckedChange?.let { onInput { it(!checked) } }
1818
})

compose-multiplatform-material2/src/jsMain/kotlin/com/huanshankeji/compose/material2/Divider.js.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ package com.huanshankeji.compose.material2
22

33
import androidx.compose.runtime.Composable
44
import com.huanshankeji.compose.ui.Modifier
5-
import com.varabyte.kobweb.compose.ui.toAttrs
5+
import com.huanshankeji.compose.ui.toAttrs
66
import org.jetbrains.compose.web.dom.Hr
77

88
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/hr
99
// see: https://github.com/varabyte/kobweb/blob/main/frontend/silk-widgets/src/jsMain/kotlin/com/varabyte/kobweb/silk/components/layout/Divider.kt
1010
// see: https://github.com/mpetuska/kmdc/blob/master/katalog/katalog-runtime/src/jsMain/kotlin/layout/Divider.kt
1111
@Composable
1212
actual fun Divider(modifier: Modifier) =
13-
Hr(modifier.platformModifier.toAttrs())
13+
Hr(modifier.toAttrs())

compose-multiplatform-material2/src/jsMain/kotlin/com/huanshankeji/compose/material2/Icon.js.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ import com.huanshankeji.compose.contentDescription
55
import com.huanshankeji.compose.material.icons.Icon
66
import com.huanshankeji.compose.material2.icons.toMDCIcon
77
import com.huanshankeji.compose.ui.Modifier
8-
import com.varabyte.kobweb.compose.ui.toAttrs
8+
import com.huanshankeji.compose.ui.toAttrs
99
import dev.petuska.kmdcx.icons.MDCIconSpan
1010

1111
/**
1212
* There is often a better alternative of adding the CSS rule to the parent element to using this composable directly.
1313
*/
1414
@Composable
1515
actual fun Icon(icon: Icon, contentDescription: String?, modifier: Modifier) =
16-
MDCIconSpan(icon.toMDCIcon(), attrs = modifier.platformModifier.toAttrs {
16+
MDCIconSpan(icon.toMDCIcon(), attrs = modifier.toAttrs {
1717
contentDescription(contentDescription)
1818
})

compose-multiplatform-material2/src/jsMain/kotlin/com/huanshankeji/compose/material2/IconButton.js.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.huanshankeji.compose.material2
22

33
import androidx.compose.runtime.Composable
44
import com.huanshankeji.compose.ui.Modifier
5-
import com.varabyte.kobweb.compose.ui.toAttrs
5+
import com.huanshankeji.compose.ui.toAttrs
66
import dev.petuska.kmdc.icon.button.MDCIconButton
77

88
@Composable
@@ -11,7 +11,7 @@ actual fun IconButton(
1111
modifier: Modifier,
1212
content: @Composable () -> Unit
1313
) =
14-
MDCIconButton(attrs = modifier.platformModifier.toAttrs {
14+
MDCIconButton(attrs = modifier.toAttrs {
1515
onClick { onClick() }
1616
}) { content() }
1717

compose-multiplatform-material2/src/jsMain/kotlin/com/huanshankeji/compose/material2/Switch.js.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.huanshankeji.compose.material2
22

33
import androidx.compose.runtime.Composable
44
import com.huanshankeji.compose.ui.Modifier
5-
import com.varabyte.kobweb.compose.ui.toAttrs
5+
import com.huanshankeji.compose.ui.toAttrs
66
import dev.petuska.kmdc.switch.MDCSwitch
77
import org.jetbrains.compose.web.attributes.disabled
88

@@ -16,7 +16,7 @@ internal fun CommonSwitch(
1616
modifier: Modifier,
1717
enabled: Boolean
1818
) =
19-
MDCSwitch(checked, label, modifier.platformModifier.toAttrs {
19+
MDCSwitch(checked, label, modifier.toAttrs {
2020
if (!enabled) disabled()
2121
onCheckedChange?.let { onClick { it(!checked) } }
2222
})

compose-multiplatform-material2/src/jsMain/kotlin/com/huanshankeji/compose/material2/ext/Radio.js.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@ package com.huanshankeji.compose.material2.ext
22

33
import androidx.compose.runtime.Composable
44
import com.huanshankeji.compose.ui.Modifier
5-
import com.varabyte.kobweb.compose.ui.toAttrs
5+
import com.huanshankeji.compose.ui.toAttrs
66
import dev.petuska.kmdc.form.field.MDCFormField
77
import dev.petuska.kmdc.radio.MDCRadio
88

99
// see: https://github.com/mpetuska/kmdc/blob/master/sandbox/src/jsMain/showcases/MDCRadio.kt
1010

1111
@Composable
1212
actual fun RadioRow(selected: Boolean, label: String, onClick: () -> Unit, modifier: Modifier, enabled: Boolean) =
13-
MDCRadio(selected, disabled = !enabled, label = label, attrs = modifier.platformModifier.toAttrs {
13+
MDCRadio(selected, disabled = !enabled, label = label, attrs = modifier.toAttrs {
1414
onClick { onClick() }
1515
})
1616

1717
@Composable
1818
actual fun RadioGroupRow(modifier: Modifier, content: @Composable () -> Unit) =
19-
MDCFormField(attrs = modifier.platformModifier.toAttrs()) {
19+
MDCFormField(attrs = modifier.toAttrs()) {
2020
content()
2121
}

0 commit comments

Comments
 (0)