diff --git a/__tests__/__snapshots__/RoomItem.js.snap b/__tests__/__snapshots__/RoomItem.js.snap index 23643947b..14e65d1d0 100644 --- a/__tests__/__snapshots__/RoomItem.js.snap +++ b/__tests__/__snapshots__/RoomItem.js.snap @@ -33,10 +33,12 @@ exports[`render channel 1`] = ` style={ Array [ Object { - "alignItems": "center", + "alignItems": "flex-start", + "borderBottomColor": "#ddd", + "borderBottomWidth": 0.5, "flexDirection": "row", "paddingHorizontal": 16, - "paddingVertical": 10, + "paddingVertical": 12, }, undefined, ] @@ -53,8 +55,8 @@ exports[`render channel 1`] = ` Object { "backgroundColor": "#00BCD4", "borderRadius": 4, - "height": 40, - "width": 40, + "height": 56, + "width": 56, }, undefined, ] @@ -75,7 +77,7 @@ exports[`render channel 1`] = ` "color": "#ffffff", }, Object { - "fontSize": 20, + "fontSize": 28, }, ], Object { @@ -93,44 +95,89 @@ exports[`render channel 1`] = ` style={ Object { "flex": 1, + "height": "100%", "marginLeft": 16, "marginRight": 4, } } > - - general - - - Nov 10 - + + general + + + Nov 10 + + + + + + + @@ -170,10 +217,12 @@ exports[`render no icon 1`] = ` style={ Array [ Object { - "alignItems": "center", + "alignItems": "flex-start", + "borderBottomColor": "#ddd", + "borderBottomWidth": 0.5, "flexDirection": "row", "paddingHorizontal": 16, - "paddingVertical": 10, + "paddingVertical": 12, }, undefined, ] @@ -190,8 +239,8 @@ exports[`render no icon 1`] = ` Object { "backgroundColor": "#3F51B5", "borderRadius": 4, - "height": 40, - "width": 40, + "height": 56, + "width": 56, }, undefined, ] @@ -212,7 +261,7 @@ exports[`render no icon 1`] = ` "color": "#ffffff", }, Object { - "fontSize": 20, + "fontSize": 28, }, ], Object { @@ -230,44 +279,89 @@ exports[`render no icon 1`] = ` style={ Object { "flex": 1, + "height": "100%", "marginLeft": 16, "marginRight": 4, } } > - - name - - - Nov 10 - + + name + + + Nov 10 + + + + + + + @@ -307,10 +401,12 @@ exports[`render private group 1`] = ` style={ Array [ Object { - "alignItems": "center", + "alignItems": "flex-start", + "borderBottomColor": "#ddd", + "borderBottomWidth": 0.5, "flexDirection": "row", "paddingHorizontal": 16, - "paddingVertical": 10, + "paddingVertical": 12, }, undefined, ] @@ -327,8 +423,8 @@ exports[`render private group 1`] = ` Object { "backgroundColor": "#FF9800", "borderRadius": 4, - "height": 40, - "width": 40, + "height": 56, + "width": 56, }, undefined, ] @@ -349,7 +445,7 @@ exports[`render private group 1`] = ` "color": "#ffffff", }, Object { - "fontSize": 20, + "fontSize": 28, }, ], Object { @@ -367,44 +463,89 @@ exports[`render private group 1`] = ` style={ Object { "flex": 1, + "height": "100%", "marginLeft": 16, "marginRight": 4, } } > - - private-group - - - Nov 10 - + + private-group + + + Nov 10 + + + + + + + @@ -445,10 +586,12 @@ exports[`render unread +999 1`] = ` style={ Array [ Object { - "alignItems": "center", + "alignItems": "flex-start", + "borderBottomColor": "#ddd", + "borderBottomWidth": 0.5, "flexDirection": "row", "paddingHorizontal": 16, - "paddingVertical": 10, + "paddingVertical": 12, }, undefined, ] @@ -465,8 +608,8 @@ exports[`render unread +999 1`] = ` Object { "backgroundColor": "#3F51B5", "borderRadius": 4, - "height": 40, - "width": 40, + "height": 56, + "width": 56, }, undefined, ] @@ -482,7 +625,7 @@ exports[`render unread +999 1`] = ` "color": "#ffffff", }, Object { - "fontSize": 20, + "fontSize": 28, }, ] } @@ -495,65 +638,112 @@ exports[`render unread +999 1`] = ` style={ Object { "flex": 1, + "height": "100%", "marginLeft": 16, "marginRight": 4, } } > - - name - - - Nov 10 - - - + name + + + Nov 10 + + + - 999+ - + > + + + + + 999+ + + + @@ -592,10 +782,12 @@ exports[`render unread 1`] = ` style={ Array [ Object { - "alignItems": "center", + "alignItems": "flex-start", + "borderBottomColor": "#ddd", + "borderBottomWidth": 0.5, "flexDirection": "row", "paddingHorizontal": 16, - "paddingVertical": 10, + "paddingVertical": 12, }, undefined, ] @@ -612,8 +804,8 @@ exports[`render unread 1`] = ` Object { "backgroundColor": "#3F51B5", "borderRadius": 4, - "height": 40, - "width": 40, + "height": 56, + "width": 56, }, undefined, ] @@ -629,7 +821,7 @@ exports[`render unread 1`] = ` "color": "#ffffff", }, Object { - "fontSize": 20, + "fontSize": 28, }, ] } @@ -642,65 +834,112 @@ exports[`render unread 1`] = ` style={ Object { "flex": 1, + "height": "100%", "marginLeft": 16, "marginRight": 4, } } > - - name - - - Nov 10 - - - + name + + + Nov 10 + + + - 1 - + > + + + + + 1 + + + @@ -739,10 +978,12 @@ exports[`renders correctly 1`] = ` style={ Array [ Object { - "alignItems": "center", + "alignItems": "flex-start", + "borderBottomColor": "#ddd", + "borderBottomWidth": 0.5, "flexDirection": "row", "paddingHorizontal": 16, - "paddingVertical": 10, + "paddingVertical": 12, }, undefined, ] @@ -759,8 +1000,8 @@ exports[`renders correctly 1`] = ` Object { "backgroundColor": "#3F51B5", "borderRadius": 4, - "height": 40, - "width": 40, + "height": 56, + "width": 56, }, undefined, ] @@ -776,7 +1017,7 @@ exports[`renders correctly 1`] = ` "color": "#ffffff", }, Object { - "fontSize": 20, + "fontSize": 28, }, ] } @@ -789,44 +1030,89 @@ exports[`renders correctly 1`] = ` style={ Object { "flex": 1, + "height": "100%", "marginLeft": 16, "marginRight": 4, } } > - - name - - - Nov 10 - + + name + + + Nov 10 + + + + + + + diff --git a/__tests__/__snapshots__/Storyshots.test.js.snap b/__tests__/__snapshots__/Storyshots.test.js.snap index 7a0a3c1bb..eb5aadeff 100644 --- a/__tests__/__snapshots__/Storyshots.test.js.snap +++ b/__tests__/__snapshots__/Storyshots.test.js.snap @@ -189,10 +189,12 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` style={ Array [ Object { - "alignItems": "center", + "alignItems": "flex-start", + "borderBottomColor": "#ddd", + "borderBottomWidth": 0.5, "flexDirection": "row", "paddingHorizontal": 16, - "paddingVertical": 10, + "paddingVertical": 12, }, undefined, ] @@ -209,8 +211,8 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` Object { "backgroundColor": "#8BC34A", "borderRadius": 4, - "height": 40, - "width": 40, + "height": 56, + "width": 56, }, undefined, ] @@ -226,7 +228,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` "color": "#ffffff", }, Object { - "fontSize": 20, + "fontSize": 28, }, ] } @@ -239,44 +241,89 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` style={ Object { "flex": 1, + "height": "100%", "marginLeft": 16, "marginRight": 4, } } > - - rocket.cat - - - Nov 10 - + + rocket.cat + + + Nov 10 + + + + + + + @@ -311,10 +358,12 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` style={ Array [ Object { - "alignItems": "center", + "alignItems": "flex-start", + "borderBottomColor": "#ddd", + "borderBottomWidth": 0.5, "flexDirection": "row", "paddingHorizontal": 16, - "paddingVertical": 10, + "paddingVertical": 12, }, undefined, ] @@ -331,8 +380,8 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` Object { "backgroundColor": "#8BC34A", "borderRadius": 4, - "height": 40, - "width": 40, + "height": 56, + "width": 56, }, undefined, ] @@ -348,7 +397,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` "color": "#ffffff", }, Object { - "fontSize": 20, + "fontSize": 28, }, ] } @@ -361,46 +410,91 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` style={ Object { "flex": 1, + "height": "100%", "marginLeft": 16, "marginRight": 4, } } > - - rocket.cat - - - Nov 10 - + + rocket.cat + + + Nov 10 + + + + + + + @@ -435,10 +529,12 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` style={ Array [ Object { - "alignItems": "center", + "alignItems": "flex-start", + "borderBottomColor": "#ddd", + "borderBottomWidth": 0.5, "flexDirection": "row", "paddingHorizontal": 16, - "paddingVertical": 10, + "paddingVertical": 12, }, undefined, ] @@ -455,8 +551,8 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` Object { "backgroundColor": "#8BC34A", "borderRadius": 4, - "height": 40, - "width": 40, + "height": 56, + "width": 56, }, undefined, ] @@ -472,7 +568,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` "color": "#ffffff", }, Object { - "fontSize": 20, + "fontSize": 28, }, ] } @@ -485,65 +581,112 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` style={ Object { "flex": 1, + "height": "100%", "marginLeft": 16, "marginRight": 4, } } > - - rocket.cat - - - Nov 10 - - - + rocket.cat + + + Nov 10 + + + - 1 - + > + + + + + 1 + + + - - Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries - - - Nov 10 - - - + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + + + Nov 10 + + + - 9 - + > + + + + + 9 + + + - - Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries - - - Nov 10 - - - + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + + + Nov 10 + + + - 99 - + > + + + + + 99 + + + - - Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries - - - Nov 10 - - - + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + + + Nov 10 + + + - 100 - + > + + + + + 100 + + + - - Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries - - - Nov 10 - - - + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + + + Nov 10 + + + - 999+ - + > + + + + + 999+ + + + - - Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries - - - Nov 10 - - - + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + + + Nov 10 + + + - @ 999+ - + > + + + + + @ 999+ + + + - - W - - - Nov 10 - + + W + + + Nov 10 + + + + + + + @@ -1411,10 +1846,12 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` style={ Array [ Object { - "alignItems": "center", + "alignItems": "flex-start", + "borderBottomColor": "#ddd", + "borderBottomWidth": 0.5, "flexDirection": "row", "paddingHorizontal": 16, - "paddingVertical": 10, + "paddingVertical": 12, }, undefined, ] @@ -1431,8 +1868,8 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` Object { "backgroundColor": "#9C27B0", "borderRadius": 4, - "height": 40, - "width": 40, + "height": 56, + "width": 56, }, undefined, ] @@ -1448,7 +1885,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` "color": "#ffffff", }, Object { - "fontSize": 20, + "fontSize": 28, }, ] } @@ -1461,44 +1898,89 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` style={ Object { "flex": 1, + "height": "100%", "marginLeft": 16, "marginRight": 4, } } > - - WW - - - Nov 10 - + + WW + + + Nov 10 + + + + + + + @@ -1533,10 +2015,12 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` style={ Array [ Object { - "alignItems": "center", + "alignItems": "flex-start", + "borderBottomColor": "#ddd", + "borderBottomWidth": 0.5, "flexDirection": "row", "paddingHorizontal": 16, - "paddingVertical": 10, + "paddingVertical": 12, }, undefined, ] @@ -1553,8 +2037,8 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` Object { "backgroundColor": undefined, "borderRadius": 4, - "height": 40, - "width": 40, + "height": 56, + "width": 56, }, undefined, ] @@ -1570,7 +2054,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` "color": "#ffffff", }, Object { - "fontSize": 20, + "fontSize": 28, }, ] } @@ -1583,44 +2067,89 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = ` style={ Object { "flex": 1, + "height": "100%", "marginLeft": 16, "marginRight": 4, } } > - - - - - Nov 10 - + + + + + Nov 10 + + + + + + + diff --git a/app/lib/rocketchat.js b/app/lib/rocketchat.js index 0e1b12119..b0ab7fea9 100644 --- a/app/lib/rocketchat.js +++ b/app/lib/rocketchat.js @@ -92,7 +92,7 @@ const RocketChat = { reduxStore.dispatch(connectFailure()); }); - // this.ddp.on('connected', () => this.ddp.subscribe('activeUsers', null, false)); + this.ddp.on('connected', () => this.ddp.subscribe('activeUsers', null, false)); this.ddp.on('users', (ddpMessage) => { if (ddpMessage.collection === 'users') { @@ -128,9 +128,6 @@ const RocketChat = { const sub = database.objects('subscriptions').filtered('rid == $0', data._id)[0]; database.write(() => { sub.roomUpdatedAt = data._updatedAt; - if (data.lastMessage) { - // data.lastMessage.url = data.lastMessage.url || []; - } sub.lastMessage = data.lastMessage; sub.ro = data.ro; }); @@ -432,9 +429,6 @@ const RocketChat = { const room = rooms.find(({ _id }) => _id === subscription.rid); if (room) { subscription.roomUpdatedAt = room._updatedAt; - // if (room.lastMessage) { - // room.lastMessage.url = room.lastMessage.url || []; - // } subscription.lastMessage = room.lastMessage; subscription.ro = room.ro; } diff --git a/app/presentation/RoomItem.js b/app/presentation/RoomItem.js index c3b742030..17eb42572 100644 --- a/app/presentation/RoomItem.js +++ b/app/presentation/RoomItem.js @@ -100,6 +100,7 @@ export default class RoomItem extends React.PureComponent { static propTypes = { type: PropTypes.string.isRequired, name: PropTypes.string.isRequired, + StoreLastMessage: PropTypes.bool, _updatedAt: PropTypes.instanceOf(Date), lastMessage: PropTypes.object, favorite: PropTypes.bool, @@ -115,6 +116,18 @@ export default class RoomItem extends React.PureComponent { return ; } + get lastMessage() { + const { + lastMessage + } = this.props; + + if (!this.props.StoreLastMessage) { + return ''; + } + + return lastMessage ? `${ lastMessage.u.username }: ${ emojify(lastMessage.msg, { output: 'unicode' }) }` : 'No Message'; + } + formatDate = date => moment(date).calendar(null, { lastDay: '[Yesterday]', sameDay: 'h:mm A', @@ -124,13 +137,11 @@ export default class RoomItem extends React.PureComponent { render() { const { - favorite, alert, unread, userMentions, name, lastMessage, _updatedAt + favorite, alert, unread, userMentions, name, _updatedAt } = this.props; const date = this.formatDate(_updatedAt); - console.log('do we have a last message?', lastMessage); - let accessibilityLabel = name; if (unread === 1) { accessibilityLabel += `, ${ unread } alert`; @@ -154,11 +165,7 @@ export default class RoomItem extends React.PureComponent { {_updatedAt ? { date } : null} - - - {!this.props.StoreLastMessage ? '' : lastMessage ? `${ lastMessage.u.username }: ${ emojify(lastMessage.msg, { output: 'unicode' }) }` : 'No Message'} - - + {this.lastMessage} {renderNumber(unread, userMentions)} diff --git a/app/views/RoomView/index.js b/app/views/RoomView/index.js index 4d32ca07d..c0172d9b7 100644 --- a/app/views/RoomView/index.js +++ b/app/views/RoomView/index.js @@ -90,11 +90,11 @@ export default class RoomView extends React.Component { this.rooms.addListener(this.updateRoom); } - componentWillReceiveProps(nextProps) { - if (this.props.layoutAnimation !== nextProps.layoutAnimation) { - LayoutAnimation.spring(); - } - } + // componentWillReceiveProps(nextProps) { + // // if (this.props.layoutAnimation !== nextProps.layoutAnimation) { + // // LayoutAnimation.spring(); + // // } + // } shouldComponentUpdate(nextProps, nextState) { return !(equal(this.props, nextProps) && equal(this.state, nextState)); } diff --git a/app/views/RoomsListView/index.js b/app/views/RoomsListView/index.js index 7cabb4827..a495be776 100644 --- a/app/views/RoomsListView/index.js +++ b/app/views/RoomsListView/index.js @@ -3,7 +3,7 @@ import { ListView } from 'realm/react-native'; import React from 'react'; import PropTypes from 'prop-types'; import Icon from 'react-native-vector-icons/Ionicons'; -import { Platform, View, TextInput, SafeAreaView } from 'react-native'; +import { Platform, View, TextInput, SafeAreaView, LayoutAnimation } from 'react-native'; import { connect } from 'react-redux'; import * as actions from '../../actions'; import * as server from '../../actions/connect'; @@ -69,7 +69,9 @@ export default class RoomsListView extends React.Component { this.search(props.searchText); } } - + componentWillUpdate() { + LayoutAnimation.easeInEaseOut(); + } componentWillUnmount() { this.data.removeAllListeners(); }