diff --git a/app/soapbox/features/chats/components/chat_message_list.js b/app/soapbox/features/chats/components/chat_message_list.js index bd20ffade..6e2c63ce6 100644 --- a/app/soapbox/features/chats/components/chat_message_list.js +++ b/app/soapbox/features/chats/components/chat_message_list.js @@ -2,7 +2,7 @@ import React from 'react'; import { connect } from 'react-redux'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import { injectIntl } from 'react-intl'; +import { injectIntl, defineMessages } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { Map as ImmutableMap, List as ImmutableList } from 'immutable'; import { fetchChatMessages } from 'soapbox/actions/chats'; @@ -13,6 +13,22 @@ import { escape, throttle } from 'lodash'; import { MediaGallery } from 'soapbox/features/ui/util/async-components'; import Bundle from 'soapbox/features/ui/components/bundle'; +const messages = defineMessages({ + today: { id: 'chats.dividers.today', defaultMessage: 'Today' }, +}); + +const timeChange = (prev, curr) => { + const prevDate = new Date(prev.get('created_at')).getDate(); + const currDate = new Date(curr.get('created_at')).getDate(); + const nowDate = new Date().getDate(); + + if (prevDate !== currDate) { + return currDate === nowDate ? 'today' : 'date'; + }; + + return null; +}; + const makeEmojiMap = record => record.get('emojis', ImmutableList()).reduce((map, emoji) => { return map.set(`:${emoji.get('shortcode')}:`, emoji); }, ImmutableMap()); @@ -191,32 +207,58 @@ class ChatMessageList extends ImmutablePureComponent { this.node = c; } + renderDivider = (text) => ( +