@@ -23,9 +23,8 @@ import androidx.compose.ui.res.stringArrayResource
2323import androidx.compose.ui.res.stringResource
2424import androidx.compose.ui.res.vectorResource
2525import androidx.compose.ui.unit.dp
26- import com.ninecraft.booket.core.common.extensions.clickableSingle
26+ import com.ninecraft.booket.core.common.extensions.noRippleClickable
2727import com.ninecraft.booket.core.designsystem.DevicePreview
28- import com.ninecraft.booket.core.designsystem.component.appbar.ReedBackTopAppBar
2928import com.ninecraft.booket.core.designsystem.component.button.ReedButton
3029import com.ninecraft.booket.core.designsystem.component.button.ReedButtonColorStyle
3130import com.ninecraft.booket.core.designsystem.component.button.largeButtonStyle
@@ -38,25 +37,24 @@ import com.ninecraft.booket.feature.screens.TermsAgreementScreen
3837import com.slack.circuit.codegen.annotations.CircuitInject
3938import dagger.hilt.android.components.ActivityRetainedComponent
4039import kotlinx.collections.immutable.persistentListOf
40+ import com.ninecraft.booket.core.designsystem.R as designR
4141
4242@CircuitInject(TermsAgreementScreen ::class , ActivityRetainedComponent ::class )
4343@Composable
44- internal fun TermsAgreement (
44+ internal fun TermsAgreementUi (
4545 state : TermsAgreementUiState ,
4646 modifier : Modifier = Modifier ,
4747) {
48+ val termsTitles = stringArrayResource(id = R .array.terms_agreement_items)
49+
4850 Column (
4951 modifier = modifier
5052 .fillMaxSize()
5153 .background(White )
5254 .systemBarsPadding(),
5355 ) {
54- ReedBackTopAppBar (
55- onBackClick = {
56- state.eventSink(TermsAgreementUiEvent .OnBackClick )
57- },
58- )
59- Spacer (modifier = Modifier .height(ReedTheme .spacing.spacing2))
56+ Spacer (modifier = Modifier .height(ReedTheme .spacing.spacing16))
57+ Spacer (modifier = Modifier .height(ReedTheme .spacing.spacing3))
6058 Column (
6159 modifier = Modifier
6260 .weight(1f )
@@ -95,22 +93,37 @@ internal fun TermsAgreement(
9593 style = ReedTheme .typography.headline1SemiBold,
9694 )
9795 }
96+ Spacer (modifier = Modifier .height(ReedTheme .spacing.spacing5))
97+ TermItem (
98+ title = termsTitles[0 ],
99+ checked = state.agreedTerms[0 ],
100+ onCheckClick = {
101+ state.eventSink(TermsAgreementUiEvent .OnTermItemClick (0 ))
102+ },
103+ onDetailClick = {
104+ state.eventSink(TermsAgreementUiEvent .OnPolicyClick )
105+ },
106+ )
98107 Spacer (modifier = Modifier .height(ReedTheme .spacing.spacing4))
99-
100- val termsTitles = stringArrayResource(id = R .array.terms_agreement_items)
101-
102- termsTitles.forEachIndexed { index, title ->
103- TermItem (
104- title = title,
105- checked = state.agreedTerms[index],
106- onCheckClick = {
107- state.eventSink(TermsAgreementUiEvent .OnTermItemClick (index))
108- },
109- onDetailClick = {
110- state.eventSink(TermsAgreementUiEvent .OnTermDetailClick (" " ))
111- },
112- )
113- }
108+ TermItem (
109+ title = termsTitles[1 ],
110+ checked = state.agreedTerms[1 ],
111+ onCheckClick = {
112+ state.eventSink(TermsAgreementUiEvent .OnTermItemClick (1 ))
113+ },
114+ onDetailClick = {
115+ state.eventSink(TermsAgreementUiEvent .OnTermClick )
116+ },
117+ )
118+ Spacer (modifier = Modifier .height(ReedTheme .spacing.spacing4))
119+ TermItem (
120+ title = termsTitles[2 ],
121+ checked = state.agreedTerms[2 ],
122+ hasDetailAction = false ,
123+ onCheckClick = {
124+ state.eventSink(TermsAgreementUiEvent .OnTermItemClick (2 ))
125+ },
126+ )
114127 }
115128 ReedButton (
116129 onClick = {
@@ -134,19 +147,18 @@ internal fun TermsAgreement(
134147@Composable
135148private fun TermItem (
136149 title : String ,
150+ onCheckClick : () -> Unit ,
137151 modifier : Modifier = Modifier ,
138152 checked : Boolean = false,
139- onCheckClick : () -> Unit = {} ,
153+ hasDetailAction : Boolean = true ,
140154 onDetailClick : () -> Unit = {},
141155) {
142156 Row (
143157 modifier = modifier
144158 .fillMaxWidth()
145- .clickableSingle {
146- onDetailClick()
147- }
159+ .noRippleClickable { onDetailClick() }
148160 .padding(
149- start = ReedTheme .spacing.spacing5 ,
161+ start = ReedTheme .spacing.spacing4 + ReedTheme .spacing.spacing05 ,
150162 end = ReedTheme .spacing.spacing3,
151163 top = ReedTheme .spacing.spacing2,
152164 bottom = ReedTheme .spacing.spacing2,
@@ -157,26 +169,29 @@ private fun TermItem(
157169 checked = checked,
158170 onCheckedChange = { onCheckClick() },
159171 )
160- Spacer (modifier = Modifier .width(ReedTheme .spacing.spacing1 ))
172+ Spacer (modifier = Modifier .width(ReedTheme .spacing.spacing3 + ReedTheme .spacing.spacing05 ))
161173 Text (
162174 text = title,
163175 modifier = Modifier .weight(1f ),
164176 color = ReedTheme .colors.contentPrimary,
165177 style = ReedTheme .typography.body1Medium,
166178 )
167- Icon (
168- imageVector = ImageVector .vectorResource(id = com.ninecraft.booket.core.designsystem.R .drawable.ic_chevron_right),
169- contentDescription = " Navigation Icon" ,
170- tint = Color .Unspecified ,
171- )
179+
180+ if (hasDetailAction) {
181+ Icon (
182+ imageVector = ImageVector .vectorResource(id = designR.drawable.ic_chevron_right),
183+ contentDescription = " Navigation Icon" ,
184+ tint = Color .Unspecified ,
185+ )
186+ }
172187 }
173188}
174189
175190@DevicePreview
176191@Composable
177192private fun TermsAgreementPreview () {
178193 ReedTheme {
179- TermsAgreement (
194+ TermsAgreementUi (
180195 state = TermsAgreementUiState (
181196 isAllAgreed = false ,
182197 agreedTerms = persistentListOf(false , false , false ),
0 commit comments