/simple-form

[Subjects for TutoringπŸ‘©β€πŸ«] Boilerplate for simple sign-up form

Primary LanguageTypeScript

μš”κ΅¬μ‚¬ν•­

  • νšŒμ›κ°€μž… form을 μ™„μ„±ν•΄μ£Όμ„Έμš”.
  • 각 ν•„λ“œλŠ” μœ νš¨μ„± 검사λ₯Ό ν†΅κ³Όν•΄μ•Όν•©λ‹ˆλ‹€.

μœ νš¨μ„± 검사

field name μœ νš¨ν•œ μž…λ ₯
id ν•„μˆ˜ μž…λ ₯, μ΅œμ†Œ 5자 이상, μ΅œλŒ€ 15자 μ΄ν•˜
name ν•„μˆ˜ μž…λ ₯
email email ν˜•μ‹ μ€€μˆ˜
password ν•„μˆ˜ μž…λ ₯, 영문과 숫자만 ν—ˆμš©, μ΅œμ†Œ 8자 이상, μ΅œλŒ€ 20자 μ΄ν•˜
password-confirm ν•„μˆ˜ μž…λ ₯, 영문과 숫자만 ν—ˆμš©, μ΅œμ†Œ 8자 이상, password와 같은 값이어야 함
  • ν•˜λ‚˜λΌλ„ μœ νš¨ν•˜μ§€ μ•Šμ€ μž…λ ₯이 μžˆμ„ 경우, μ—λŸ¬λ©”μ„Έμ§€λ₯Ό 화면에 ν‘œμ‹œν•©λ‹ˆλ‹€.
  • 메세지 λ‚΄μš©μ€ μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

μ—λŸ¬λ©”μ„Έμ§€

  • ν•„μˆ˜κ°’ λ―Έμž…λ ₯μ‹œ "값을 μž…λ ₯ν•΄μ£Όμ„Έμš”." λΌλŠ” 메세지λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.

  • μ΅œμ†Œ κΈ€μžμˆ˜ λ―Έλ§Œμ‹œ "μ΅œμ†Œ N자 이상 μž…λ ₯ν•΄μ£Όμ„Έμš”." λΌλŠ” 메세지λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.

  • μ΅œλŒ€ κΈ€μžμˆ˜ μ΄ˆκ³Όμ‹œ "μ΅œλŒ€ N자 μ΄ν•˜λ‘œ μž…λ ₯ν•΄μ£Όμ„Έμš”." λΌλŠ” 메세지λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.

  • email ν˜•μ‹ λ¬Έμ œμ‹œ "이메일 ν˜•μ‹μ— 맞게 μž…λ ₯ν•΄μ£Όμ„Έμš”." λΌλŠ” 메세지λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.

  • password와 password-confirm λΆˆμΌμΉ˜μ‹œ "λΉ„λ°€λ²ˆν˜Έκ°€ μΌμΉ˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€." λΌλŠ” 메세지λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.

  • password에 영문, 숫자 μ™Έμ˜ 문자 μž…λ ₯μ‹œ "영문과 숫자만 μž…λ ₯ν•΄μ£Όμ„Έμš”." λΌλŠ” 메세지λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.

  • μ—λŸ¬κ°€ μžˆμ„λ•ŒλŠ” 제좜 λ²„νŠΌμ΄ Disabled μ²˜λ¦¬λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

  • μœ νš¨μ„± κ²€μ‚¬λŠ” TextField에 μž…λ ₯이 μžˆμ„λ•Œλ§ˆλ‹€ μ‹€μ‹œκ°„μœΌλ‘œ 이루어져야 ν•©λ‹ˆλ‹€.

μœ νš¨μ„± 검사 ν•¨μˆ˜ μ˜ˆμ‹œ

<TextField
    name={'id'}
    type="text"
    placeholder="아이디"
    validate={[required, min(5), max(15)]}
/>
  • validateλŠ” λ°°μ—΄λ‘œ μ „λ‹¬λ˜λ©°, μˆœμ„œλŒ€λ‘œ κ²€μ‚¬ν•©λ‹ˆλ‹€.
  • 첫번째 ν•¨μˆ˜μ—μ„œ μ‹€νŒ¨ν•˜λ©΄ λ’€μ˜ ν•¨μˆ˜λŠ” μ‹€ν–‰λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • validate ν•¨μˆ˜λŠ” μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.