@@ -10,16 +10,18 @@ import {
10
10
// DateType,
11
11
// User
12
12
} from "@/api/model" ;
13
- import { createEvent , getEvent } from "@/api/event" ;
13
+ import { createEvent , getEvent , editEvent } from "@/api/event" ;
14
14
// import Button from "@/components/Button";
15
- // import AppSection from "@/components/AppSection ";
15
+ import AppGrid from "@/components/AppGrid " ;
16
16
17
17
export default function Testbed ( ) {
18
18
const [ name , setName ] = useState ( "" ) ;
19
19
const [ desc , setDesc ] = useState ( "" ) ;
20
20
const [ eventId , setEventId ] = useState ( "" ) ;
21
- const [ event , setEvent ] = useState < Event > ( ) ;
21
+ const [ eventKey , setEventKey ] = useState ( "" ) ;
22
+ const [ foundEvent , setFoundEvent ] = useState < Event > ( { name : "" , creation_date : 0 } ) ;
22
23
const [ eventResponse , setEventResponse ] = useState < EventResponse > ( ) ;
24
+ const [ editResponse , setEditResponse ] = useState < EventResponse > ( ) ;
23
25
// const [dates, setDates] = useState<DateType[]>([]);
24
26
25
27
const onSubmit = async ( event : React . FormEvent ) => {
@@ -37,51 +39,90 @@ export default function Testbed() {
37
39
} ;
38
40
39
41
const getEventById = async ( event : React . FormEvent ) => {
40
- // event.preventDefault();
41
- setEvent ( await getEvent ( eventId ) ) ;
42
+ event . preventDefault ( ) ;
43
+ // setFoundEvent(await getEvent(eventId));
44
+ const response = await getEvent ( eventId ) ;
45
+ console . debug ( { response } ) ;
46
+
47
+ setFoundEvent ( response ) ;
42
48
} ;
43
49
50
+ const updateEvent = async ( event : React . FormEvent ) => {
51
+ event . preventDefault ( ) ;
52
+ const dt = Math . floor ( new Date ( ) . valueOf ( ) / 1000 ) ;
53
+ const data : Event = {
54
+ name : name ,
55
+ desc : desc ,
56
+ creation_date : dt ,
57
+ dates : [ ] ,
58
+ users : [ ] ,
59
+ } ;
60
+ setEditResponse ( await editEvent ( eventKey , data ) ) ;
61
+ }
62
+
44
63
return (
45
64
< main >
46
65
< h1 > WhenWorks Testbed</ h1 >
47
66
48
- < div style = { { padding : "2rem" } } >
49
- < h2 > Create a New Event </ h2 >
50
- < form className = { classes . form } onSubmit = { onSubmit } >
51
- < Textbox value = { name } onChange = { setName } placeholder = "Event Name" />
52
- < Textbox type = "textarea" value = { desc } onChange = { setDesc } placeholder = "Event Description" />
53
- { /* DATE SELECTION GOES HERE */ }
54
- < button className = { classes . button } type = "submit" onSubmit = { ( e ) => onSubmit ( e ) } >
55
- Create event
56
- </ button >
57
- </ form >
58
- { eventResponse && (
59
- < div >
60
- < h3 > Event created!</ h3 >
61
- < p > Key: { eventResponse . key } </ p >
62
- < p > UID: { eventResponse . uid } </ p >
63
- </ div >
64
- ) }
65
- </ div >
67
+ < AppGrid >
68
+ < div style = { { padding : "2rem" } } >
69
+ < h2 > Create a New Event </ h2 >
70
+ < form className = { classes . form } onSubmit = { onSubmit } >
71
+ < Textbox value = { name } onChange = { setName } placeholder = "Event Name" />
72
+ < Textbox type = "textarea" value = { desc } onChange = { setDesc } placeholder = "Event Description" />
73
+ { /* DATE SELECTION GOES HERE */ }
74
+ < button className = { classes . button } type = "submit" onSubmit = { onSubmit } >
75
+ Create event
76
+ </ button >
77
+ </ form >
78
+ { eventResponse && (
79
+ < div >
80
+ < h3 > Event created!</ h3 >
81
+ < p > Key: { eventResponse . key } </ p >
82
+ < p > UID: { eventResponse . uid } </ p >
83
+ </ div >
84
+ ) }
85
+ </ div >
86
+
87
+ < div style = { { padding : "2rem" } } >
88
+ < h2 > Get Event</ h2 >
89
+ < form className = { classes . form } onSubmit = { getEventById } >
90
+ < Textbox value = { eventId } onChange = { setEventId } placeholder = "Event ID" />
91
+ < button className = { classes . button } type = "submit" >
92
+ Get event
93
+ </ button >
94
+ </ form >
95
+ { foundEvent . name && (
96
+ < div >
97
+ < h3 > Event found!</ h3 >
98
+ < p > Event: { foundEvent . name } </ p >
99
+ < p > Creation Date: { foundEvent . creation_date } </ p >
100
+ < p > Description: { foundEvent . desc } </ p >
101
+ < p > Dates: { foundEvent . dates ?. map ( ( date ) => date . toString ( ) ) } </ p >
102
+ < p > Users: { foundEvent . users ?. map ( ( user ) => user . username ) } </ p >
103
+ </ div >
104
+ ) }
105
+ </ div >
66
106
67
- < div style = { { padding : "2rem" } } >
68
- < h2 > Get Event</ h2 >
69
- < form className = { classes . form } >
70
- < Textbox value = { eventId } onChange = { setEventId } placeholder = "Event ID" />
71
- < button className = { classes . button } type = "submit" onSubmit = { getEventById } >
72
- Get event
73
- </ button >
74
- </ form >
75
- { event && (
76
- < div >
77
- < h3 > Event: { event . name } </ h3 >
78
- < p > Creation Date: { event . creation_date } </ p >
79
- < p > Description: { event . desc } </ p >
80
- < p > Dates: { event . dates ?. map ( ( date ) => date . toString ( ) ) } </ p >
81
- < p > Users: { event . users ?. map ( ( user ) => user . username ) } </ p >
82
- </ div >
83
- ) }
84
- </ div >
107
+ < div style = { { padding : "2rem" } } >
108
+ < h2 > Edit Event</ h2 >
109
+ < form className = { classes . form } onSubmit = { updateEvent } >
110
+ < Textbox value = { eventKey } onChange = { setEventKey } placeholder = "Event Key" />
111
+ < Textbox value = { name } onChange = { setName } placeholder = "New Event Name" />
112
+ < Textbox type = "textarea" value = { desc } onChange = { setDesc } placeholder = "New Event Description" />
113
+ < button className = { classes . button } type = "submit" >
114
+ Edit event
115
+ </ button >
116
+ </ form >
117
+ { editResponse && (
118
+ < div >
119
+ < h3 > Event edited!</ h3 >
120
+ < p > Key: { editResponse . key } </ p >
121
+ < p > UID: { editResponse . uid } </ p >
122
+ </ div >
123
+ ) }
124
+ </ div >
125
+ </ AppGrid >
85
126
</ main >
86
127
) ;
87
128
}
0 commit comments