@@ -2,31 +2,51 @@ import React, { Component } from 'react';
2
2
import { Template } from '../../components' ;
3
3
import './orderForm.css' ;
4
4
5
+ const ADD_ORDER_URL = "http://localhost:4000/api/add-order"
6
+
5
7
class OrderForm extends Component {
6
8
constructor ( props ) {
7
9
super ( props ) ;
8
10
this . state = {
9
- item : "" ,
10
- quantity : 1
11
+ order_item : "" ,
12
+ quantity : "1"
11
13
}
12
14
}
13
15
14
16
menuItemChosen ( event ) {
15
- this . setState ( { item : event . target . value } ) ;
17
+ this . setState ( { order_item : event . target . value } ) ;
16
18
}
17
19
18
20
menuQuantityChosen ( event ) {
19
21
this . setState ( { quantity : event . target . value } ) ;
20
22
}
21
23
24
+ submitOrder ( event ) {
25
+ event . preventDefault ( ) ;
26
+ if ( this . state . order_item === "" ) return ;
27
+ fetch ( ADD_ORDER_URL , {
28
+ method : 'POST' ,
29
+ body : JSON . stringify ( {
30
+ order_item : this . state . order_item ,
31
+ quantity : this . state . quantity
32
+ } ) ,
33
+ headers : {
34
+ 'Content-Type' : 'application/json'
35
+ }
36
+ } )
37
+ . then ( res => res . json ( ) )
38
+ . then ( response => console . log ( "Success" , JSON . stringify ( response ) ) )
39
+ . catch ( error => console . error ( error ) ) ;
40
+ }
41
+
22
42
render ( ) {
23
43
return (
24
44
< Template >
25
45
< div className = "form-wrapper" >
26
46
< form >
27
47
< label className = "form-label" > I'd like to order...</ label > < br />
28
48
< select
29
- value = { this . state . item }
49
+ value = { this . state . order_item }
30
50
onChange = { ( event ) => this . menuItemChosen ( event ) }
31
51
className = "menu-select"
32
52
>
@@ -45,7 +65,7 @@ class OrderForm extends Component {
45
65
< option value = "5" > 5</ option >
46
66
< option value = "6" > 6</ option >
47
67
</ select >
48
- < button type = "button" className = "order-btn" > Order It!</ button >
68
+ < button type = "button" className = "order-btn" onClick = { ( event ) => this . submitOrder ( event ) } > Order It!</ button >
49
69
</ form >
50
70
</ div >
51
71
</ Template >
0 commit comments