-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathp2pchat.jsx
90 lines (80 loc) · 2.05 KB
/
p2pchat.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// import Gun from 'gun';
// const gun = Gun({
// peers: ['https://7e1e-177-104-193-101.sa.ngrok.io/'],
// });
// const initialState = {
// messages: [],
// };
// function reducer(state, message) {
// return {
// messages: [...state.messages, message],
// };
// }
// function Main(props) {
// const [form, setForm] = useState({
// name: 'Ronnie Brito',
// message: '',
// });
// const [state, dispatch] = useReducer(reducer, initialState);
// let running = false;
// useEffect(() => {
// if (running) return;
// running = true;
// const messages = gun.get('messages');
// const idList = [];
// messages.map().on((m) => {
// if (idList.includes(m.createdAt + m.name)) return;
// idList.push(m.createdAt + m.name);
// dispatch({
// name: m.name,
// message: m.message,
// createdAt: m.createdAt,
// });
// });
// }, []);
// function saveMessage() {
// const messages = gun.get('messages');
// messages.set({
// name: form.name,
// message: form.message,
// createdAt: Date.now(),
// });
// setForm(() => ({
// name: 'Ronnie Brito',
// message: '',
// }));
// }
// return (
// <form
// onSubmit={(e) => {
// e.preventDefault();
// saveMessage();
// }}
// >
// <label htmlFor='message'>
// message:
// <input
// type='text'
// name='message'
// id='message'
// onChange={(e) => {
// setForm((value) => ({ ...value, message: e.target.value }));
// }}
// />
// </label>
// <div>
// {state.messages.map((message, i) => {
// return (
// <div className='message' key={i}>
// <h2>{message.name}</h2>
// <h3>{message.message}</h3>
// <p>{message.createdAt}</p>
// </div>
// );
// })}
// </div>
// <button type='submit'>send</button>
// </form>
// );
// }
// export default Main;