-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathui.js
40 lines (31 loc) · 886 Bytes
/
ui.js
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
const renderMessage = message => `<li>${ message.text } <i>${ JSON.stringify(message.meta) }</i></li>`;
const updateUI = () => {
const messages = store.getState();
$('.messages > ul').html(messages.map(renderMessage));
};
const handleAdd = () => {
const $message = $('.messages > input[type=text]');
const $global = $('.messages > input[type=checkbox]');
store.dispatch(
chatMessage(
$message.val(),
$global.is(':checked')
));
$message.val('');
};
const loadUI = () => {
$('#app').append(`
<div class="messages">
<h2>Websocket messages:</h2>
<ul></ul>
<input type="checkbox" checked />
<label for="">Send to server</label>
<br/>
<input type="text" />
<button>Send</button>
</div>
`);
store.subscribe(updateUI);
$(document).on('click', '.messages > button', handleAdd);
updateUI();
};