about summary refs log tree commit diff
path: root/app/javascript/mastodon/features/ui/components/column_loading.js
diff options
context:
space:
mode:
authorNolan Lawson <nolan@nolanlawson.com>2017-09-20 10:58:44 -0700
committerEugen Rochko <eugen@zeonfederated.com>2017-09-20 19:58:44 +0200
commit798b0fc5af3e9e4acec6624e041ff035d95c8b78 (patch)
treea214567ddeed5e769e895430a32c53cadd1af6bf /app/javascript/mastodon/features/ui/components/column_loading.js
parent8fcfcddc8fc3d36a5b1daa1f74e69512fc66d565 (diff)
Reduce wasted renders for column_loading.js (#5021)
* Reduce wasted renders for column_loading.js

* Use defaultProps
Diffstat (limited to 'app/javascript/mastodon/features/ui/components/column_loading.js')
-rw-r--r--app/javascript/mastodon/features/ui/components/column_loading.js33
1 files changed, 22 insertions, 11 deletions
diff --git a/app/javascript/mastodon/features/ui/components/column_loading.js b/app/javascript/mastodon/features/ui/components/column_loading.js
index 1c4058926..4834f0038 100644
--- a/app/javascript/mastodon/features/ui/components/column_loading.js
+++ b/app/javascript/mastodon/features/ui/components/column_loading.js
@@ -3,17 +3,28 @@ import PropTypes from 'prop-types';
 
 import Column from '../../../components/column';
 import ColumnHeader from '../../../components/column_header';
+import ImmutablePureComponent from 'react-immutable-pure-component';
 
-const ColumnLoading = ({ title = '', icon = ' ' }) => (
-  <Column>
-    <ColumnHeader icon={icon} title={title} multiColumn={false} focusable={false} />
-    <div className='scrollable' />
-  </Column>
-);
+export default class ColumnLoading extends ImmutablePureComponent {
 
-ColumnLoading.propTypes = {
-  title: PropTypes.node,
-  icon: PropTypes.string,
-};
+  static propTypes = {
+    title: PropTypes.oneOfType(PropTypes.node, PropTypes.string),
+    icon: PropTypes.string,
+  };
 
-export default ColumnLoading;
+  static defaultProps = {
+    title: '',
+    icon: '',
+  };
+
+  render() {
+    let { title, icon } = this.props;
+    return (
+      <Column>
+        <ColumnHeader icon={icon} title={title} multiColumn={false} focusable={false} />
+        <div className='scrollable' />
+      </Column>
+    );
+  }
+
+}