Skip to content

Commit 26bc2c3

Browse files
committed
refac (*) icons
1 parent dd95e3c commit 26bc2c3

File tree

9 files changed

+45
-54
lines changed

9 files changed

+45
-54
lines changed

processor/src/main/kotlin/kotli/template/multiplatform/compose/userflow/common/component/image/coil/CoilProcessor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ object CoilProcessor : BaseFeatureProcessor() {
4747
state.onApplyRules(
4848
Rules.PresentationComponentIcon,
4949
RemoveMarkedBlock("{userflow.coil}"),
50-
RemoveMarkedLine("UrlModel"),
50+
RemoveMarkedLine("DsIconModel.Url"),
5151
RemoveMarkedLine("coil"),
5252
)
5353

template/app/src/commonMain/kotlin/kotli/app/auth/common/presentation/AuthButton.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import androidx.compose.ui.Modifier
55
import androidx.compose.ui.graphics.Color
66
import org.jetbrains.compose.resources.DrawableResource
77
import shared.presentation.ui.component.DsOutlinedButton
8-
import shared.presentation.ui.icon.DrawableResourceModel
8+
import shared.presentation.ui.icon.DsIconModel
99

1010
@Composable
1111
fun AuthButton(
@@ -16,7 +16,7 @@ fun AuthButton(
1616
) {
1717
DsOutlinedButton(
1818
modifier = modifier,
19-
icon = DrawableResourceModel(icon),
19+
icon = DsIconModel.DrawableResource(icon),
2020
iconTint = Color.Unspecified,
2121
onClick = onClick,
2222
text = text

template/app/src/commonMain/kotlin/kotli/app/auth/signin/email/presentation/SignInWithEmailButton.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import androidx.compose.runtime.Composable
44
import androidx.compose.ui.Modifier
55
import org.jetbrains.compose.resources.stringResource
66
import shared.presentation.ui.component.DsOutlinedButton
7-
import shared.presentation.ui.icon.DrawableResourceModel
7+
import shared.presentation.ui.icon.DsIconModel
88
import template.app.generated.resources.Res
99
import template.app.generated.resources.auth_email
1010
import template.app.generated.resources.auth_sign_in_email
@@ -16,8 +16,8 @@ fun SignInWithEmailButton(
1616
) {
1717
DsOutlinedButton(
1818
modifier = modifier,
19-
icon = DrawableResourceModel(Res.drawable.auth_email),
19+
icon = DsIconModel.DrawableResource(Res.drawable.auth_email),
20+
text = stringResource(Res.string.auth_sign_in_email),
2021
onClick = onClick,
21-
text = stringResource(Res.string.auth_sign_in_email)
2222
)
2323
}

template/app/src/commonMain/kotlin/kotli/app/showcases/presentation/userflow/common/component/image/coil/CoilScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import androidx.compose.ui.unit.dp
1313
import kotli.app.showcases.presentation.ShowcaseHintBlock
1414
import shared.presentation.ui.component.DsIcon
1515
import shared.presentation.ui.container.DsFixedTopBarLazyColumn
16-
import shared.presentation.ui.icon.UrlModel
16+
import shared.presentation.ui.icon.DsIconModel
1717
import shared.presentation.ui.theme.DsTheme
1818
import kotlin.random.Random
1919

@@ -43,7 +43,7 @@ fun CoilScreen(onBack: () -> Unit) {
4343
.padding(8.dp)
4444
.clip(RoundedCornerShape(Random.nextInt(50)))
4545
.background(DsTheme.current.highlightPrimary),
46-
model = UrlModel("https://picsum.photos/id/${idx + 1}/200/300")
46+
model = DsIconModel.Url("https://picsum.photos/id/${idx + 1}/200/300")
4747
)
4848
}
4949
}

template/shared/presentation/src/commonMain/kotlin/shared/presentation/ui/component/DsIcon.kt

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,6 @@ import androidx.compose.ui.unit.Dp
1414
import coil3.compose.rememberAsyncImagePainter
1515
import org.jetbrains.compose.resources.painterResource
1616
import shared.presentation.ui.icon.DsIconModel
17-
import shared.presentation.ui.icon.ColorModel
18-
import shared.presentation.ui.icon.DrawableResourceModel
19-
import shared.presentation.ui.icon.ImageVectorModel
20-
import shared.presentation.ui.icon.PainterModel
21-
import shared.presentation.ui.icon.UrlModel
2217

2318
@Composable
2419
fun DsIcon(
@@ -28,11 +23,11 @@ fun DsIcon(
2823
model: DsIconModel?
2924
) {
3025
when (model) {
31-
is UrlModel -> DsIcon(modifier, size, model)
32-
is ColorModel -> DsIcon(modifier, size, model)
33-
is PainterModel -> DsIcon(modifier, tint, size, model)
34-
is ImageVectorModel -> DsIcon(modifier, tint, size, model)
35-
is DrawableResourceModel -> DsIcon(modifier, tint, size, model)
26+
is DsIconModel.Url -> DsIcon(modifier, size, model)
27+
is DsIconModel.Color -> DsIcon(modifier, size, model)
28+
is DsIconModel.Painter -> DsIcon(modifier, tint, size, model)
29+
is DsIconModel.ImageVector -> DsIcon(modifier, tint, size, model)
30+
is DsIconModel.DrawableResource -> DsIcon(modifier, tint, size, model)
3631
else -> Box(modifier = modifier.size(size).background(tint))
3732
}
3833
}
@@ -43,7 +38,7 @@ private fun DsIcon(
4338
modifier: Modifier = Modifier,
4439
tint: Color = LocalContentColor.current,
4540
size: Dp = Dp.Unspecified,
46-
model: PainterModel
41+
model: DsIconModel.Painter
4742
) {
4843
Icon(
4944
modifier = modifier.size(size),
@@ -59,7 +54,7 @@ private fun DsIcon(
5954
private fun DsIcon(
6055
modifier: Modifier = Modifier,
6156
size: Dp = Dp.Unspecified,
62-
model: UrlModel
57+
model: DsIconModel.Url
6358
) {
6459
Image(
6560
painter = rememberAsyncImagePainter(model.value),
@@ -75,7 +70,7 @@ private fun DsIcon(
7570
modifier: Modifier = Modifier,
7671
tint: Color = LocalContentColor.current,
7772
size: Dp = Dp.Unspecified,
78-
model: ImageVectorModel
73+
model: DsIconModel.ImageVector
7974
) {
8075
Icon(
8176
modifier = modifier.size(size),
@@ -91,7 +86,7 @@ private fun DsIcon(
9186
modifier: Modifier = Modifier,
9287
tint: Color = LocalContentColor.current,
9388
size: Dp = Dp.Unspecified,
94-
model: DrawableResourceModel
89+
model: DsIconModel.DrawableResource
9590
) {
9691
Icon(
9792
modifier = modifier.size(size),
@@ -106,7 +101,7 @@ private fun DsIcon(
106101
private fun DsIcon(
107102
modifier: Modifier = Modifier,
108103
size: Dp = Dp.Unspecified,
109-
model: ColorModel
104+
model: DsIconModel.Color
110105
) {
111106
Box(
112107
modifier = modifier

template/shared/presentation/src/commonMain/kotlin/shared/presentation/ui/component/DsSpacer.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,5 @@ fun DsSpacerDynamic(modifier: Modifier = Modifier, heightState: State<Int>) {
7474
Spacer(
7575
modifier
7676
.height(with(LocalDensity.current) { heightState.value.toDp() })
77-
.fillMaxWidth()
7877
)
7978
}

template/shared/presentation/src/commonMain/kotlin/shared/presentation/ui/container/DsFixedTopBar.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ import androidx.compose.runtime.Composable
1616
import androidx.compose.runtime.NonRestartableComposable
1717
import androidx.compose.ui.Modifier
1818
import androidx.compose.ui.graphics.Color
19-
import shared.presentation.ui.theme.DsTheme
2019
import shared.presentation.ui.component.DsActionButton
2120
import shared.presentation.ui.component.DsSpacerStatusBar
2221
import shared.presentation.ui.icon.DsIcons
22+
import shared.presentation.ui.theme.DsTheme
2323

2424
@Composable
2525
@NonRestartableComposable
@@ -61,14 +61,15 @@ fun DsFixedTopBarColumn(
6161
@Composable
6262
@NonRestartableComposable
6363
fun DsFixedTopBarLazyColumn(
64+
modifier: Modifier = Modifier.imePadding(),
6465
title: String? = null,
6566
onBack: (() -> Unit)? = null,
6667
actions: @Composable RowScope.() -> Unit = {},
6768
footer: @Composable (ColumnScope.() -> Unit)? = null,
6869
content: LazyListScope.() -> Unit
6970
) {
7071
DsFixedHeaderFooterLazyColumn(
71-
modifier = Modifier.fillMaxSize(),
72+
modifier = modifier,
7273
appearance = DsFixedHeaderFooterAppearance.default(
7374
footerBrush = null
7475
),

template/shared/presentation/src/commonMain/kotlin/shared/presentation/ui/icon/DsIconModel.kt

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,19 @@ package shared.presentation.ui.icon
22

33
import androidx.compose.runtime.Composable
44
import androidx.compose.runtime.Immutable
5-
import androidx.compose.ui.graphics.Color
6-
import androidx.compose.ui.graphics.painter.Painter
7-
import androidx.compose.ui.graphics.vector.ImageVector
8-
import org.jetbrains.compose.resources.DrawableResource
5+
import androidx.compose.ui.graphics.Color as UiColor
6+
import androidx.compose.ui.graphics.painter.Painter as UiPainter
7+
import androidx.compose.ui.graphics.vector.ImageVector as UiImageVector
8+
import org.jetbrains.compose.resources.DrawableResource as UiDrawableResource
99

1010
@Immutable
11-
sealed class DsIconModel
12-
13-
data class ColorModel(val value: Color) : DsIconModel()
14-
15-
data class UrlModel(val value: String?) : DsIconModel()
16-
17-
data class ImageVectorModel(val value: ImageVector) : DsIconModel()
18-
19-
data class DrawableResourceModel(val value: DrawableResource) : DsIconModel()
20-
21-
data class PainterModel(val value: @Composable () -> Painter) : DsIconModel()
22-
11+
sealed class DsIconModel {
12+
13+
data class DrawableResource(val value: UiDrawableResource) : DsIconModel()
14+
data class Painter(val value: @Composable () -> UiPainter) : DsIconModel()
15+
data class ImageVector(val value: UiImageVector) : DsIconModel()
16+
data class Color(val value: UiColor) : DsIconModel()
17+
data class Url(val value: String?) : DsIconModel()
18+
}
2319

2420

template/shared/presentation/src/commonMain/kotlin/shared/presentation/ui/icon/DsIcons.kt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,27 +17,27 @@ import template.shared.presentation.generated.resources.ic_wine_bar
1717
object DsIcons {
1818

1919
val info: DsIconModel
20-
get() = DrawableResourceModel(Res.drawable.ic_info)
20+
get() = DsIconModel.DrawableResource(Res.drawable.ic_info)
2121
val cancel: DsIconModel
22-
get() = DrawableResourceModel(Res.drawable.ic_cancel)
22+
get() = DsIconModel.DrawableResource(Res.drawable.ic_cancel)
2323
val arrowBack: DsIconModel
24-
get() = DrawableResourceModel(Res.drawable.ic_arrow_back)
24+
get() = DsIconModel.DrawableResource(Res.drawable.ic_arrow_back)
2525
val chevronRight: DsIconModel
26-
get() = DrawableResourceModel(Res.drawable.ic_chevron_right)
26+
get() = DsIconModel.DrawableResource(Res.drawable.ic_chevron_right)
2727
val lightMode: DsIconModel
28-
get() = DrawableResourceModel(Res.drawable.ic_light_mode)
28+
get() = DsIconModel.DrawableResource(Res.drawable.ic_light_mode)
2929
val darkMode: DsIconModel
30-
get() = DrawableResourceModel(Res.drawable.ic_dark_mode)
30+
get() = DsIconModel.DrawableResource(Res.drawable.ic_dark_mode)
3131
val school: DsIconModel
32-
get() = DrawableResourceModel(Res.drawable.ic_school)
32+
get() = DsIconModel.DrawableResource(Res.drawable.ic_school)
3333
val coffee: DsIconModel
34-
get() = DrawableResourceModel(Res.drawable.ic_coffee)
34+
get() = DsIconModel.DrawableResource(Res.drawable.ic_coffee)
3535
val wineBar: DsIconModel
36-
get() = DrawableResourceModel(Res.drawable.ic_wine_bar)
36+
get() = DsIconModel.DrawableResource(Res.drawable.ic_wine_bar)
3737
val localDrink: DsIconModel
38-
get() = DrawableResourceModel(Res.drawable.ic_local_drink)
38+
get() = DsIconModel.DrawableResource(Res.drawable.ic_local_drink)
3939
val delete: DsIconModel
40-
get() = DrawableResourceModel(Res.drawable.ic_delete)
40+
get() = DsIconModel.DrawableResource(Res.drawable.ic_delete)
4141
val backspace: DsIconModel
42-
get() = DrawableResourceModel(Res.drawable.ic_backspace)
42+
get() = DsIconModel.DrawableResource(Res.drawable.ic_backspace)
4343
}

0 commit comments

Comments
 (0)