From 1f4974dc02c786b65c802d4497fd736cca79d01c Mon Sep 17 00:00:00 2001
From: Joram Wilander <jwawilander@gmail.com>
Date: Fri, 29 Apr 2016 08:40:06 -0400
Subject: General react performance improvements (#2796)

* General React performance improvements

* Cleaned up unused props/state in PermaLinkView and PostFocusView
---
 webapp/components/floating_timestamp.jsx | 54 ++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)
 create mode 100644 webapp/components/floating_timestamp.jsx

(limited to 'webapp/components/floating_timestamp.jsx')

diff --git a/webapp/components/floating_timestamp.jsx b/webapp/components/floating_timestamp.jsx
new file mode 100644
index 000000000..8974c62c5
--- /dev/null
+++ b/webapp/components/floating_timestamp.jsx
@@ -0,0 +1,54 @@
+// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+import {FormattedDate} from 'react-intl';
+
+import React from 'react';
+import PureRenderMixin from 'react-addons-pure-render-mixin';
+
+export default class FloatingTimestamp extends React.Component {
+    constructor(props) {
+        super(props);
+
+        this.shouldComponentUpdate = PureRenderMixin.shouldComponentUpdate.bind(this);
+    }
+
+    render() {
+        if (!this.props.isMobile) {
+            return <noscript/>;
+        }
+
+        if (this.props.createAt === 0) {
+            return <noscript/>;
+        }
+
+        const dateString = (
+            <FormattedDate
+                value={this.props.createAt}
+                weekday='short'
+                day='2-digit'
+                month='short'
+                year='numeric'
+            />
+        );
+
+        let className = 'post-list__timestamp';
+        if (this.props.isScrolling) {
+            className += ' scrolling';
+        }
+
+        return (
+            <div className={className}>
+                <div>
+                    <span>{dateString}</span>
+                </div>
+            </div>
+        );
+    }
+}
+
+FloatingTimestamp.propTypes = {
+    isScrolling: React.PropTypes.bool.isRequired,
+    isMobile: React.PropTypes.bool,
+    createAt: React.PropTypes.number
+};
-- 
cgit v1.2.3-1-g7c22

