π 4λ¨κ³ - νμκ°μ (리ν©ν°λ§)#158
π 4λ¨κ³ - νμκ°μ
(리ν©ν°λ§)#158ChaMinZi wants to merge 10 commits intonext-step:chaminzifrom
Conversation
change - visualTransformationλ₯Ό νλΌλ―Έν°λ‘ μ λ¬ - errorMessage μ‘΄μ¬ μ¬λΆ(null)λ‘ μλ¬ νμ κ²°μ νλλ‘ λ³κ²½
change - λͺ¨λ νλκ° μλ¬ μμ΄ μ±μμ§ κ²½μ°μλ§ Sign up λ²νΌμ νμ±ν - Sign up λ²νΌμ ν΄λ¦νλ©΄ νμκ°μ μλ£ μ€λ΅λ°κ° λ ΈμΆ
malibinYun
left a comment
There was a problem hiding this comment.
4λ¨κ³ λ―Έμ
κ³ μ λ§μΌμ
¨μ΄μ!
μ¬λ¬ μ½λ©νΈμ μ§λ¬Έν΄μ£Όμ κ²μ λν λ΅λ³λ κ°μ΄ λ¨κ²¨λμμ΄μ :)
μ΄λ§ λ―Έμ
μ λ§λ¬΄λ¦¬ μ§κ³ μΆμΌμλ€λ©΄ μ½λ©νΈ λ©μμ§ λ¨κ²¨μ£Όμκ³ , λ μλν΄λ³΄κ³ μΆμΌμ κ² μμΌμλ€λ©΄ λ°μ ν λ€μ 리뷰 μμ² λΆνλλ €μ!
There was a problem hiding this comment.
μ λ ν
μ€νΈλ₯Ό μ§νν΄μ£Όμ
¨λ€μ!
κ° μ»΄ν¬λνΈλ₯Ό μν μ λ§‘κ² λλμ΄ μ£Όμ
¨μΌλ, κ° μ»΄ν¬λνΈλ UI Testλ₯Ό μμ±ν΄λ³΄μλ©΄ μ’κ² λ€μ :)
| @Composable | ||
| fun PasswordTextField( | ||
| value: String, | ||
| onValueChange: (String) -> Unit, | ||
| modifier: Modifier = Modifier, | ||
| errorMessage: String? = null, | ||
| imeAction: ImeAction = ImeAction.Unspecified, | ||
| ) { |
There was a problem hiding this comment.
λΉλ°λ²νΈ κ²μ¦ λ‘μ§λ λΉλ°λ²νΈ μ λ ₯ μ»΄ν¬λνΈμ μμ§λμκ² λͺ¨μ보λ 건 μ΄λ¨κΉμ?
μ λ ₯ κ²μ¦ ν΄λμ€λ κ°κ° μ λ ₯ κ° λ§λ€ interface - ꡬνμ²΄λ‘ λλμ΄μ μν λ³λ‘ μͺΌκ° 보μ λ μ’κ² μ΄μ.
@Composable
fun PasswordTextField(
value: String,
onValueChange: (String) -> Unit,
modifier: Modifier = Modifier,
passwordValidator: PasswordValidator = DefaultPasswordValidator,
errorMessage: String? = null,
imeAction: ImeAction = ImeAction.Unspecified,
) {
...
val isPasswordValid = passwordValidator.validate(...)
if(isPasswordValid ){
...
}
...μ΄λ°μμΌλ‘ ꡬμ±νλ€λ©΄ κ²μ¦ λ‘μ§μ΄ λ°λλλΌλ μΈλΆμμ μλ‘μ΄ κ΅¬ν체λ₯Ό μ£Όμ λ°μμ μ΄ μ»΄ν¬λνΈμ λ³κ²½μ μ μ΅μνμΌλ‘ μ€μΌ μ μκ² μ΄μ. μλ‘μ΄ μ»΄ν¬λνΈλ₯Ό λ§λ€μ§ μμΌλ©΄μμ!
There was a problem hiding this comment.
3λ¨κ³ λ―Έμ μμ μλμ κ°μ νΌλλ°±μ μ£Όμ ¨λλ°μ~ ν΄λΉ λΆλΆμ ꡬννλ©΄μλ κ° μ»΄ν¬λνΈλ³λ‘ λλλκ² λμμ§ κ³ λ―Όμ΄ λ§μ΄ λμμ΄μ!
λ§μμ£Όμ κ²μ²λΌ ν μ€νΈ μ©μ΄μ±μ μν΄μλ μ»΄ν¬λνΈκ° λλμ΄μ§λ κ²μ΄ μ’μ κ² κ°μλ°β¦ β¨κ° TextField μ»΄ν¬μ λΈ λ΄λΆ > ꡬ쑰λ κ±°μ λΉμ·νλ° λλλ μ΄μ λ₯Ό ν μ€νΈ μ©μ΄μ± λ§κ³ λ μ λͺ¨λ₯΄κ² μ΄μμ! ν΄λΉ μ΄μ λ§μΌλ‘λ μΆ©λΆνκ±ΈκΉμ??β¨UserInputTextField μ»΄ν¬λνΈλ₯Ό νμ©νλ κ°κ°μ μ λ ₯ ν μ€νΈ νλ μ»΄ν¬λνΈλ₯Ό λ§λ€μ΄λ³΄λ 건 μ΄λ¨κΉμ?
EmailInputField, UserNameTextField λ± μν μ λ§λ μ»΄ν¬λνΈλ₯Ό κ°κ° λ§λ€μ΄λ³΄μλ©΄ μ’κ² μ΄μ :)
κ·Έλ λ€λ©΄ ν μ€νΈλ νλ‘λμ κ³Ό ν μ€νΈμ μ€λ³΅μ μΈ μ½λλ₯Ό μμ±νμ§ μκ³ ,β¨μ»΄ν¬λνΈ λ¨μλ‘ μ μ νκ² νμΌμ λλ ν μ€νΈν΄λ³Ό μ μμκ±°λΌ μκ°ν΄μ :)
ν
μ€νΈ λΏλ§ μλλΌ, μ»΄ν¬λνΈμ ꡬνμ μΌμΌμ΄ 보μ¬μ£ΌκΈ° λ³΄λ€ ν λ¨κ³ μΆμν ν¨μΌλ‘μ¨ νμν μ 보λ§μ μΈλΆμμ λ°μ μ¬μ©νλλ‘ κ΅¬μ±ν μ μλ€κ³ μκ°ν΄μ.
TextFieldλ₯Ό μ²μλΆν° μ¨μ μ΄λ ν κ°λ€μ μ£Όλ₯΄λ₯΅ μ°λ€λ³΄λ©΄, κ·Έλμ μ΄ TextFieldλ 무μμ λνλ΄κ³ μΆμμ§ μκΈ°μλ μκ°μ΄ μ€λ걸릴 μ μλ€κ³ μκ°ν΄μ. μΆμνλ₯Ό ν¨μΌλ‘μ¨ κ·Έλ° μΈμ§λ₯Ό μν μκ°μ μλ΅νκ³ λ°λ‘ μλλ₯Ό λνλΌ μ μλ λ°©λ²μ΄λΌ μκ°ν΄μ.
λ, κ° μ»΄ν¬λνΈκ° λͺ¨λ μ§μ TextFieldλ₯Ό μ¬μ©νλλ°μ,
μ΄μ νΌλλ°± μ²λΌ UserInputTextFieldλ₯Ό νμ©νκ²λ ꡬμ±ν΄λ³΄μ
λ μ’κ² μ΄μ.
κ° μ
λ ₯μ λν μ»΄ν¬λνΈκ° 곡ν΅μ μΌλ‘ κ°κ³ μλ μ
λ ₯ λμμΈμ κΈ°λ³Έμ μΌλ‘ κ°μ§λ ν
μ€νΈ νλ μ»΄ν¬λνΈκ° κ°μ₯ μλμ κΉλ¦¬κ³ ,
κ° νΉμ±μ λ§λ μ»΄ν¬λνΈλ κ·Έ λμμΈ μμκ° μ μ©λμ΄μλ μ»΄ν¬λνΈλ₯Ό νμ©νλ κ²μ΄μ§μ.
κ·Έλ λ€λ©΄ κ° μ»΄ν¬λνΈκ° κ°μμ λ§λ κ΄μ¬λ§μ κ°μ§κ² μΆμν ν μ μλ€ μκ°ν΄μ :)
| !userName.matches(Regex(USERNAME_REGEX)) -> { | ||
| ValidationResult.USERNAME_INVALID_CHARACTERS |
There was a problem hiding this comment.
Regex κ°μ²΄λ μμ± λΉμ©μ΄ λΉμΈλ, λ§€λ² μμ±νκΈ° λ³΄λ€ λ―Έλ¦¬ λ§λ€μ΄λκ³ μ¬νμ©ν΄λ³΄λ 건 μ΄λ¨κΉμ?
| @Composable | ||
| fun PasswordConfirmationTextField( | ||
| value: String, | ||
| onValueChange: (String) -> Unit, | ||
| modifier: Modifier = Modifier, | ||
| errorMessage: String? = null, | ||
| imeAction: ImeAction = ImeAction.Unspecified, | ||
| ) { |
There was a problem hiding this comment.
μ΄ μ»΄ν¬λνΈμκ²λ λΉκ΅κ΅°κ³Ό λμ‘°κ΅° ν μ€νΈλ₯Ό λ λ€ λ겨μ λ΄λΆμμ κ²μ¦μ μννλλ‘ κ΅¬μ±ν΄λ³΄λ 건 μ΄λ¨κΉμ?
μλ νμΈμ! 3λ¨κ³ νΌλλ°±κ³Ό 4λ¨κ³ λ―Έμ ꡬννμμ΅λλ€!
3,4 λ¨κ³ λ―Έμ μ μ§ννλ©΄μ κΆκΈν μ μ΄ μ겨 μ§λ¬Έλλ €λ΄ λλ€~ π
3λ¨κ³ λ―Έμ μμ μλμ κ°μ νΌλλ°±μ μ£Όμ ¨λλ°μ~ ν΄λΉ λΆλΆμ ꡬννλ©΄μλ κ° μ»΄ν¬λνΈλ³λ‘ λλλκ² λμμ§ κ³ λ―Όμ΄ λ§μ΄ λμμ΄μ!
λ§μμ£Όμ κ²μ²λΌ ν μ€νΈ μ©μ΄μ±μ μν΄μλ μ»΄ν¬λνΈκ° λλμ΄μ§λ κ²μ΄ μ’μ κ² κ°μλ°β¦ β¨κ° TextField μ»΄ν¬μ λΈ λ΄λΆ ꡬ쑰λ κ±°μ λΉμ·νλ° λλλ μ΄μ λ₯Ό ν μ€νΈ μ©μ΄μ± λ§κ³ λ μ λͺ¨λ₯΄κ² μ΄μμ! ν΄λΉ μ΄μ λ§μΌλ‘λ μΆ©λΆνκ±ΈκΉμ??β¨
4λ¨κ³ 리뷰 μ λΆνλ립λλ€. π
Changes
3λ¨κ³ 리뷰 μ¬ν λ°μ
λͺ¨λ νλκ° μλ¬ μμ΄ μ±μμ§ κ²½μ° Sign up λ²νΌ νμ±ν
Sign up λ²νΌμ ν΄λ¦νλ©΄ νμκ°μ μλ£ μ€λ΅λ° λ ΈμΆ
μ ν¨μ± κ²μ¬ λ‘μ§κ³Ό λ·° ν μ€νΈ λ‘μ§ λΆλ¦¬
Screen shot
Screen_recording_20250307_102617.mp4