11package com.threegap.bitnagil.presentation.onboarding.component.template
22
33import androidx.compose.foundation.Image
4+ import androidx.compose.foundation.layout.Arrangement
45import androidx.compose.foundation.layout.Column
56import androidx.compose.foundation.layout.Row
67import androidx.compose.foundation.layout.Spacer
@@ -9,6 +10,8 @@ import androidx.compose.foundation.layout.fillMaxWidth
910import androidx.compose.foundation.layout.height
1011import androidx.compose.foundation.layout.offset
1112import androidx.compose.foundation.layout.padding
13+ import androidx.compose.foundation.layout.size
14+ import androidx.compose.foundation.layout.width
1215import androidx.compose.foundation.layout.widthIn
1316import androidx.compose.material3.Text
1417import androidx.compose.runtime.Composable
@@ -37,7 +40,6 @@ import com.threegap.bitnagil.designsystem.component.atom.BitnagilTextButton
3740import com.threegap.bitnagil.presentation.common.ninepatch.ninePatchBackgroundNode
3841import com.threegap.bitnagil.presentation.onboarding.model.OnBoardingAbstractTextItem
3942
40-
4143@Composable
4244fun OnBoardingAbstractTemplate (
4345 modifier : Modifier = Modifier ,
@@ -80,18 +82,19 @@ fun OnBoardingAbstractTemplate(
8082 .fillMaxWidth()
8183 .ninePatchBackgroundNode(R .drawable.img_texture_rectangle_4)
8284 .padding(30 .dp),
85+ verticalArrangement = Arrangement .spacedBy(13 .dp)
8386 ) {
8487 Text (
8588 text = " ${userName} 님은 ..." ,
8689 style = BitnagilTheme .typography.title3SemiBold,
8790 color = BitnagilTheme .colors.coolGray10,
8891 )
8992
90- Spacer (modifier = Modifier .height( 13 .dp))
91-
92- onBoardingAbstractTexts.forEach { onBoardingAbstractTextItemList ->
93- Spacer (modifier = Modifier .height( 2 .dp) )
94- OnBoardingAbstractText (onBoardingAbstractTextList = onBoardingAbstractTextItemList )
93+ onBoardingAbstractTexts.forEachIndexed { index, onBoardingAbstractTextItemList ->
94+ OnBoardingAbstractText (
95+ onBoardingAbstractTextList = onBoardingAbstractTextItemList,
96+ iconResourceId = getIndexIconResourceId(index )
97+ )
9598 }
9699 }
97100
@@ -106,9 +109,19 @@ fun OnBoardingAbstractTemplate(
106109 }
107110}
108111
112+ private fun getIndexIconResourceId (index : Int ): Int {
113+ return when (index) {
114+ 0 -> R .drawable.img_circle_1
115+ 1 -> R .drawable.img_circle_2
116+ 2 -> R .drawable.img_circle_3
117+ else -> R .drawable.img_circle_1
118+ }
119+ }
120+
109121@Composable
110122private fun OnBoardingAbstractText (
111123 onBoardingAbstractTextList : List <OnBoardingAbstractTextItem >,
124+ iconResourceId : Int ,
112125) {
113126 val annotatedString = buildAnnotatedString {
114127 onBoardingAbstractTextList.forEach {
@@ -127,15 +140,19 @@ private fun OnBoardingAbstractText(
127140 Row (
128141 modifier = Modifier .fillMaxWidth(),
129142 ) {
130- Column (
143+ Image (
144+ painter = painterResource(iconResourceId),
145+ modifier = Modifier .padding(top = 8 .dp).size(24 .dp),
146+ contentDescription = null ,
147+ )
148+
149+ Spacer (modifier = Modifier .width(14 .dp))
150+
151+ UnderLinedText (
152+ text = annotatedString,
153+ dividerColor = BitnagilTheme .colors.coolGray90,
131154 modifier = Modifier .weight(1f )
132- ) {
133- UnderLinedText (
134- text = annotatedString,
135- dividerColor = BitnagilTheme .colors.coolGray90,
136- modifier = Modifier .fillMaxWidth()
137- )
138- }
155+ )
139156 }
140157}
141158
@@ -148,7 +165,7 @@ private fun UnderLinedText(
148165 var textLayoutResult by remember { mutableStateOf<TextLayoutResult ?>(null ) }
149166 val density = LocalDensity .current
150167 val lineHeight = with (density) {
151- val extraSpacingInDp = 44 .dp
168+ val extraSpacingInDp = 39 .dp
152169 return @with (extraSpacingInDp.value).dp.toSp()
153170 }
154171
@@ -160,7 +177,7 @@ private fun UnderLinedText(
160177 lineHeightStyle = LineHeightStyle (
161178 alignment = LineHeightStyle .Alignment .Center ,
162179 trim = LineHeightStyle .Trim .None
163- )
180+ ),
164181 ),
165182 lineHeight = lineHeight,
166183 onTextLayout = { result ->
0 commit comments