color chat on unread messages

This commit is contained in:
data 2019-07-25 13:46:17 +01:00
parent a2e7396e56
commit 1e62608188

View File

@ -33,7 +33,7 @@ class App extends React.Component {
componentDidMount() { componentDidMount() {
this.fetchData() this.fetchData()
this.socket.on('connect', () => { this.socket.on('connect', () => {
console.log('connected!') console.log(`I am ${socket.id}`)
const user = { socketId: this.socket.id } const user = { socketId: this.socket.id }
this.setState({ user }) this.setState({ user })
}) })
@ -127,6 +127,10 @@ class App extends React.Component {
this.setState({ messages }) this.setState({ messages })
} }
activateChat(namespace) {
this.readMessages(namespace)
this.setState({ namespace })
}
renderApp() { renderApp() {
const title = const title =
this.state.namespace[0] === '#' this.state.namespace[0] === '#'
@ -182,32 +186,34 @@ class App extends React.Component {
className="d-flex flex-column col-sm-2 bg-dark text-light p-2" className="d-flex flex-column col-sm-2 bg-dark text-light p-2"
id="sidebar2" id="sidebar2"
> >
<h5 className=" border-bottom pb-2">User Channels</h5> <h5 className=" border-bottom pb-2">Chats</h5>
<Button <Button
key="/" key="/"
className="btn btn-dark d-flex" className="btn btn-dark d-flex"
onClick={() => this.setState({ namespace: '/' })} onClick={() => this.activateChat('/')}
> >
<div className="mr-auto">server</div> <div className="mr-auto">server</div>
{/*<div className="ml-auto">{this.state.allUsers.length}</div>*/} {/*<div className="ml-auto">{this.state.allUsers.length}</div>*/}
</Button> </Button>
{this.state.namespaces {this.state.namespaces
.filter( .filter(
r => r => r.sockets && r.sockets.includes(this.state.user.socketId)
r.namespace[0] === '#' &&
r.sockets.includes(this.state.user.socketId)
) )
.map(r => ( .map(r => (
<Button <Button
key={r.namespace} key={r.namespace}
className="btn btn-dark d-flex" className="btn btn-dark d-flex"
onClick={() => { onClick={() => this.activateChat(r.namespace)}
this.readMessages(r.namespace)
this.setState({ namespace: r.namespace })
}}
> >
<div className="mr-auto">{r.namespace}</div> <div
className={`mr-auto ${
this.findUnreadMessages(r.namespace) > 0
? 'text-danger'
: ''
}`}
>
{r.namespace}
</div>
{/*<div className="mr-auto badge bg-success"> {/*<div className="mr-auto badge bg-success">
this.state.messages.filter( this.state.messages.filter(
m => m.namespace === r.namespace m => m.namespace === r.namespace