@@ -71,97 +71,108 @@ export default function ResearchLabEditor({
7171 < FormProvider { ...formMethods } >
7272 < Form >
7373 < LanguagePicker onChange = { setLanguage } selected = { language } />
74- { language === 'ko' && < Editor language = "ko" professors = { professors } groups = { groups } /> }
75- { language === 'en' && < Editor language = "en" professors = { professors } groups = { groups } /> }
76- < Form . Action onCancel = { onCancel } onSubmit = { handleSubmit ( onSubmit ) } />
77- </ Form >
78- </ FormProvider >
79- ) ;
80- }
74+ < Fieldset title = "연구실명" mb = "mb-6" titleMb = "mb-2" required >
75+ < Form . Text
76+ name = "ko.name"
77+ maxWidth = "max-w-[30rem]"
78+ options = { { required : '한국어 연구실명을 입력해주세요.' } }
79+ isHidden = { language === 'en' }
80+ />
81+ < Form . Text
82+ name = "en.name"
83+ maxWidth = "max-w-[30rem]"
84+ options = { { required : '영어 연구실명을 입력해주세요.' } }
85+ isHidden = { language === 'ko' }
86+ />
87+ </ Fieldset >
88+ < div className = "flex w-[30rem] gap-6" >
89+ { /* TODO: 지도교수 복수 선택 가능하도록 */ }
90+ < Fieldset title = "지도교수" mb = "mb-11" titleMb = "mb-2" >
91+ < Form . Dropdown
92+ name = { `${ language } .professorId` }
93+ contents = { [
94+ { label : '선택 안 함' , value : null } ,
95+ ...professors [ language ] . map ( ( prof ) => ( { label : prof . name , value : prof . id } ) ) ,
96+ ] }
97+ borderStyle = "border-neutral-300"
98+ height = "h-8"
99+ />
100+ </ Fieldset >
101+ < Fieldset title = "연구실 약자" mb = "mb-11" titleMb = "mb-2" >
102+ < Form . Text name = "acronym" maxWidth = "w-[17rem]" />
103+ </ Fieldset >
104+ </ div >
105+ < div className = "flex w-[45rem] gap-6" >
106+ < Fieldset title = "전화" mb = "mb-6" titleMb = "mb-2" >
107+ < Form . Text name = "tel" maxWidth = "w-[21.75rem]" placeholder = "예: (02) 880-7302" />
108+ </ Fieldset >
109+ < Fieldset title = "웹사이트 주소" mb = "mb-6" titleMb = "mb-2" >
110+ < Form . Text name = "webtie" maxWidth = "w-[21.75rem]" placeholder = "예: (02) 880-7302" />
111+ </ Fieldset >
112+ </ div >
81113
82- const Editor = ( {
83- language,
84- professors,
85- groups,
86- } : {
87- language : Language ;
88- professors : WithLanguage < SimpleFaculty [ ] > ;
89- groups : WithLanguage < ResearchGroup [ ] > ;
90- } ) => {
91- return (
92- < >
93- < Fieldset title = "연구실명" mb = "mb-6" titleMb = "mb-2" required >
94- < Form . Text
95- name = { `${ language } .name` }
96- maxWidth = "max-w-[30rem]"
97- options = { { required : true } }
98- />
99- </ Fieldset >
100- < div className = "flex w-[30rem] gap-6" >
101- { /* TODO: 지도교수 복수 선택 가능하도록 */ }
102- < Fieldset title = "지도교수" mb = "mb-11" titleMb = "mb-2" >
114+ < Fieldset title = "연구실 위치" mb = "mb-11" titleMb = "mb-2" >
115+ < Form . Text
116+ name = { `${ language } .location` }
117+ maxWidth = "w-[45rem]"
118+ placeholder = "복수일 경우 “ / ”로 구분해주세요. 예: 301동 515호 / 518호 / 551-1호"
119+ />
120+ </ Fieldset >
121+
122+ < Fieldset title = "연구·교육 스트림" mb = "mb-11" titleMb = "mb-2" required >
103123 < Form . Dropdown
104- name = { ` ${ language } .professorId` }
124+ name = "ko.groupId"
105125 contents = { [
106126 { label : '선택 안 함' , value : null } ,
107- ...professors [ language ] . map ( ( prof ) => ( { label : prof . name , value : prof . id } ) ) ,
127+ ...groups [ language ] . map ( ( lab ) => ( { label : ` ${ lab . name } 스트림` , value : lab . id } ) ) ,
108128 ] }
129+ rules = { { required : true } }
109130 borderStyle = "border-neutral-300"
110131 height = "h-8"
132+ isHidden = { language === 'en' }
133+ />
134+ < Form . Dropdown
135+ name = "en.groupId"
136+ contents = { [
137+ { label : '선택 안 함' , value : null } ,
138+ ...groups [ language ] . map ( ( lab ) => ( { label : `${ lab . name } 스트림` , value : lab . id } ) ) ,
139+ ] }
140+ rules = { { required : true } }
141+ borderStyle = "border-neutral-300"
142+ height = "h-8"
143+ isHidden = { language === 'ko' }
111144 />
112145 </ Fieldset >
113- < Fieldset title = "연구실 약자" mb = "mb-11" titleMb = "mb-2" >
114- < Form . Text name = "acronym" maxWidth = "w-[17rem]" />
115- </ Fieldset >
116- </ div >
117- < div className = "flex w-[45rem] gap-6" >
118- < Fieldset title = "전화" mb = "mb-6" titleMb = "mb-2" >
119- < Form . Text name = "tel" maxWidth = "w-[21.75rem]" placeholder = "예: (02) 880-7302" />
120- </ Fieldset >
121- < Fieldset title = "웹사이트 주소" mb = "mb-6" titleMb = "mb-2" >
122- < Form . Text name = "webtie" maxWidth = "w-[21.75rem]" placeholder = "예: (02) 880-7302" />
123- </ Fieldset >
124- </ div >
125146
126- < Fieldset title = "연구실 위치" mb = "mb-11" titleMb = "mb-2" >
127- < Form . Text
128- name = { `${ language } .location` }
129- maxWidth = "w-[45rem]"
130- placeholder = "복수일 경우 “ / ”로 구분해주세요. 예: 301동 515호 / 518호 / 551-1호"
131- />
132- </ Fieldset >
133-
134- < Fieldset title = "연구·교육 스트림" mb = "mb-11" titleMb = "mb-2" required >
135- < Form . Dropdown
136- name = { `${ language } .groupId` }
137- contents = { [
138- { label : '선택 안 함' , value : null } ,
139- ...groups [ language ] . map ( ( lab ) => ( { label : `${ lab . name } 스트림` , value : lab . id } ) ) ,
140- ] }
141- rules = { { required : true } }
142- borderStyle = "border-neutral-300"
143- height = "h-8"
144- />
145- </ Fieldset >
147+ < Fieldset title = "소개 자료" mb = "mb-8" titleMb = "mb-2" >
148+ < div className = "mb-2.5 flex w-[45rem] items-center" >
149+ < span className = "w-[3.5rem] text-sm text-neutral-400" > | 문서</ span >
150+ < Form . File name = "pdf" multiple = { false } />
151+ </ div >
152+ < div className = "flex w-[45rem] items-center" >
153+ < span className = "w-[3.5rem] text-sm text-neutral-400" > | 유튜브</ span >
154+ < Form . Text
155+ name = "youtube"
156+ maxWidth = "w-[41.5rem]"
157+ placeholder = "예: https://www.youtube.com/watch?v=bCLWYhurBuo"
158+ />
159+ </ div >
160+ </ Fieldset >
146161
147- < Fieldset title = "소개 자료" mb = "mb-8" titleMb = "mb-2" >
148- < div className = "mb-2.5 flex w-[45rem] items-center" >
149- < span className = "w-[3.5rem] text-sm text-neutral-400" > | 문서</ span >
150- < Form . File name = "pdf" multiple = { false } />
151- </ div >
152- < div className = "flex w-[45rem] items-center" >
153- < span className = "w-[3.5rem] text-sm text-neutral-400" > | 유튜브</ span >
154- < Form . Text
155- name = "youtube"
156- maxWidth = "w-[41.5rem]"
157- placeholder = "예: https://www.youtube.com/watch?v=bCLWYhurBuo"
162+ < Fieldset title = "연구실 설명 및 이미지" mb = "mb-10" titleMb = "mb-2" required >
163+ < Form . HTML
164+ name = "ko.description"
165+ options = { { required : '한국어 연구실 설명을 입력해주세요.' } }
166+ isHidden = { language === 'en' }
158167 />
159- </ div >
160- </ Fieldset >
161-
162- < Fieldset title = "연구실 설명 및 이미지" mb = "mb-10" titleMb = "mb-2" required >
163- < Form . HTML name = { `${ language } .description` } options = { { required : true } } />
164- </ Fieldset >
165- </ >
168+ < Form . HTML
169+ name = "en.description"
170+ options = { { required : '영어 연구실 설명을 입력해주세요.' } }
171+ isHidden = { language === 'ko' }
172+ />
173+ </ Fieldset >
174+ < Form . Action onCancel = { onCancel } onSubmit = { handleSubmit ( onSubmit ) } />
175+ </ Form >
176+ </ FormProvider >
166177 ) ;
167- } ;
178+ }
0 commit comments