<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Chat</title>
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <link rel="stylesheet" href="{{ url_for('static', filename='css/bulma.css') }}">
    <link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}">
</head>

<body>
	<div id="app" class="container">
	    <section class="messages">
	        <div v-for="message in messages" class="box">
	            <article class="media">
	                <div class="media-content">
	                    <div class="content">
	                    	<p><strong>@[[ message.username ]]</strong></p>
	                        <p>[[ message.text ]]</p>
	                    </div>
	                </div>
	            </article>
	        </div>
	    </section>
	    <section class="new-message">
	        <div class="field has-addons">
	            <div class="control is-expanded">
	                <input v-model="newMessage" @keypress.enter="sendMessage" class="input" type="text" placeholder="Escribe un mensaje...">
	            </div>
	            <div class="control">
	                <button @click="sendMessage" class="button is-info">Enviar</button>
	            </div>
	        </div>
	    </section>
    </div>
    <script src="{{ url_for('static', filename='js/vendor/socket.io.slim.js') }}"></script>
    <script src="{{ url_for('static', filename='js/vendor/vue.min.js') }}"></script>
    <script>
	    var socket = io.connect('{{ domain }}');
	    var app = new Vue({
		    el: "#app",
		    delimiters: ['[[', ']]'],
		    data: {
		    	channel: {{ channel }},
		    	username: '{{ username }}',
		    	messages: [
		    	{% for message in chat %}
		    		{
		    			username: '{{ message.username }}',
		    			text: '{{ message.text }}'
		    		}{% if not loop.last %},{% endif %}
		    	{% endfor %}
		    	],
		    	newMessage: ''
		    },
		    methods: {
		    	sendMessage: () => {
		    		// Send new message
					socket.emit('new_message', {
				    	channel: app.channel,
				    	username: app.username,
				    	text: app.newMessage
				    });
				    // Clear text
				    app.$set(app, 'newMessage', '');
		    	}
		    }
		});

		socket.on('connect', function() {
		    console.log('Connect')
		});

		socket.on('channel-' + app.channel, function(msg) {
			// Add new message to HTML
			let my_messages = app.messages;
			my_messages.push({
				username: msg.username,
				text: msg.text
			})
		    app.$set(app, 'messages', my_messages);
		});
    </script>
</body>

</html>