@@ -40,56 +40,60 @@ Before you begin, you will need:
40
40
- An Event API created via the AWS Console
41
41
- Take note of: HTTP endpoint, region, API Key
42
42
43
- ``` ts
43
+ ``` tsx title="src/App.tsx"
44
+ import type { EventsChannel } from ' aws-amplify/data' ;
44
45
import { useState , useEffect } from ' react' ;
45
46
import { Amplify } from ' aws-amplify' ;
46
47
import { events } from ' aws-amplify/data' ;
47
48
48
49
Amplify .configure ({
49
50
API: {
50
51
Events: {
51
- endpoint: ' https://abcdefghijklmnopqrstuvwxyz.appsync-api.us-east-1.amazonaws.com/event' ,
52
+ endpoint:
53
+ ' https://abcdefghijklmnopqrstuvwxyz.appsync-api.us-east-1.amazonaws.com/event' ,
52
54
region: ' us-east-1' ,
53
55
defaultAuthMode: ' apiKey' ,
54
- apiKey: ' da2-abcdefghijklmnopqrstuvwxyz' ,
55
- },
56
- },
56
+ apiKey: ' da2-abcdefghijklmnopqrstuvwxyz'
57
+ }
58
+ }
57
59
});
58
60
59
- export default function MyComponent () {
60
- const [events, setEvents ] = useState <any []>([]);
61
+ export default function App () {
62
+ const [myEvents, setMyEvents ] = useState <unknown []>([]);
61
63
62
64
useEffect (() => {
63
- let channel;
65
+ let channel: EventsChannel ;
64
66
65
67
const connectAndSubscribe = async () => {
66
68
channel = await events .connect (' default/channel' );
67
69
68
70
channel .subscribe ({
69
71
next : (data ) => {
70
72
console .log (' received' , data );
71
- setEvents ( prev => [data , ... prev ]);
73
+ setMyEvents (( prev ) => [data , ... prev ]);
72
74
},
73
- error : (err ) => console .error (' error' , err ),
75
+ error : (err ) => console .error (' error' , err )
74
76
});
75
- }
77
+ };
76
78
77
79
connectAndSubscribe ();
78
80
79
81
return () => channel && channel .close ();
80
82
}, []);
81
83
82
84
async function publishEvent() {
83
- await events .post (" default/channel" , {some: ' data' });
85
+ await events .post (' default/channel' , { some: ' data' });
84
86
}
85
87
86
88
return (
87
- < button onClick = {publishEvent }> Publish Event < / button >
88
- <ul >
89
- {events .map ((event ) = > (
90
- <li >{JSON.stringify(event)}< / li >
91
- ))}
92
- < / ul >
89
+ <>
90
+ <button onClick = { publishEvent } >Publish Event</button >
91
+ <ul >
92
+ { myEvents .map ((event , index ) => (
93
+ <li key = { index } >{ JSON .stringify (event )} </li >
94
+ ))}
95
+ </ul >
96
+ </>
93
97
);
94
98
}
95
99
```
0 commit comments