Skip to content

Commit dc80776

Browse files
committed
Move the TopAppBarScaffold composable to the ext package and add a modifier parameter
1 parent 9596dd8 commit dc80776

File tree

4 files changed

+21
-9
lines changed

4 files changed

+21
-9
lines changed
Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
package com.huanshankeji.compose.material
1+
package com.huanshankeji.compose.material.ext
22

33
import androidx.compose.foundation.layout.RowScope
44
import androidx.compose.material.Scaffold
55
import androidx.compose.material.TopAppBar
66
import androidx.compose.runtime.Composable
7+
import com.huanshankeji.compose.material.Icon
8+
import com.huanshankeji.compose.material.IconButton
79
import com.huanshankeji.compose.material.icons.Icon
10+
import com.huanshankeji.compose.ui.Modifier
811

912
actual class NavigationIconScope private constructor() {
1013
@Composable
@@ -34,13 +37,15 @@ actual class TopAppBarActionsScope(val rowScope: RowScope) {
3437
@Composable
3538
actual fun TopAppBarScaffold(
3639
title: @Composable () -> Unit,
40+
topAppBarModifier: Modifier,
3741
navigationIcon: @Composable (NavigationIconScope.() -> Unit)?,
3842
actions: @Composable TopAppBarActionsScope.() -> Unit,
3943
content: @Composable () -> Unit
4044
) =
4145
Scaffold(topBar = {
4246
TopAppBar(
43-
title = title,
44-
navigationIcon = navigationIcon?.let { { NavigationIconScope.instance.it() } },
45-
actions = { TopAppBarActionsScope(this).actions() })
47+
title,
48+
topAppBarModifier.platformModifier,
49+
navigationIcon?.let { { NavigationIconScope.instance.it() } },
50+
{ TopAppBarActionsScope(this).actions() })
4651
}) { content() }
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
package com.huanshankeji.compose.material
1+
package com.huanshankeji.compose.material.ext
22

33
import androidx.compose.runtime.Composable
44
import com.huanshankeji.compose.material.icons.Icon
5+
import com.huanshankeji.compose.ui.Modifier
56

67
expect class NavigationIconScope {
78
@Composable
@@ -22,6 +23,7 @@ expect class TopAppBarActionsScope {
2223
@Composable
2324
expect fun TopAppBarScaffold(
2425
title: @Composable () -> Unit,
26+
topAppBarModifier: Modifier = Modifier,
2527
navigationIcon: @Composable (NavigationIconScope.() -> Unit)? = null,
2628
actions: @Composable TopAppBarActionsScope.() -> Unit = {},
2729
content: @Composable () -> Unit
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
package com.huanshankeji.compose.material
1+
package com.huanshankeji.compose.material.ext
22

33
import androidx.compose.runtime.Composable
4+
import com.huanshankeji.compose.material.contentDescription
45
import com.huanshankeji.compose.material.icons.Icon
6+
import com.huanshankeji.compose.ui.Modifier
7+
import com.varabyte.kobweb.compose.ui.toAttrs
58
import dev.petuska.kmdc.top.app.bar.*
69
import dev.petuska.kmdcx.icons.mdcIcon
710
import org.jetbrains.compose.web.dom.Text
@@ -35,12 +38,13 @@ actual class TopAppBarActionsScope(val mdcTopAppBarSectionScope: MDCTopAppBarSec
3538
@Composable
3639
actual fun TopAppBarScaffold(
3740
title: @Composable () -> Unit,
41+
topAppBarModifier: Modifier,
3842
navigationIcon: @Composable (NavigationIconScope.() -> Unit)?,
3943
actions: @Composable TopAppBarActionsScope.() -> Unit,
4044
content: @Composable () -> Unit
4145
) =
4246
MDCTopAppBar {
43-
TopAppBar {
47+
TopAppBar(topAppBarModifier.platformModifier.toAttrs()) {
4448
Row {
4549
Section(align = MDCTopAppBarSectionAlign.Start) {
4650
navigationIcon?.let { NavigationIconScope(this@Section).it() }

demo/src/commonMain/kotlin/com/huanshankeji/compose/material/demo/App.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import com.huanshankeji.compose.layout.size
1818
import com.huanshankeji.compose.layout.width
1919
import com.huanshankeji.compose.material.*
2020
import com.huanshankeji.compose.material.ext.IconButton
21+
import com.huanshankeji.compose.material.ext.TopAppBarScaffold
2122
import com.huanshankeji.compose.material.icons.Icons
2223
import com.huanshankeji.compose.material.icons.filled.Add
2324
import com.huanshankeji.compose.material.icons.filled.Menu
@@ -32,9 +33,9 @@ import com.huanshankeji.compose.material.ext.Button as ExtButton
3233
fun App() {
3334
TopAppBarScaffold({
3435
Text("Compose Multiplatform Material demo")
35-
}, {
36+
}, navigationIcon = {
3637
MaterialIconNavButton({}, Icons.Default.Menu, "menu")
37-
}, {
38+
}, actions = {
3839
MaterialIconActionButton({}, Icons.Default.Search, "search")
3940
}) {
4041
/*

0 commit comments

Comments
 (0)