11package com.huanshankeji.compose.material
22
33import androidx.compose.runtime.Composable
4+ import com.huanshankeji.compose.material.ButtonType.*
45import com.huanshankeji.compose.ui.ModifierOrAttrs
56import com.huanshankeji.compose.ui.toAttrs
67import com.huanshankeji.compose.web.attributes.attrs
78import com.huanshankeji.compose.web.attributes.plus
89import dev.petuska.kmdc.button.Label
910import dev.petuska.kmdc.button.MDCButton
1011import dev.petuska.kmdc.button.MDCButtonScope
12+ import dev.petuska.kmdc.button.MDCButtonType
1113import org.w3c.dom.HTMLButtonElement
1214
1315actual class ButtonScope (val mdcButtonScope : MDCButtonScope <HTMLButtonElement >) {
@@ -18,13 +20,24 @@ actual class ButtonScope(val mdcButtonScope: MDCButtonScope<HTMLButtonElement>)
1820
1921actual typealias ButtonElement = HTMLButtonElement
2022
23+ fun ButtonType.toMDCButtonType () =
24+ when (this ) {
25+ Contained -> MDCButtonType .Raised
26+ Outlined -> MDCButtonType .Outlined
27+ Text -> MDCButtonType .Text
28+ }
29+
2130@Composable
2231actual fun Button (
23- onClick : () -> Unit , modifierOrAttrs : ModifierOrAttrs <ButtonElement >, content : @Composable ButtonScope .() -> Unit
32+ onClick : () -> Unit ,
33+ buttonType : ButtonType ,
34+ modifierOrAttrs : ModifierOrAttrs <ButtonElement >,
35+ content : @Composable ButtonScope .() -> Unit
2436) =
25- MDCButton (attrs = attrs<ButtonElement > {
26- onClick { onClick() }
27- } + modifierOrAttrs.toAttrs()) {
37+ MDCButton (buttonType.toMDCButtonType(),
38+ attrs = attrs<ButtonElement > {
39+ onClick { onClick() }
40+ } + modifierOrAttrs.toAttrs()) {
2841 ButtonScope (this ).content()
2942 }
3043
0 commit comments