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 _ from 'underscore'
export function addMessage ({ userId, message, timestamp, image }) {
return {
type: constants.MESSAGE_ADD,
payload: {
id: _.uniqueId('chat'),
userId,
message,
timestamp,
image
}
export const addMessage = ({ userId, message, timestamp, image }) => ({
type: constants.MESSAGE_ADD,
payload: {
userId,
message,
timestamp,
image
}
}
})
export function loadHistory (messages) {
return {
type: constants.MESSAGES_HISTORY,
messages
}
}
export const loadHistory = messages => ({
type: constants.MESSAGES_HISTORY,
messages
})

View File

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

View File

@ -63,22 +63,21 @@ export default class Toolbar extends React.PureComponent {
</div>
{stream && (
<div onClick={this.handleMicClick}
className="button mute-audio"
title="Mute audio"
>
<span className="on icon icon-mic_off" />
<span className="off icon icon-mic" />
</div>
)}
{stream && (
<div onClick={this.handleCamClick}
className="button mute-video"
title="Mute video"
>
<span className="on icon icon-videocam_off" />
<span className="off icon icon-videocam" />
<div>
<div onClick={this.handleMicClick}
className="button mute-audio"
title="Mute audio"
>
<span className="on icon icon-mic_off" />
<span className="off icon icon-mic" />
</div>
<div onClick={this.handleCamClick}
className="button mute-video"
title="Mute video"
>
<span className="on icon icon-videocam_off" />
<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) {
this.refs.video.srcObject = mediaStream
}
} else {
if (video.src !== url) {
video.src = url
}
} else if (video.src !== url) {
video.src = url
}
}
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([])
})
})
})