}
function Message({
- mEvent, isBodyOnly, roomTimeline, focus,
+ mEvent, isBodyOnly, roomTimeline, focus, time
}) {
const [isEditing, setIsEditing] = useState(false);
let { body } = content;
const avatarSrc = mEvent.sender.getAvatarUrl(initMatrix.matrixClient.baseUrl, 36, 36, 'crop');
const username = getUsernameOfRoomMember(mEvent.sender);
- const time = `${dateFormat(mEvent.getDate(), 'hh:MM TT')}`;
if (typeof body === 'undefined') return null;
if (msgType === 'm.emote') className.push('message--type-emote');
isBodyOnly: PropTypes.bool,
roomTimeline: PropTypes.shape({}).isRequired,
focus: PropTypes.bool,
+ time: PropTypes.string.isRequired,
};
export { Message, MessageReply, PlaceholderMessage };
import navigation from '../../../client/state/navigation';
import { openProfileViewer } from '../../../client/action/navigation';
import {
- diffMinutes, isNotInSameDay, Throttle, getScrollInfo,
+ diffMinutes, isInSameDay, Throttle, getScrollInfo,
} from '../../../util/common';
import Divider from '../../atoms/divider/Divider';
&& diffMinutes(mEvent.getDate(), prevMEvent.getDate()) <= MAX_MSG_DIFF_MINUTES
&& prevMEvent.getSender() === mEvent.getSender()
);
+ const mDate = mEvent.getDate();
+ const isToday = isInSameDay(mDate, new Date());
+
+ const time = dateFormat(mDate, isToday ? 'hh:MM TT' : 'dd/mm/yyyy');
if (mEvent.getType() === 'm.room.member') {
const timelineChange = parseTimelineChange(mEvent);
key={mEvent.getId()}
variant={timelineChange.variant}
content={timelineChange.content}
- time={`${dateFormat(mEvent.getDate(), 'hh:MM TT')}`}
+ time={time}
/>
);
}
isBodyOnly={isBodyOnly}
roomTimeline={roomTimeline}
focus={isFocus}
+ time={time}
/>
);
}
itemCountIndex += 1;
if (jumpToItemIndex === -1) jumpToItemIndex = itemCountIndex;
}
- const dayDivider = prevMEvent && isNotInSameDay(mEvent.getDate(), prevMEvent.getDate());
+ const dayDivider = prevMEvent && !isInSameDay(mEvent.getDate(), prevMEvent.getDate());
if (dayDivider) {
tl.push(<Divider key={`divider-${mEvent.getId()}`} text={`${dateFormat(mEvent.getDate(), 'mmmm dd, yyyy')}`} />);
itemCountIndex += 1;
roomTimeline.loadEventTimeline(eventId);
};
- const cancelJumpToEvent = (mEvent) => {
+ const cancelJumpToEvent = () => {
+ roomTimeline.markAllAsRead();
setEventId(null);
- if (!mEvent) roomTimeline.markAllAsRead();
};
useEffect(() => {
if (!readEventId.startsWith('~') && !roomTimeline.hasEventInTimeline(readEventId)) {
setEventId(readEventId);
}
- roomTimeline.on(cons.events.roomTimeline.MARKED_AS_READ, cancelJumpToEvent);
+
+ const handleMarkAsRead = () => setEventId(null);
+ roomTimeline.on(cons.events.roomTimeline.MARKED_AS_READ, handleMarkAsRead);
return () => {
- roomTimeline.removeListener(cons.events.roomTimeline.MARKED_AS_READ, cancelJumpToEvent);
+ roomTimeline.removeListener(cons.events.roomTimeline.MARKED_AS_READ, handleMarkAsRead);
setEventId(null);
};
}, [roomTimeline]);
return Math.abs(Math.round(diff));
}
-export function isNotInSameDay(dt2, dt1) {
+export function isInSameDay(dt2, dt1) {
return (
- dt2.getDay() !== dt1.getDay()
- || dt2.getMonth() !== dt1.getMonth()
- || dt2.getYear() !== dt1.getYear()
+ dt2.getDay() === dt1.getDay()
+ && dt2.getMonth() === dt1.getMonth()
+ && dt2.getYear() === dt1.getYear()
);
}