From 22c024cc94e280545cf4901c6e8d7ed555d5b271 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 14 Jan 2018 18:33:58 +0000 Subject: [PATCH 1/3] Refactor DateSep, use new Dateutils.formatFullDateNoTime as it is not desired for it to include the time. Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../views/messages/DateSeparator.js | 54 ++++++++++--------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/src/components/views/messages/DateSeparator.js b/src/components/views/messages/DateSeparator.js index 5d579e5d89..4dcac99da2 100644 --- a/src/components/views/messages/DateSeparator.js +++ b/src/components/views/messages/DateSeparator.js @@ -1,5 +1,6 @@ /* Copyright 2015, 2016 OpenMarket Ltd +Copyright 2018 Michael Telatynski <7t3chguy@gmail.com> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -15,8 +16,9 @@ limitations under the License. */ import React from 'react'; +import PropTypes from 'prop-types'; import { _t } from 'matrix-react-sdk/lib/languageHandler'; -import {formatFullDate} from 'matrix-react-sdk/lib/DateUtils'; +import {formatFullDateNoTime} from 'matrix-react-sdk/lib/DateUtils'; function getdaysArray() { return [ @@ -30,30 +32,30 @@ function getdaysArray() { ]; } -module.exports = React.createClass({ - displayName: 'DateSeparator', - render: function() { - var date = new Date(this.props.ts); - var today = new Date(); - var yesterday = new Date(); - var days = getdaysArray(); - yesterday.setDate(today.getDate() - 1); - var label; - if (date.toDateString() === today.toDateString()) { - label = _t('Today'); - } - else if (date.toDateString() === yesterday.toDateString()) { - label = _t('Yesterday'); - } - else if (today.getTime() - date.getTime() < 6 * 24 * 60 * 60 * 1000) { - label = days[date.getDay()]; - } - else { - label = formatFullDate(date, this.props.showTwelveHour); - } +export class DateSeparator extends React.Component { + static propTypes = { + ts: PropTypes.number.isRequired, + }; - return ( -

{ label }

- ); + getLabel() { + const date = new Date(this.props.ts); + const today = new Date(); + const yesterday = new Date(); + const days = getdaysArray(); + yesterday.setDate(today.getDate() - 1); + + if (date.toDateString() === today.toDateString()) { + return _t('Today'); + } else if (date.toDateString() === yesterday.toDateString()) { + return _t('Yesterday'); + } else if (today.getTime() - date.getTime() < 6 * 24 * 60 * 60 * 1000) { + return days[date.getDay()]; + } else { + return formatFullDateNoTime(date); + } } -}); + + render() { + return

{ this.getLabel() }

; + } +} From b65fdf6ab0572b5ebe26636897736fab9e4d7172 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 14 Jan 2018 18:35:53 +0000 Subject: [PATCH 2/3] refactor MessageTimestamp, as it was missing a PropTypes def for ts Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../views/messages/MessageTimestamp.js | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/components/views/messages/MessageTimestamp.js b/src/components/views/messages/MessageTimestamp.js index 3d972e4c16..eafa25daf1 100644 --- a/src/components/views/messages/MessageTimestamp.js +++ b/src/components/views/messages/MessageTimestamp.js @@ -1,5 +1,6 @@ /* Copyright 2015, 2016 OpenMarket Ltd +Copyright 2018 Michael Telatynski <7t3chguy@gmail.com> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,24 +15,22 @@ See the License for the specific language governing permissions and limitations under the License. */ -'use strict'; - import React from 'react'; +import PropTypes from 'prop-types'; import {formatFullDate, formatTime} from 'matrix-react-sdk/lib/DateUtils'; -module.exports = React.createClass({ - displayName: 'MessageTimestamp', +export class MessageTimestamp extends React.Component { + static propTypes = { + ts: PropTypes.number.isRequired, + showTwelveHour: PropTypes.bool, + }; - propTypes: { - showTwelveHour: React.PropTypes.bool, - }, - - render: function() { + render() { const date = new Date(this.props.ts); return ( - + { formatTime(date, this.props.showTwelveHour) } ); - }, -}); + } +} From f97395f40fc95e011f6d43540a8eae5a724ab1c3 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 14 Jan 2018 18:41:44 +0000 Subject: [PATCH 3/3] change exports to default to retain compatibility with existing imports Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/views/messages/DateSeparator.js | 2 +- src/components/views/messages/MessageTimestamp.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/views/messages/DateSeparator.js b/src/components/views/messages/DateSeparator.js index 4dcac99da2..2e081bc69b 100644 --- a/src/components/views/messages/DateSeparator.js +++ b/src/components/views/messages/DateSeparator.js @@ -32,7 +32,7 @@ function getdaysArray() { ]; } -export class DateSeparator extends React.Component { +export default class DateSeparator extends React.Component { static propTypes = { ts: PropTypes.number.isRequired, }; diff --git a/src/components/views/messages/MessageTimestamp.js b/src/components/views/messages/MessageTimestamp.js index eafa25daf1..6d43306708 100644 --- a/src/components/views/messages/MessageTimestamp.js +++ b/src/components/views/messages/MessageTimestamp.js @@ -19,7 +19,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import {formatFullDate, formatTime} from 'matrix-react-sdk/lib/DateUtils'; -export class MessageTimestamp extends React.Component { +export default class MessageTimestamp extends React.Component { static propTypes = { ts: PropTypes.number.isRequired, showTwelveHour: PropTypes.bool,