Skip to content

Commit d495f60

Browse files
HowieHChenYuKongA
andauthored
library: Use PaddingValues instead of DpSize (#32)
* update: Use PaddingValues instead of DpSize * update: Allow setting Scaffold's popupHost to null (using Scaffold and MiuixPopupHost separately) --------- Co-authored-by: YuKongA <[email protected]>
1 parent c67349b commit d495f60

File tree

13 files changed

+79
-61
lines changed

13 files changed

+79
-61
lines changed

composeApp/src/commonMain/kotlin/MainPage.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ fun MainPage(
6565
label = "Search",
6666
leadingIcon = {
6767
Icon(
68-
modifier = Modifier.padding(horizontal = 16.dp),
68+
modifier = Modifier.padding(start = 12.dp, end = 8.dp),
6969
imageVector = MiuixIcons.Search,
7070
tint = MiuixTheme.colorScheme.onSurfaceContainer,
7171
contentDescription = "Search"

composeApp/src/commonMain/kotlin/component/OtherComponent.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import androidx.compose.ui.platform.LocalFocusManager
1919
import androidx.compose.ui.text.font.FontWeight
2020
import androidx.compose.ui.text.input.ImeAction
2121
import androidx.compose.ui.text.input.TextFieldValue
22-
import androidx.compose.ui.unit.DpSize
2322
import androidx.compose.ui.unit.dp
2423
import androidx.compose.ui.unit.sp
2524
import top.yukonga.miuix.kmp.basic.ButtonDefaults
@@ -141,7 +140,7 @@ fun OtherComponent(padding: PaddingValues) {
141140
.padding(horizontal = 12.dp)
142141
.padding(bottom = 12.dp),
143142
color = MiuixTheme.colorScheme.primaryVariant,
144-
insideMargin = DpSize(16.dp, 16.dp)
143+
insideMargin = PaddingValues(16.dp)
145144
) {
146145
Text(
147146
color = MiuixTheme.colorScheme.onPrimary,
@@ -156,7 +155,7 @@ fun OtherComponent(padding: PaddingValues) {
156155
.fillMaxWidth()
157156
.padding(horizontal = 12.dp)
158157
.padding(bottom = 12.dp + padding.calculateBottomPadding()),
159-
insideMargin = DpSize(16.dp, 16.dp)
158+
insideMargin = PaddingValues(16.dp)
160159
) {
161160
Text(
162161
color = MiuixTheme.colorScheme.onSurface,

composeApp/src/commonMain/kotlin/component/TextComponent.kt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,14 @@ fun TextComponent() {
7272
title = "Title",
7373
summary = "Summary",
7474
leftAction = {
75-
Text(text = "Left")
75+
Text(
76+
text = "Left",
77+
modifier = Modifier.padding(end = 16.dp)
78+
)
7679
},
7780
rightActions = {
7881
Text(text = "Right1")
79-
Spacer(Modifier.width(6.dp))
82+
Spacer(Modifier.width(10.dp))
8083
Text(text = "Right2")
8184
},
8285
onClick = {},
@@ -88,6 +91,7 @@ fun TextComponent() {
8891
leftAction = {
8992
Text(
9093
text = "Left",
94+
modifier = Modifier.padding(end = 16.dp),
9195
color = MiuixTheme.colorScheme.disabledOnSecondaryVariant
9296
)
9397
},
@@ -96,7 +100,7 @@ fun TextComponent() {
96100
text = "Right1",
97101
color = MiuixTheme.colorScheme.disabledOnSecondaryVariant
98102
)
99-
Spacer(Modifier.width(6.dp))
103+
Spacer(Modifier.width(10.dp))
100104
Text(
101105
text = "Right2",
102106
color = MiuixTheme.colorScheme.disabledOnSecondaryVariant
@@ -116,6 +120,7 @@ fun TextComponent() {
116120
leftAction = {
117121
Box(
118122
contentAlignment = Alignment.TopStart,
123+
modifier = Modifier.padding(end = 16.dp)
119124
) {
120125
Icon(
121126
imageVector = Icons.Rounded.AccountBox,
@@ -154,7 +159,7 @@ fun TextComponent() {
154159
Row(
155160
modifier = Modifier
156161
.fillMaxWidth()
157-
.padding(horizontal = 12.dp, vertical = 12.dp),
162+
.padding(16.dp),
158163
horizontalArrangement = Arrangement.SpaceBetween
159164
) {
160165
Checkbox(
@@ -186,7 +191,7 @@ fun TextComponent() {
186191
checked = miuixSuperRightCheckboxState,
187192
rightActions = {
188193
Text(
189-
modifier = Modifier.padding(end = 6.dp),
194+
modifier = Modifier.padding(end = 10.dp),
190195
text = miuixSuperRightCheckbox,
191196
color = MiuixTheme.colorScheme.onSurfaceVariantActions
192197
)
@@ -224,7 +229,7 @@ fun TextComponent() {
224229
Row(
225230
modifier = Modifier
226231
.fillMaxWidth()
227-
.padding(horizontal = 12.dp, vertical = 12.dp),
232+
.padding(16.dp),
228233
horizontalArrangement = Arrangement.SpaceBetween
229234
) {
230235
Switch(

miuix/src/commonMain/kotlin/top/yukonga/miuix/kmp/basic/Button.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package top.yukonga.miuix.kmp.basic
22

33
import androidx.compose.foundation.layout.Arrangement
4+
import androidx.compose.foundation.layout.PaddingValues
45
import androidx.compose.foundation.layout.Row
56
import androidx.compose.foundation.layout.RowScope
67
import androidx.compose.foundation.layout.defaultMinSize
@@ -15,7 +16,6 @@ import androidx.compose.ui.semantics.Role
1516
import androidx.compose.ui.semantics.role
1617
import androidx.compose.ui.semantics.semantics
1718
import androidx.compose.ui.unit.Dp
18-
import androidx.compose.ui.unit.DpSize
1919
import androidx.compose.ui.unit.dp
2020
import top.yukonga.miuix.kmp.theme.MiuixTheme
2121
import top.yukonga.miuix.kmp.utils.SmoothRoundedCornerShape
@@ -42,7 +42,7 @@ fun Button(
4242
minWidth: Dp = ButtonDefaults.MinWidth,
4343
minHeight: Dp = ButtonDefaults.MinHeight,
4444
colors: ButtonColors = ButtonDefaults.buttonColors(),
45-
insideMargin: DpSize = ButtonDefaults.InsideMargin,
45+
insideMargin: PaddingValues = ButtonDefaults.InsideMargin,
4646
content: @Composable RowScope.() -> Unit
4747
) {
4848
Surface(
@@ -57,7 +57,7 @@ fun Button(
5757
Row(
5858
Modifier
5959
.defaultMinSize(minWidth = minWidth, minHeight = minHeight)
60-
.padding(insideMargin.width, insideMargin.height),
60+
.padding(insideMargin),
6161
horizontalArrangement = Arrangement.Center,
6262
verticalAlignment = Alignment.CenterVertically,
6363
content = content
@@ -88,7 +88,7 @@ fun TextButton(
8888
cornerRadius: Dp = ButtonDefaults.ConorRadius,
8989
minWidth: Dp = ButtonDefaults.MinWidth,
9090
minHeight: Dp = ButtonDefaults.MinHeight,
91-
insideMargin: DpSize = ButtonDefaults.InsideMargin,
91+
insideMargin: PaddingValues = ButtonDefaults.InsideMargin,
9292
) {
9393
Surface(
9494
onClick = {
@@ -102,7 +102,7 @@ fun TextButton(
102102
Row(
103103
Modifier
104104
.defaultMinSize(minWidth = minWidth, minHeight = minHeight)
105-
.padding(insideMargin.width, insideMargin.height),
105+
.padding(insideMargin),
106106
horizontalArrangement = Arrangement.Center,
107107
verticalAlignment = Alignment.CenterVertically,
108108
content = {
@@ -138,7 +138,7 @@ object ButtonDefaults {
138138
/**
139139
* The default inside margin applied for all buttons.
140140
*/
141-
val InsideMargin = DpSize(16.dp, 16.dp)
141+
val InsideMargin = PaddingValues(16.dp)
142142

143143
/**
144144
* The default [ButtonColors] for all buttons.

miuix/src/commonMain/kotlin/top/yukonga/miuix/kmp/basic/Card.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ package top.yukonga.miuix.kmp.basic
22

33
import androidx.compose.foundation.layout.Column
44
import androidx.compose.foundation.layout.ColumnScope
5+
import androidx.compose.foundation.layout.PaddingValues
56
import androidx.compose.foundation.layout.padding
67
import androidx.compose.runtime.Composable
78
import androidx.compose.runtime.remember
89
import androidx.compose.ui.Modifier
910
import androidx.compose.ui.graphics.Color
1011
import androidx.compose.ui.unit.Dp
11-
import androidx.compose.ui.unit.DpSize
1212
import androidx.compose.ui.unit.dp
1313
import top.yukonga.miuix.kmp.theme.MiuixTheme
1414
import top.yukonga.miuix.kmp.utils.SmoothRoundedCornerShape
@@ -29,22 +29,19 @@ import top.yukonga.miuix.kmp.utils.SmoothRoundedCornerShape
2929
fun Card(
3030
modifier: Modifier = Modifier,
3131
cornerRadius: Dp = CardDefaults.ConorRadius,
32-
insideMargin: DpSize = CardDefaults.InsideMargin,
32+
insideMargin: PaddingValues = CardDefaults.InsideMargin,
3333
color: Color = CardDefaults.DefaultColor(),
3434
content: @Composable ColumnScope.() -> Unit
3535
) {
3636
val shape = remember { SmoothRoundedCornerShape(cornerRadius) }
37-
val paddingModifier = remember(insideMargin) {
38-
Modifier.padding(vertical = insideMargin.height, horizontal = insideMargin.width)
39-
}
4037

4138
Surface(
4239
modifier = modifier,
4340
shape = shape,
4441
color = color,
4542
) {
4643
Column(
47-
modifier = paddingModifier,
44+
modifier = Modifier.padding(insideMargin),
4845
content = content
4946
)
5047
}
@@ -60,7 +57,7 @@ object CardDefaults {
6057
/**
6158
* The default margin inside the [Card].
6259
*/
63-
val InsideMargin = DpSize(0.dp, 0.dp)
60+
val InsideMargin = PaddingValues(0.dp)
6461

6562
/**
6663
* The default color width of the [Card].

miuix/src/commonMain/kotlin/top/yukonga/miuix/kmp/basic/Component.kt

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import androidx.compose.foundation.clickable
55
import androidx.compose.foundation.interaction.MutableInteractionSource
66
import androidx.compose.foundation.layout.Arrangement
77
import androidx.compose.foundation.layout.Column
8+
import androidx.compose.foundation.layout.PaddingValues
89
import androidx.compose.foundation.layout.Row
910
import androidx.compose.foundation.layout.RowScope
1011
import androidx.compose.foundation.layout.fillMaxWidth
@@ -23,7 +24,6 @@ import androidx.compose.ui.graphics.Color
2324
import androidx.compose.ui.input.pointer.PointerEventType
2425
import androidx.compose.ui.input.pointer.pointerInput
2526
import androidx.compose.ui.text.font.FontWeight
26-
import androidx.compose.ui.unit.DpSize
2727
import androidx.compose.ui.unit.dp
2828
import top.yukonga.miuix.kmp.theme.MiuixTheme
2929

@@ -45,7 +45,7 @@ import top.yukonga.miuix.kmp.theme.MiuixTheme
4545
@Composable
4646
fun BasicComponent(
4747
modifier: Modifier = Modifier,
48-
insideMargin: DpSize = BasicComponentDefaults.InsideMargin,
48+
insideMargin: PaddingValues = BasicComponentDefaults.InsideMargin,
4949
title: String? = null,
5050
titleColor: BasicComponentColors = BasicComponentDefaults.titleColor(),
5151
summary: String? = null,
@@ -80,19 +80,12 @@ fun BasicComponent(
8080
}
8181
.heightIn(min = 56.dp)
8282
.fillMaxWidth()
83-
.padding(
84-
horizontal = insideMargin.width,
85-
vertical = insideMargin.height
86-
),
83+
.padding(insideMargin),
8784
verticalAlignment = Alignment.CenterVertically,
8885
horizontalArrangement = Arrangement.SpaceBetween
8986
) {
9087
leftAction?.let {
91-
Box(
92-
modifier = Modifier.padding(end = 16.dp)
93-
) {
94-
it()
95-
}
88+
it()
9689
}
9790
Column(
9891
modifier = Modifier.weight(1f)
@@ -130,7 +123,7 @@ object BasicComponentDefaults {
130123
/**
131124
* The default margin inside the [BasicComponent].
132125
*/
133-
val InsideMargin = DpSize(16.dp, 16.dp)
126+
val InsideMargin = PaddingValues(16.dp)
134127

135128
/**
136129
* The default color of the title.

miuix/src/commonMain/kotlin/top/yukonga/miuix/kmp/basic/Scaffold.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import androidx.compose.ui.util.fastMap
2929
import androidx.compose.ui.util.fastMapNotNull
3030
import androidx.compose.ui.util.fastMaxBy
3131
import top.yukonga.miuix.kmp.theme.MiuixTheme
32+
import top.yukonga.miuix.kmp.utils.MiuixPopupUtil
3233
import top.yukonga.miuix.kmp.utils.MiuixPopupUtil.Companion.MiuixPopupHost
3334

3435
/**
@@ -45,6 +46,8 @@ import top.yukonga.miuix.kmp.utils.MiuixPopupUtil.Companion.MiuixPopupHost
4546
* @param floatingActionButtonPosition position of the floating action button.
4647
* @param snackbarHost component to host [Snackbar]s that are pushed to be shown via
4748
* [SnackbarHostState.showSnackbar], typically a [SnackbarHost].
49+
* @param popupHost component to host [SuperDropdown]s & [SuperDialog]s that are pushed to be shown via
50+
* [MiuixPopupUtil.showPopup] & [MiuixPopupUtil.showDialog], typically a [MiuixPopupHost].
4851
* @param containerColor the color used for the background of this scaffold. Use [Color.Transparent]
4952
* to have no color.
5053
* @param contentWindowInsets window insets to be passed to [content] slot via [PaddingValues]
@@ -65,6 +68,7 @@ fun Scaffold(
6568
floatingActionButton: @Composable () -> Unit = {},
6669
floatingActionButtonPosition: MiuixFabPosition = MiuixFabPosition.End,
6770
snackbarHost: @Composable () -> Unit = {},
71+
popupHost: @Composable () -> Unit = { MiuixPopupHost() },
6872
containerColor: Color = MiuixTheme.colorScheme.background,
6973
contentWindowInsets: WindowInsets = WindowInsets.statusBars,
7074
content: @Composable (PaddingValues) -> Unit
@@ -91,7 +95,7 @@ fun Scaffold(
9195
snackbar = snackbarHost,
9296
fab = floatingActionButton,
9397
fabPosition = floatingActionButtonPosition,
94-
popup = { MiuixPopupHost() },
98+
popup = popupHost,
9599
contentWindowInsets = safeInsets,
96100
)
97101
}

miuix/src/commonMain/kotlin/top/yukonga/miuix/kmp/basic/SearchBar.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ fun InputField(
129129
val interactionSource = interactionSource ?: remember { MutableInteractionSource() }
130130

131131
val paddingModifier = remember(insideMargin, leadingIcon, trailingIcon) {
132-
if (leadingIcon == null && trailingIcon == null) Modifier.padding(insideMargin.width, vertical = insideMargin.height)
132+
if (leadingIcon == null && trailingIcon == null) Modifier.padding(horizontal = insideMargin.width, vertical = insideMargin.height)
133133
else if (leadingIcon == null) Modifier.padding(start = insideMargin.width).padding(vertical = insideMargin.height)
134134
else if (trailingIcon == null) Modifier.padding(end = insideMargin.width).padding(vertical = insideMargin.height)
135135
else Modifier.padding(vertical = insideMargin.height)

miuix/src/commonMain/kotlin/top/yukonga/miuix/kmp/basic/SmallTitle.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package top.yukonga.miuix.kmp.basic
22

3+
import androidx.compose.foundation.layout.PaddingValues
34
import androidx.compose.foundation.layout.padding
45
import androidx.compose.runtime.Composable
56
import androidx.compose.runtime.remember
67
import androidx.compose.ui.Modifier
78
import androidx.compose.ui.graphics.Color
89
import androidx.compose.ui.text.font.FontWeight
9-
import androidx.compose.ui.unit.DpSize
1010
import androidx.compose.ui.unit.dp
1111
import top.yukonga.miuix.kmp.theme.MiuixTheme
1212

@@ -23,10 +23,10 @@ fun SmallTitle(
2323
text: String,
2424
modifier: Modifier = Modifier,
2525
textColor: Color = MiuixTheme.colorScheme.onBackgroundVariant,
26-
insideMargin: DpSize = DpSize(28.dp, 8.dp)
26+
insideMargin: PaddingValues = PaddingValues(28.dp, 8.dp)
2727
) {
2828
val paddingModifier = remember(insideMargin) {
29-
Modifier.padding(horizontal = insideMargin.width, vertical = insideMargin.height)
29+
Modifier.padding(insideMargin)
3030
}
3131
Text(
3232
modifier = modifier.then(paddingModifier),

miuix/src/commonMain/kotlin/top/yukonga/miuix/kmp/extra/SuperArrow.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package top.yukonga.miuix.kmp.extra
22

33
import androidx.compose.foundation.Image
4+
import androidx.compose.foundation.layout.PaddingValues
45
import androidx.compose.foundation.layout.padding
56
import androidx.compose.foundation.layout.size
67
import androidx.compose.runtime.Composable
@@ -12,7 +13,6 @@ import androidx.compose.ui.Modifier
1213
import androidx.compose.ui.graphics.Color
1314
import androidx.compose.ui.graphics.ColorFilter
1415
import androidx.compose.ui.text.style.TextAlign
15-
import androidx.compose.ui.unit.DpSize
1616
import androidx.compose.ui.unit.dp
1717
import top.yukonga.miuix.kmp.basic.BasicComponent
1818
import top.yukonga.miuix.kmp.basic.BasicComponentColors
@@ -48,7 +48,7 @@ fun SuperArrow(
4848
rightText: String? = null,
4949
rightActionColor: RightActionColors = SuperArrowDefaults.rightActionColors(),
5050
onClick: (() -> Unit)? = null,
51-
insideMargin: DpSize = BasicComponentDefaults.InsideMargin,
51+
insideMargin: PaddingValues = BasicComponentDefaults.InsideMargin,
5252
enabled: Boolean = true
5353
) {
5454
val updatedOnClick by rememberUpdatedState(onClick)

0 commit comments

Comments
 (0)