scrimba
Building a chat app with React and Chatkit
RoomList component
Go Pro!Bootcamp

Bootcamp

Study group

Collaborate with peers in your dedicated #study-group channel.

Code reviews

Submit projects for review using the /review command in your #code-reviews channel

RoomList component
Expand for more info
App.js
run
preview
console
import React from 'react'
import Chatkit from '@pusher/chatkit'
import MessageList from './components/MessageList'
import SendMessageForm from './components/SendMessageForm'
import RoomList from './components/RoomList'
import NewRoomForm from './components/NewRoomForm'

import { tokenUrl, instanceLocator } from './config'

class App extends React.Component {

constructor() {
super()
this.state = {
messages: []
}
this.sendMessage = this.sendMessage.bind(this)
}

componentDidMount() {
const chatManager = new Chatkit.ChatManager({
instanceLocator,
userId: 'perborgen',
tokenProvider: new Chatkit.TokenProvider({
url: tokenUrl
})
})

chatManager.connect()
.then(currentUser => {
this.currentUser = currentUser
this.currentUser.subscribeToRoom({
roomId: 9434230,
hooks: {
onNewMessage: message => {
this.setState({
messages: [...this.state.messages, message]
})
}
}
})
})
}

sendMessage(text) {
this.currentUser.sendMessage({
text,
roomId: 9434230
})
}

render() {
return (
<div className="app">
<RoomList />
<MessageList messages={this.state.messages} />
<SendMessageForm sendMessage={this.sendMessage} />
<NewRoomForm />
</div>
);
}
}

export default App
Console
index.html
-4:08