@@ -19,7 +19,7 @@ import {
19
19
UserData ,
20
20
} from "../../../interface" ;
21
21
import useStyles from "../styles" ;
22
- import { check } from "./check" ;
22
+ import { check , checkQuestion } from "./check" ;
23
23
import { useSnackbar } from "notistack" ;
24
24
import { KeyboardDatePicker , MuiPickersUtilsProvider } from "@material-ui/pickers" ;
25
25
import DateFnsUtils from "@date-io/date-fns" ;
@@ -34,6 +34,19 @@ export default function GroupAddDialogs(props: {
34
34
} ) {
35
35
const { open, setOpen, userData, reload} = props
36
36
const [ data , setData ] = React . useState ( DefaultGroupAddData ) ;
37
+ const [ question , setQuestion ] = React . useState < {
38
+ question1 : string ,
39
+ question2 : string ,
40
+ question3 : string ,
41
+ question4 : string
42
+ } > (
43
+ {
44
+ question1 : "" ,
45
+ question2 : "" ,
46
+ question3 : "" ,
47
+ question4 : ""
48
+ }
49
+ ) ;
37
50
const { enqueueSnackbar} = useSnackbar ( ) ;
38
51
const history = useHistory ( ) ;
39
52
@@ -46,9 +59,24 @@ export default function GroupAddDialogs(props: {
46
59
47
60
const request = ( ) => {
48
61
console . log ( data ) ;
62
+
63
+ // check question item
64
+ const errQuestion = checkQuestion ( question ) ;
65
+ if ( errQuestion !== "" ) {
66
+ console . log ( "NG: " + errQuestion )
67
+ enqueueSnackbar ( errQuestion , { variant : "error" } ) ;
68
+ return ;
69
+ }
70
+
71
+ const tmpQuestion = "1. どこで当団体のことを知りましたか?\n" + question . question1 + "\n\n" +
72
+ "2. どのような用途で当団体のネットワークに接続しますか?\n" + question . question2 + "\n\n" +
73
+ "3. アドレスを当団体から割り当てる必要はありますか?\n" + question . question3 + "\n\n" +
74
+ "4. 情報発信しているSNS(Twitter,Facebook)やWebサイト、GitHub、成果物などがありましたら教えてください。\n" + question . question4 ;
75
+ setData ( { ...data , question : tmpQuestion } ) ;
76
+
49
77
const err = check ( data ) ;
50
78
if ( err === "" ) {
51
- console . log ( "OK" )
79
+ console . log ( "OK" ) ;
52
80
Post ( data ) . then ( res => {
53
81
if ( res . error === "" ) {
54
82
console . log ( res . data ) ;
@@ -85,7 +113,7 @@ export default function GroupAddDialogs(props: {
85
113
< Grid item xs = { 12 } >
86
114
< TermAgreeAdd key = { "term_agree_add_select" } data = { data } setData = { setData } />
87
115
< br />
88
- < QuestionAdd key = { "connection_add_type" } data = { data } setData = { setData } />
116
+ < QuestionAdd key = { "connection_add_type" } data = { question } setData = { setQuestion } />
89
117
< br />
90
118
< OrgInfoAdd key = { "org_info_add" } data = { data } setData = { setData } />
91
119
< br />
@@ -165,43 +193,43 @@ export function TermAgreeAdd(props: {
165
193
}
166
194
167
195
export function QuestionAdd ( props : {
168
- data : GroupAddData
169
- setData : Dispatch < SetStateAction < GroupAddData > >
196
+ data : {
197
+ question1 : string ,
198
+ question2 : string ,
199
+ question3 : string ,
200
+ question4 : string
201
+ }
202
+ setData : Dispatch < SetStateAction < {
203
+ question1 : string ,
204
+ question2 : string ,
205
+ question3 : string ,
206
+ question4 : string
207
+ } > >
170
208
} ) {
171
209
const { data, setData} = props ;
172
- const [ question1 , setQuestion1 ] = React . useState ( "" ) ;
173
- const [ question2 , setQuestion2 ] = React . useState ( "" ) ;
174
- const [ question3 , setQuestion3 ] = React . useState ( "" ) ;
175
- const [ question4 , setQuestion4 ] = React . useState ( "" ) ;
176
210
const classes = useStyles ( ) ;
177
211
178
- const apply = ( ) => {
179
- const question = question1 + "\n" + question2 + "\n" + question3 + "\n" + question4 ;
180
- setData ( { ...data , question : question } ) ;
181
- }
182
-
183
212
return (
184
213
< div >
185
214
< FormControl component = "fieldset" >
186
215
< FormLabel component = "legend" > 1. どこで当団体のことを知りましたか?</ FormLabel >
187
- < div > 当団体の運営委員より紹介を受けた方は紹介者の名前を記入してください。</ div >
216
+ < div > 当団体の運営委員より紹介を受けた方は紹介者の名前を記入してください。[10文字以上] </ div >
188
217
< br />
189
218
< TextField
190
219
className = { classes . formVeryLong }
191
220
id = "question1"
192
221
label = ""
193
222
multiline
194
223
rows = { 4 }
195
- value = { question1 }
224
+ value = { data . question1 }
196
225
onChange = { event => {
197
- setQuestion1 ( event . target . value ) ;
198
- apply ( ) ;
226
+ setData ( { ...data , question1 : event . target . value } ) ;
199
227
} }
200
228
variant = "outlined"
201
229
/>
202
230
< br />
203
231
< FormLabel component = "legend" > 2. どのような用途で当団体のネットワークに接続しますか?</ FormLabel >
204
- < div > 例) 研究目的、勉強、自宅サーバ用途(商用利用は不可)300文字 </ div >
232
+ < div > 例) 研究目的、勉強、自宅サーバ用途(商用利用は不可)[300文字以上] </ div >
205
233
< br />
206
234
< TextField
207
235
className = { classes . formVeryLong }
@@ -212,44 +240,42 @@ export function QuestionAdd(props: {
212
240
inputProps = { {
213
241
minLength : 300
214
242
} }
215
- value = { question2 }
243
+ value = { data . question2 }
216
244
onChange = { event => {
217
- setQuestion2 ( event . target . value ) ;
218
- apply ( ) ;
245
+ setData ( { ...data , question2 : event . target . value } ) ;
219
246
} }
220
247
variant = "outlined"
221
248
/>
222
249
< br />
223
250
< FormLabel component = "legend" > 3. アドレスを当団体から割り当てる必要はありますか?</ FormLabel >
224
- < div > PIアドレスやASS番号をお持ちの方は、それらをご利用いただくことも可能です。</ div >
251
+ < div > PIアドレスやASS番号をお持ちの方は、それらをご利用いただくことも可能です。[5文字以上] </ div >
225
252
< br />
226
253
< TextField
227
254
className = { classes . formVeryLong }
228
255
id = "question3"
229
256
label = ""
230
257
multiline
231
258
rows = { 4 }
232
- value = { question3 }
259
+ value = { data . question3 }
233
260
onChange = { event => {
234
- setQuestion3 ( event . target . value ) ;
235
- apply ( ) ;
261
+ setData ( { ...data , question3 : event . target . value } ) ;
236
262
} }
237
263
variant = "outlined"
238
264
/>
239
265
< br />
240
266
< FormLabel component = "legend" > 4.
241
267
情報発信しているSNS(Twitter,Facebook)やWebサイト、GitHub、成果物などがありましたら教えてください。</ FormLabel >
268
+ < div > [20文字以上]</ div >
242
269
< br />
243
270
< TextField
244
271
className = { classes . formVeryLong }
245
272
id = "question4"
246
273
label = ""
247
274
multiline
248
275
rows = { 4 }
249
- value = { question4 }
276
+ value = { data . question4 }
250
277
onChange = { event => {
251
- setQuestion4 ( event . target . value ) ;
252
- apply ( ) ;
278
+ setData ( { ...data , question4 : event . target . value } ) ;
253
279
} }
254
280
variant = "outlined"
255
281
/>
0 commit comments