@@ -32,7 +32,6 @@ import androidx.compose.ui.text.input.VisualTransformation
3232import androidx.compose.ui.unit.dp
3333import com.teamsolply.solply.designsystem.R
3434import com.teamsolply.solply.designsystem.theme.SolplyTheme
35- import kotlinx.coroutines.delay
3635
3736@Composable
3837private fun BaseTextField (
@@ -116,6 +115,7 @@ fun SolplyNicknameTextField(
116115 value : String ,
117116 isNicknameDuplicate : Boolean ,
118117 onValueChange : (String ) -> Unit ,
118+ changeNicknameValidate : (Boolean ) -> Unit ,
119119 modifier : Modifier = Modifier ,
120120 placeholder : String = "여기에 입력하세요.",
121121 maxLength : Int = 8,
@@ -132,33 +132,40 @@ fun SolplyNicknameTextField(
132132 ) ||
133133 (validationState == NickNameValidateState .Empty && value.isNotEmpty())
134134
135- LaunchedEffect (value) {
135+ LaunchedEffect (value, isNicknameDuplicate ) {
136136 if (value.isNotEmpty()) {
137137 isTyping = true
138- delay(300 )
139-
140138 if (value.length < minLength) {
141139 validationState = NickNameValidateState .TooShort
140+ changeNicknameValidate(false )
142141 isTyping = false
143142 return @LaunchedEffect
144143 }
145144 if (value.length == maxLength) {
146145 validationState = NickNameValidateState .MaxLength
146+ changeNicknameValidate(false )
147147 isTyping = false
148148 return @LaunchedEffect
149149 }
150150
151151 val hasInvalidChars = ! checkNicknameValidate(value)
152152 if (hasInvalidChars) {
153153 validationState = NickNameValidateState .Invalid
154+ changeNicknameValidate(false )
154155 isTyping = false
155156 } else {
156- validationState =
157- if (isNicknameDuplicate) NickNameValidateState .Duplicate else NickNameValidateState .Valid
157+ if (isNicknameDuplicate) {
158+ validationState = NickNameValidateState .Duplicate
159+ changeNicknameValidate(false )
160+ } else {
161+ validationState = NickNameValidateState .Valid
162+ changeNicknameValidate(true )
163+ }
158164 isTyping = false
159165 }
160166 } else {
161167 validationState = NickNameValidateState .Empty
168+ changeNicknameValidate(false )
162169 isTyping = false
163170 }
164171 }
0 commit comments