commit: 798b0fc5af3e9e4acec6624e041ff035d95c8b78
parent: 8fcfcddc8fc3d36a5b1daa1f74e69512fc66d565
Author: Nolan Lawson <nolan@nolanlawson.com>
Date: Wed, 20 Sep 2017 10:58:44 -0700
Reduce wasted renders for column_loading.js (#5021)
* Reduce wasted renders for column_loading.js
* Use defaultProps
Diffstat:
1 file 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
@@ -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>
+ );
+ }
+
+}