1
1
import React , { Component } from 'react' ;
2
2
import { createGroup , getAllUsers } from '../../util/APIUtils' ;
3
- import { Modal , Input , message , Checkbox , Spin } from 'antd' ;
3
+ import { Modal , Input , message } from 'antd' ;
4
+ import GroupMemberSelector from './GroupMemberSelector' ;
4
5
5
6
6
7
class GroupCreateModal extends Component {
@@ -69,7 +70,7 @@ class GroupCreateModal extends Component {
69
70
70
71
render ( ) {
71
72
const { visible, onClose } = this . props ;
72
- const { name, description, imageUrl, users, selectedUserIds, loading } = this . state ;
73
+ const { name, description, imageUrl, users, selectedUserIds } = this . state ;
73
74
74
75
return (
75
76
< Modal
@@ -80,37 +81,43 @@ class GroupCreateModal extends Component {
80
81
okText = "생성"
81
82
cancelText = "취소"
82
83
>
84
+ < div className = "form-group" >
85
+ < label className = "form-label" style = { { display :"flex" } } > 그룹 이름< p style = { { color : "red" } } > *</ p > </ label >
83
86
< Input
84
87
placeholder = "그룹 이름"
85
88
value = { name }
86
89
onChange = { e => this . handleChange ( 'name' , e . target . value ) }
87
90
style = { { marginBottom : 12 } }
88
91
/>
92
+ </ div >
93
+ < div className = "form-group" >
94
+ < label className = "form-label" > 그룹 소개</ label >
89
95
< Input . TextArea
90
96
placeholder = "그룹 소개"
91
97
value = { description }
92
98
onChange = { e => this . handleChange ( 'description' , e . target . value ) }
99
+ maxLength = { 200 }
93
100
rows = { 3 }
94
101
style = { { marginBottom : 12 } }
95
102
/>
96
- < Input
103
+ </ div >
104
+
105
+ < div className = "form-group" >
106
+ < label className = "form-label" > 그룹 이미지</ label >
107
+ < Input
97
108
placeholder = "이미지 URL (선택)"
98
109
value = { imageUrl }
99
110
onChange = { e => this . handleChange ( 'imageUrl' , e . target . value ) }
100
111
/>
101
- < div style = { { maxHeight : 150 , overflowY : 'auto' , border : '1px solid #eee' , padding : 8 } } >
102
- { loading ? (
103
- < Spin />
104
- ) : users . map ( user => (
105
- < Checkbox
106
- key = { user . id }
107
- checked = { selectedUserIds . includes ( user . id ) }
108
- onChange = { ( ) => this . handleUserSelect ( user . id ) }
109
- style = { { display : 'block' , marginBottom : 6 } }
110
- >
111
- { user . name } ({ user . username } )
112
- </ Checkbox >
113
- ) ) }
112
+ </ div >
113
+ < div className = "form-group" >
114
+ < label className = "form-label" > 그룹 멤버 선택</ label >
115
+
116
+ < GroupMemberSelector
117
+ users = { users }
118
+ selectedUserIds = { selectedUserIds }
119
+ onChange = { ( ids ) => this . setState ( { selectedUserIds : ids } ) }
120
+ />
114
121
</ div >
115
122
</ Modal >
116
123
) ;
0 commit comments