Sha256: 829b093e36b2b158af6185f8d964f88e825a7b755b326a90dd20fd15771517aa

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

import React, { Component } from 'react';
import store from '../store/Store';
import { connect } from 'react-redux';
import { actions } from '../actions/Index';
import Messages from '../components/Messages';
import ChatUtils from '../utils/ChatUtils';

@connect((state) => {
  return {
    messages: state.messages,
    conversation: state.conversation,
  }
})

export default class MessagesContainer extends Component {
  constructor(props) {
    super(props);
  }

  componentDidMount() {
    let room = document.getElementById('denshobato-message-panel');
    store.dispatch(actions.messages.fetch(room.dataset.room));
  };

  componentWillReceiveProps(nextProps) {
    if (nextProps.messages.length != this.props.messages.messages.length) {
      ChatUtils.scrollChat();
    }
  }

  render() {
    const { messages, conversation } = this.props;
    return (
      <div>
        {do {
          if (!messages.loaded) {
            <div className="loading">
              <p>LOADING MESSAGES...</p>
            </div>;
          } else {
            <Messages messages={messages.messages} conversation={conversation} showAll={messages.showAll}/>;
          }
        }}
      </div>
    );
  }
}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
denshobato_chat_panel-0.0.2 lib/react/containers/MessagesContainer.jsx
denshobato_chat_panel-0.0.1 lib/react/containers/MessagesContainer.jsx