|
1 | | -import React from 'react'; |
| 1 | +import React, { Component } from 'react'; |
2 | 2 | import PropTypes from 'prop-types'; |
3 | 3 | import classnames from 'classnames'; |
4 | 4 | import dynamicsFont from '../../assets/DynamicsFont/DynamicsFont.scss'; |
@@ -56,35 +56,44 @@ CallItem.propTypes = { |
56 | 56 | currentLocale: PropTypes.string.isRequired |
57 | 57 | }; |
58 | 58 |
|
59 | | -export default function RecentActivityMessages({ |
60 | | - currentLocale, |
61 | | - calls, |
62 | | - isCallsLoaded, |
63 | | - dateTimeFormatter |
64 | | -}) { |
65 | | - let callListView = null; |
66 | | - if (!isCallsLoaded) { |
67 | | - callListView = (<Spinner className={styles.spinner} ringWidth={4} />); |
68 | | - } else if (calls.length > 0) { |
69 | | - callListView = calls.map(call => ( |
70 | | - <CallItem |
71 | | - key={call.id} |
72 | | - call={call} |
73 | | - currentLocale={currentLocale} |
74 | | - dateTimeFormatter={dateTimeFormatter} |
75 | | - /> |
76 | | - )); |
77 | | - } else { |
78 | | - callListView = (<p className={styles.noRecords}>{i18n.getString('noRecords', currentLocale)}</p>); |
| 59 | +export default class RecentActivityCalls extends Component { |
| 60 | + shouldComponentUpdate(nextProps) { |
| 61 | + return nextProps.currentLocale !== this.props.currentLocale || |
| 62 | + nextProps.calls !== this.props.calls || |
| 63 | + nextProps.isCallsLoaded !== this.props.isCallsLoaded; |
| 64 | + } |
| 65 | + |
| 66 | + render() { |
| 67 | + const { |
| 68 | + currentLocale, |
| 69 | + calls, |
| 70 | + isCallsLoaded, |
| 71 | + dateTimeFormatter |
| 72 | + } = this.props; |
| 73 | + let callListView = null; |
| 74 | + if (!isCallsLoaded) { |
| 75 | + callListView = (<Spinner className={styles.spinner} ringWidth={4} />); |
| 76 | + } else if (calls.length > 0) { |
| 77 | + callListView = calls.map(call => ( |
| 78 | + <CallItem |
| 79 | + key={call.id} |
| 80 | + call={call} |
| 81 | + currentLocale={currentLocale} |
| 82 | + dateTimeFormatter={dateTimeFormatter} |
| 83 | + /> |
| 84 | + )); |
| 85 | + } else { |
| 86 | + callListView = (<p className={styles.noRecords}>{i18n.getString('noRecords', currentLocale)}</p>); |
| 87 | + } |
| 88 | + return ( |
| 89 | + <div className={styles.calls}> |
| 90 | + {callListView} |
| 91 | + </div> |
| 92 | + ); |
79 | 93 | } |
80 | | - return ( |
81 | | - <div className={styles.calls}> |
82 | | - { callListView } |
83 | | - </div> |
84 | | - ); |
85 | 94 | } |
86 | 95 |
|
87 | | -RecentActivityMessages.propTypes = { |
| 96 | +RecentActivityCalls.propTypes = { |
88 | 97 | currentLocale: PropTypes.string.isRequired, |
89 | 98 | calls: PropTypes.array.isRequired, |
90 | 99 | isCallsLoaded: PropTypes.bool.isRequired, |
|
0 commit comments