[FIX] Chats order (#2688)

* Persist highest value on subscription.roomUpdatedAt

* Update tests

Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
This commit is contained in:
Diego Mello 2020-12-04 16:25:51 -03:00 committed by GitHub
parent 2d6572d709
commit 999883e4d6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 7 additions and 15 deletions

View File

@ -15,11 +15,9 @@ export const merge = (subscription, room) => {
if (room) {
if (room._updatedAt) {
subscription.lastMessage = normalizeMessage(room.lastMessage);
if (subscription.lastMessage) {
subscription.roomUpdatedAt = subscription.lastMessage.ts;
} else {
subscription.roomUpdatedAt = room._updatedAt;
}
const updatedAt = room?._updatedAt ? new Date(room._updatedAt) : null;
const lastMessageTs = subscription?.lastMessage?.ts ? new Date(subscription.lastMessage.ts) : null;
subscription.roomUpdatedAt = Math.max(updatedAt, lastMessageTs);
subscription.description = room.description;
subscription.topic = room.topic;
subscription.announcement = room.announcement;

View File

@ -39,7 +39,6 @@ const RoomItem = ({
tunread,
tunreadUser,
tunreadGroup,
roomUpdatedAt,
testID,
swipeEnabled,
onPress,
@ -88,7 +87,6 @@ const RoomItem = ({
alert={alert}
/>
<UpdatedAt
roomUpdatedAt={roomUpdatedAt}
date={date}
theme={theme}
hideUnreadStatus={hideUnreadStatus}
@ -175,7 +173,6 @@ RoomItem.propTypes = {
tunread: PropTypes.array,
tunreadUser: PropTypes.array,
tunreadGroup: PropTypes.array,
roomUpdatedAt: PropTypes.instanceOf(Date),
swipeEnabled: PropTypes.bool,
toggleFav: PropTypes.func,
toggleRead: PropTypes.func,

View File

@ -7,9 +7,9 @@ import { themes } from '../../constants/colors';
import { capitalize } from '../../utils/room';
const UpdatedAt = React.memo(({
roomUpdatedAt, date, theme, hideUnreadStatus, alert
date, theme, hideUnreadStatus, alert
}) => {
if (!roomUpdatedAt) {
if (!date) {
return null;
}
return (
@ -39,7 +39,6 @@ const UpdatedAt = React.memo(({
});
UpdatedAt.propTypes = {
roomUpdatedAt: PropTypes.instanceOf(Date),
date: PropTypes.string,
theme: PropTypes.string,
hideUnreadStatus: PropTypes.bool,

View File

@ -136,7 +136,7 @@ class RoomItemContainer extends React.Component {
const name = getRoomTitle(item);
const avatar = getRoomAvatar(item);
const isRead = getIsRead(item);
const date = item.lastMessage?.ts && formatDate(item.lastMessage.ts);
const date = item.roomUpdatedAt && formatDate(item.roomUpdatedAt);
const alert = (item.alert || item.tunread?.length);
let accessibilityLabel = name;
@ -178,7 +178,6 @@ class RoomItemContainer extends React.Component {
status={status}
hideUnreadStatus={item.hideUnreadStatus}
alert={alert}
roomUpdatedAt={item.roomUpdatedAt}
lastMessage={item.lastMessage}
showLastMessage={showLastMessage}
username={username}

View File

@ -17,8 +17,7 @@ const lastMessage = {
msg: longText
};
const updatedAt = {
date: '10:00',
roomUpdatedAt: new Date('2020-01-01')
date: '10:00'
};
const RoomItem = props => (