Common Components - kookmin-sw/capstone-2025-44 GitHub Wiki
- src/assets/images/chat-list-empty.svg
- src/components/common/Input-box.tsx
- src/components/common/bottom-sheet.tsx
- src/components/common/common-input.tsx
- src/components/common/modal.tsx
- src/components/common/toggle-switch-ver2.tsx
- src/components/common/toggle-switch.tsx
- src/components/common/type.ts
- src/components/mypage/profile-edit/birth-modal.tsx
- src/components/posting/posting-bold-text.tsx
νμνμ΄ μ μμμ μ¬μ¬μ©λλ UI μ»΄ν¬λνΈλ₯Ό λ¬Έμνν κ²μ λλ€. μ΄ μ»΄ν¬λνΈλ€μ μΌκ΄λ UI/UXλ₯Ό μ μ§νκ³ , κ°λ° μμ°μ±μ λμ΄κΈ° μν΄ μ μλμμ΅λλ€.
μ©λ: νλ©΄ μμ κ²Ήμ³μ νμλλ μ€λ²λ μ΄. νμΈμ°½, νΌ μ λ ₯ λ±μ μ¬μ©.
μ£Όμ κ΅¬μ± μμ:
-
Modal
: λ©μΈ λͺ¨λ¬ μ»΄ν¬λνΈ -
Modal.Title
: μ λͺ© νμ μ»΄ν¬λνΈ -
Modal.Button
: νλ¨ λ²νΌ -
CloseButton
: λ«κΈ° λ²νΌ (X λλ λ€λ‘κ°κΈ° μμ΄μ½)
νΉμ§:
- ν¬ν κΈ°λ° λ λλ§ (body μ΅μλ¨μ νμ)
- νμ΄λ/μ¬λΌμ΄λ μ λλ©μ΄μ
-
bottomFixed
μ΅μ μΌλ‘ νλ¨ κ³ μ κ°λ₯
μ¬μ© μμ:
<Modal onClose={handleClose} icon="back" bottomFixed={true}>
<Modal.Title text="νμΈ μμ²\nμ λ§ μ§ννμκ² μ΅λκΉ?" />
<p>μ΄ μμ
μ λλ릴 μ μμ΅λλ€.</p>
<Modal.Button onClick={handleConfirm}>νμΈ</Modal.Button>
</Modal>
κ΄λ ¨ μμ€:
-
modal.tsx
(30~72)
μ©λ: νλ©΄ νλ¨μμ μ¬λΌμ€λ UI μμ. 보쑰 μμ λλ μΆκ° μ΅μ μ λ ₯ μ μ¬μ©.
κ΅¬μ± μμ:
BottomSheet
- λ΄λΆ λ μ΄μμ:
HeaderContainer
,ContentContainer
- νλ μ΄λ¨Έ λͺ¨μ μ λλ©μ΄μ μ¬μ©
νΉμ§:
- ν¬ν κΈ°λ° λ λλ§
- μλ λμ΄ μ‘°μ
- ν€λμ λ«κΈ° λ²νΌ ν¬ν¨
κ΄λ ¨ μμ€:
-
bottom-sheet.tsx
(10~76)
κΈ°λ₯: μ«μ μ λ ₯κ³Ό μ§λ κ²μ κΈ°λ₯ λ± νΉμ μ λ ₯ μ§μ
μλΈ μ»΄ν¬λνΈ:
-
InputNum
: μ«μ μ λ ₯ -
InputMap
: μ§λ/κ²μ μ λ ₯ (μλ¬ μ λλ©μ΄μ ν¬ν¨)
κ΄λ ¨ μμ€:
-
Input-box.tsx
(10~119)
κΈ°λ₯: μΌλ° μ«μ μ λ ₯ + μλ¬ μ²λ¦¬, min/max μ ν λ±
μλΈ μ»΄ν¬λνΈ: InputInner
νΉμ§:
- μ ν¨μ± κ²μ¬ μ€ν¨ μ μλ¬ μνλ‘ λ³κ²½ (μμ/μ λλ©μ΄μ μ μ©)
- 5μ΄ ν μλ¬ μν μλ ν΄μ
κ΄λ ¨ μμ€:
-
common-input.tsx
(9~103)
κΈ°λ₯: λ κ°μ§ μνλ₯Ό μ νν μ μλ UI
Props:
-
firstText
,secondText
: λΌλ²¨ -
onChangeSelected
: μν λ³κ²½ ν¨μ -
isLeftSelected
: νμ¬ μ ν μν
κ΄λ ¨ μμ€:
-
toggle-switch.tsx
(8~71)
κΈ°λ₯: ν€λμ μ ν©νλλ‘ λΌμ΄λ ν μ€νμΌ μ μ©λ λ³ν λ²μ
κ΄λ ¨ μμ€:
-
toggle-switch-ver2.tsx
(7~69)
PostingBoldText
- ν¬μ€ν νλ©΄μμ κ°μ‘° ν μ€νΈ μΆλ ₯μ© μ€νμΌ μ»΄ν¬λνΈ
const PostingBoldText = styled.span`
margin: 2.22rem 0px 2.5rem 0px;
font-size: 1.67rem;
color: black;
text-align: center;
`;
κ΄λ ¨ μμ€:
-
posting-bold-text.tsx
(1~8)
μ€λͺ
: μλ
μμΌ μ
λ ₯μ μν λ€λ¨κ³ λͺ¨λ¬. Modal
μ κΈ°λ°μΌλ‘ ꡬνλ¨.
μ λ ₯ νλ¦:
- μ°λ μ λ ₯ β μ ν¨μ± κ²μ¬
- μ μ λ ₯ β μ ν¨μ± κ²μ¬
- μΌ μ λ ₯ β μ ν¨μ± κ²μ¬
- λͺ¨λ νλͺ© ν΅κ³Ό ν μλ£ λ²νΌμΌλ‘ λͺ¨λ¬ λ«κΈ°
νΉμ§:
- λ¨κ³λ³ μλ ν¬μ»€μ±
- μλ¬ μ μ λλ©μ΄μ + λ©μμ§ μΆλ ₯
- μν μ λ°μ΄νΈ λ° μ ν¨μ± κ²μ¬ ν¬ν¨
κ΄λ ¨ μμ€:
-
birth-modal.tsx
(36~185)
κ³΅ν΅ νμ μ `` νμΌμ μ μλμ΄ μμ΅λλ€.
νμ μ΄λ¦ | μ€λͺ | μ¬μ© μμΉ |
---|---|---|
BottomSheetProps |
BottomSheet μ»΄ν¬λνΈ props | μ΄λ¦Ό/λ«ν μν κ΄λ¦¬ |
InputType |
μ λ ₯ μ»΄ν¬λνΈ κ³΅ν΅ props | κ° κ΄λ¦¬ λ° μλ¬ μ²λ¦¬ |
ToggleType |
ν κΈ λ²νΌ props | μν λ° λΌλ²¨ μ μ |
SwitchToggleType |
ν κΈ μ€μμΉ props | μ€νμΌ μ»€μ€ν°λ§μ΄μ§ |
InputWrapperProps |
μ λ ₯ 컨ν μ΄λμ© props | λνΌ μ€μ |
InputInnerProps |
λ΄λΆ μ λ ₯ κ΄λ ¨ props | μ ν¨μ± κ²μ¬, λ μ΄μμ |
κ΄λ ¨ μμ€:
-
type.ts
(23~92)
- μ λ ₯ κ° μ’ λ₯μ λ§λ μ»΄ν¬λνΈλ₯Ό μ¬μ©νμΈμ.
- λͺ¨λ μ λ ₯μλ μ ν¨μ± κ²μ¬ λ° λͺ νν μλ¬ λ©μμ§λ₯Ό μ μ©νμΈμ.
-
Modal.Title
,Modal.Button
μ²λΌ μ»΄νμ΄λ μ»΄ν¬λνΈ ν¨ν΄μ νμ©νμΈμ. - μλλ©μ΄μ μ μΌκ΄μ± μκ² μ¬μ©νμΈμ.
- μ κ·Όμ±(ARIA λ±)μ κ³ λ €ν μνΈμμ© κ΅¬νμ κΆμ₯ν©λλ€.