Para lograr enviar un mensaje presionando la tecla Enter, pueden hacer lo siguiente:
En MessagesView.vue, el footer lo deje igual, solo agregando un v-on con el evento keyUp:
<footer>
<textarea
rows="3"
v-model="newMessage"
@keyup.enter="sendMessage"
></textarea>
<button @click="sendMessage">
<Icon icon="carbon:send-alt" />
</button>
</footer>
La función sendMessage queda así:
const sendMessage = () => {
addMessage({
message: newMessage.value,
channelId: channelId.value,
});
newMessage.value = "";
scrollToBottom();
};
Y addMessage es una actions (función) en messages.js:
const addMessage = (newMessage) => {
messages.value.push({
id: Date.now(),
author: 1,
message: newMessage.message,
timestamp: new Date().toLocaleTimeString(),
read: false,
channelId: parseInt(newMessage.channelId),
});
};
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?