@@ -2,23 +2,28 @@ package com.threegap.bitnagil.presentation.withdrawal
22
33import androidx.compose.foundation.background
44import androidx.compose.foundation.layout.Arrangement
5- import androidx.compose.foundation.layout.Box
65import androidx.compose.foundation.layout.Column
76import androidx.compose.foundation.layout.Row
87import androidx.compose.foundation.layout.Spacer
8+ import androidx.compose.foundation.layout.WindowInsets
99import androidx.compose.foundation.layout.fillMaxSize
1010import androidx.compose.foundation.layout.fillMaxWidth
1111import androidx.compose.foundation.layout.height
12+ import androidx.compose.foundation.layout.ime
1213import androidx.compose.foundation.layout.padding
1314import androidx.compose.foundation.layout.statusBarsPadding
15+ import androidx.compose.foundation.layout.windowInsetsPadding
16+ import androidx.compose.foundation.rememberScrollState
1417import androidx.compose.foundation.shape.RoundedCornerShape
1518import androidx.compose.foundation.text.BasicTextField
19+ import androidx.compose.foundation.verticalScroll
1620import androidx.compose.material3.Text
1721import androidx.compose.runtime.Composable
1822import androidx.compose.runtime.getValue
1923import androidx.compose.runtime.remember
2024import androidx.compose.ui.Alignment
2125import androidx.compose.ui.Modifier
26+ import androidx.compose.ui.draw.alpha
2227import androidx.compose.ui.focus.FocusRequester
2328import androidx.compose.ui.focus.focusRequester
2429import androidx.compose.ui.focus.onFocusChanged
@@ -81,16 +86,17 @@ private fun WithdrawalScreen(
8186 onCustomReasonChanged : (String ) -> Unit ,
8287 onBackClick : () -> Unit ,
8388 onWithdrawalClick : () -> Unit ,
84- modifier : Modifier = Modifier ,
8589) {
8690 val focusManager = LocalFocusManager .current
8791 val focusRequester = remember { FocusRequester () }
92+ val scrollState = rememberScrollState()
8893
8994 Column (
90- modifier = modifier
95+ modifier = Modifier
9196 .fillMaxSize()
9297 .background(BitnagilTheme .colors.white)
93- .statusBarsPadding(),
98+ .statusBarsPadding()
99+ .windowInsetsPadding(WindowInsets .ime),
94100 ) {
95101 BitnagilTopBar (
96102 title = " 탈퇴하기" ,
@@ -99,7 +105,10 @@ private fun WithdrawalScreen(
99105 )
100106
101107 Column (
102- modifier = Modifier .padding(horizontal = 16 .dp),
108+ modifier = Modifier
109+ .padding(horizontal = 16 .dp)
110+ .weight(1f )
111+ .verticalScroll(scrollState),
103112 ) {
104113 Spacer (modifier = Modifier .height(46 .dp))
105114
@@ -136,13 +145,12 @@ private fun WithdrawalScreen(
136145 style = BitnagilTheme .typography.body2Medium,
137146 )
138147 }
139- }
140148
141- if (uiState.isTermsChecked) {
142149 Spacer (modifier = Modifier .height(48 .dp))
143150
144151 Column (
145- modifier = Modifier .padding(horizontal = 16 .dp),
152+ modifier = Modifier
153+ .alpha(if (uiState.isTermsChecked) 1f else 0f ),
146154 ) {
147155 Text (
148156 text = " 탈퇴 사유를 알려주실 수 있나요?" ,
@@ -172,46 +180,43 @@ private fun WithdrawalScreen(
172180 color = BitnagilTheme .colors.coolGray10,
173181 ),
174182 modifier = Modifier
183+ .fillMaxWidth()
184+ .background(
185+ color = BitnagilTheme .colors.coolGray99,
186+ shape = RoundedCornerShape (12 .dp),
187+ )
188+ .height(112 .dp)
189+ .padding(vertical = 14 .dp, horizontal = 20 .dp)
175190 .focusRequester(focusRequester)
176191 .onFocusChanged { focusState ->
177192 if (focusState.isFocused) {
178193 onReasonSelect(null )
179194 }
180195 },
181196 decorationBox = { innerTextField ->
182- Box (
183- modifier = Modifier
184- .fillMaxWidth()
185- .background(
186- color = BitnagilTheme .colors.coolGray99,
187- shape = RoundedCornerShape (12 .dp),
188- )
189- .height(112 .dp)
190- .padding(vertical = 14 .dp, horizontal = 20 .dp),
191- ) {
192- if (uiState.customReasonText.isEmpty()) {
193- Text (
194- text = " 기타사항(직접 입력)" ,
195- color = BitnagilTheme .colors.coolGray80,
196- style = BitnagilTheme .typography.subtitle1Medium,
197- )
198- }
199- innerTextField()
197+ if (uiState.customReasonText.isEmpty()) {
198+ Text (
199+ text = " 기타사항(직접 입력)" ,
200+ color = BitnagilTheme .colors.coolGray80,
201+ style = BitnagilTheme .typography.subtitle1Medium,
202+ )
200203 }
204+ innerTextField()
201205 },
202206 )
203207 }
204- }
205208
206- Spacer (modifier = Modifier .weight(1f ))
209+ Spacer (modifier = Modifier .height(54 .dp))
210+ }
207211
208212 BitnagilTextButton (
209213 text = " 탈퇴하기" ,
210214 onClick = onWithdrawalClick,
211215 enabled = uiState.isWithdrawalEnabled,
212216 modifier = Modifier
213217 .fillMaxWidth()
214- .padding(horizontal = 16 .dp, vertical = 14 .dp),
218+ .alpha(if (uiState.isTermsChecked) 1f else 0f )
219+ .padding(vertical = 14 .dp, horizontal = 16 .dp),
215220 )
216221 }
217222}
0 commit comments