import React from 'react'; import PropTypes from 'prop-types'; import accounts, { me } from '../../../../initial_state'; import api from '../../../../api'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { mockContactList } from './mocks/mockContactList'; import Contact from './Contact'; export default class ContactsList extends ImmutablePureComponent { static propTypes = { myAccount : PropTypes.array, showList : PropTypes.bool, contactList : PropTypes.array, conversationList: PropTypes.array, following_count : PropTypes.number, }; static defaultProps = { showList : true, myAccount : null, userID : me, following_count : 0, contactList : mockContactList, conversationList: mockContactList, }; constructor(props) { super(props); this.state = { following_count : accounts.accounts[me].following_count, showList : props.showList, myAccount : accounts.accounts[me], contactList : mockContactList, conversationList: mockContactList, }; // this.fetchContacts(1); } submitCompose() { console.log('submit message'); } toggleList = () => { this.setState((state) => { return { showList: !state.showList, }; }); }; /** * find followed accounts * @param AccountID * @returns {Promise | void>} */ fetchContacts = (AccountID = me) => { return api(this.getState()).get('/api/v1/accounts/' + AccountID + '/following').then(resp => { console.log('resp', resp); }).catch(err => console.error('err', err)); }; render() { let renderedList = ( no contacts ); if (this.props.contactList) { renderedList = this.props.contactList.map(account => { return (
  • ); }); } const showListClass = (this.state.showList ? 'active' : 'inactive'); const classListContainer = 'messaging-box ' + showListClass; const classList = 'btn btn-primary toggle-list ' + showListClass; return (
    {this.state.following_count} contacts
    {this.state.showList && (
      {renderedList}
    )}
    ); } }