Small code cleanup

This commit is contained in:
Michael H. Arieli 2018-11-27 16:08:22 -08:00
parent 71e7792db7
commit 4e6657f19a
5 changed files with 63 additions and 47 deletions

View File

@ -1,22 +1,16 @@
import * as constants from '../constants.js' import * as constants from '../constants.js'
import _ from 'underscore'
export function addMessage ({ userId, message, timestamp, image }) { export const addMessage = ({ userId, message, timestamp, image }) => ({
return { type: constants.MESSAGE_ADD,
type: constants.MESSAGE_ADD, payload: {
payload: { userId,
id: _.uniqueId('chat'), message,
userId, timestamp,
message, image
timestamp,
image
}
} }
} })
export function loadHistory (messages) { export const loadHistory = messages => ({
return { type: constants.MESSAGES_HISTORY,
type: constants.MESSAGES_HISTORY, messages
messages })
}
}

View File

@ -72,21 +72,18 @@ export default class Chat extends React.PureComponent {
<div key={i} className="chat-item"> <div key={i} className="chat-item">
<div className="chat-item-label" /> <div className="chat-item-label" />
<div className="chat-item-icon"> <div className="chat-item-icon">
{message.image ? ( <div className="profile-image-component
<div className="profile-image-component profile-image-component-circle">
profile-image-component-circle"> {message.image ? (
<div className="profile-image-component-image"> <div className="profile-image-component-image">
<img src={message.image} /> <img src={message.image} />
</div> </div>
</div> ) : (
) : (
<div className="profile-image-component
profile-image-component-circle">
<div className="profile-image-component-initials"> <div className="profile-image-component-initials">
{message.userId.substr(0, 2).toUpperCase()} {message.userId.substr(0, 2).toUpperCase()}
</div> </div>
</div> )}
)} </div>
</div> </div>
<div className="chat-item-content"> <div className="chat-item-content">
{message.message} {message.message}

View File

@ -63,22 +63,21 @@ export default class Toolbar extends React.PureComponent {
</div> </div>
{stream && ( {stream && (
<div onClick={this.handleMicClick} <div>
className="button mute-audio" <div onClick={this.handleMicClick}
title="Mute audio" className="button mute-audio"
> title="Mute audio"
<span className="on icon icon-mic_off" /> >
<span className="off icon icon-mic" /> <span className="on icon icon-mic_off" />
</div> <span className="off icon icon-mic" />
)} </div>
<div onClick={this.handleCamClick}
{stream && ( className="button mute-video"
<div onClick={this.handleCamClick} title="Mute video"
className="button mute-video" >
title="Mute video" <span className="on icon icon-videocam_off" />
> <span className="off icon icon-videocam" />
<span className="on icon icon-videocam_off" /> </div>
<span className="off icon icon-videocam" />
</div> </div>
)} )}

View File

@ -37,10 +37,8 @@ export default class Video extends React.PureComponent {
if (video.srcObject !== mediaStream) { if (video.srcObject !== mediaStream) {
this.refs.video.srcObject = mediaStream this.refs.video.srcObject = mediaStream
} }
} else { } else if (video.src !== url) {
if (video.src !== url) { video.src = url
video.src = url
}
} }
} }
render () { render () {

View File

@ -0,0 +1,28 @@
import * as ChatActions from '../../actions/ChatActions.js'
import messages from '../messages.js'
describe('reducers/messages', () => {
describe('addMessage', () => {
it('add message to chat', () => {
const payload = {
userId: 'test',
message: 'hello',
timestamp: new Date(),
image: null
}
let state = messages()
state = messages(state, ChatActions.addMessage(payload))
expect(state).toEqual([payload])
})
})
describe('messageHistory', () => {
it('get chat message hisotry', () => {
let state = messages()
state = messages(state, ChatActions.loadHistory([]))
expect(state).toEqual([])
})
})
})