node package manager



A companion module to otalk-client, this module provides all of the logic necessary for implementing a chat view. You only need to provide the templates.


$ npm install otalk-chat-view


var templates = require('./templates');
var BasePage = require('./base');
var createChatView = require('otalk-chat-view');
var ChatPage = createChatView(BasePage, {
    templates: {
        chatGroup = tempates.includes.chatWrapper

View Markup Assumptions

  • chat-input role

    A <div/> or <form/> that also contains a <textarea /> element inside it.

  • message-list role

    A <ul/> where all chats will be inserted (where each <li/> is for a group of chats all from the same participant).

  • messages-wrapper class

    A wrapping <div/> inside each chat group <li/> where messages will be inserted.

Sample HTML Layout

  ... your chat view header
  <ul role="message-list">
      ... display contact avatar, etc
      <div class="messages-wrapper">
        ... individual message items
  <form role="chat-input">

Model Assumptions

A Contact model of some sort is assumed, which provides:

  • .messages

    A collection of chat message models.

  • .lastSentMessageID

    The ID of the last sent message, which is needed to do message correction.

  • .sendChatState(state)

    Sends a typing/paused notification to the contact.

  • .sendChat(body, replaceID)

    Creates and sends a new message, optionally marked as a correction edit for the last sent message.

A Message model is assumed to provide:

  • .type
  • .fromFullJID
  • .fromBareJID



Created By

If you like this, follow @lancestout on twitter.