11import React , { Component } from 'react' ;
22import { 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' ;
45
56
67class GroupCreateModal extends Component {
@@ -69,7 +70,7 @@ class GroupCreateModal extends Component {
6970
7071 render ( ) {
7172 const { visible, onClose } = this . props ;
72- const { name, description, imageUrl, users, selectedUserIds, loading } = this . state ;
73+ const { name, description, imageUrl, users, selectedUserIds } = this . state ;
7374
7475 return (
7576 < Modal
@@ -80,37 +81,43 @@ class GroupCreateModal extends Component {
8081 okText = "생성"
8182 cancelText = "취소"
8283 >
84+ < div className = "form-group" >
85+ < label className = "form-label" style = { { display :"flex" } } > 그룹 이름< p style = { { color : "red" } } > *</ p > </ label >
8386 < Input
8487 placeholder = "그룹 이름"
8588 value = { name }
8689 onChange = { e => this . handleChange ( 'name' , e . target . value ) }
8790 style = { { marginBottom : 12 } }
8891 />
92+ </ div >
93+ < div className = "form-group" >
94+ < label className = "form-label" > 그룹 소개</ label >
8995 < Input . TextArea
9096 placeholder = "그룹 소개"
9197 value = { description }
9298 onChange = { e => this . handleChange ( 'description' , e . target . value ) }
99+ maxLength = { 200 }
93100 rows = { 3 }
94101 style = { { marginBottom : 12 } }
95102 />
96- < Input
103+ </ div >
104+
105+ < div className = "form-group" >
106+ < label className = "form-label" > 그룹 이미지</ label >
107+ < Input
97108 placeholder = "이미지 URL (선택)"
98109 value = { imageUrl }
99110 onChange = { e => this . handleChange ( 'imageUrl' , e . target . value ) }
100111 />
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+ />
114121 </ div >
115122 </ Modal >
116123 ) ;
0 commit comments