No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Canales y Mensajes

17/19
Recursos

Aportes 1

Preguntas 0

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Solución al reto de enviar mensajes en el chat:

Primero cree una mutations en el módulo message, este recibe un parámetro que es un objeto con el mensaje y el channel id:

mutations: {
    addMessage(state, newMessage) {
      state.messages.push({
        id: Date.now(),
        author: 1,
        message: newMessage.message,
        timestamp: new Date().toLocaleTimeString(),
        read: true,
        channelId: parseInt(newMessage.channelId),
      });
    },

Luego cree una variable reactiva, que la llame newMessage y la vincule con v-model al textarea de la vista:

const newMessage = ref("");

const sendMessage = () => {
  store.commit("messages/addMessage", {
    message: newMessage.value,
    channelId: channelId.value,
  });
  newMessage.value = "";
  // scrollToBottom();
};
<footer>
      <textarea
        rows="3"
        v-model="newMessage"
        @keyup.enter="sendMessage"
      ></textarea>
      <button @click="sendMessage">
        <Icon icon="carbon:send-alt" />
      </button>
    </footer>

Se puede dar click al botón de enviar, o bien presionar la tecla Enter para que se envie el mensaje.
Cabe aclarar que lo hice en Composition API