From 106e45e9f673d82faf321fe4a599f8d062de2352 Mon Sep 17 00:00:00 2001 From: ele828 Date: Tue, 15 Aug 2017 15:34:00 +0800 Subject: [PATCH 1/2] fix some styles issues and recent container initialization issues --- src/components/CallingSettingsPanel/index.js | 10 +--------- src/components/DialTextInput/styles.scss | 2 +- src/components/DropdownSelect/styles.scss | 4 +--- src/components/RegionSettingsPanel/index.js | 11 +---------- src/components/TransferPanel/styles.scss | 4 ++-- src/containers/RecentActivityContainer/index.js | 12 +++++++++--- 6 files changed, 15 insertions(+), 28 deletions(-) diff --git a/src/components/CallingSettingsPanel/index.js b/src/components/CallingSettingsPanel/index.js index 1da464471d..59095f5e9c 100644 --- a/src/components/CallingSettingsPanel/index.js +++ b/src/components/CallingSettingsPanel/index.js @@ -140,17 +140,9 @@ export default class CallingSettingsPanel extends Component { className, disabled, } = this.props; - const buttons = []; const hasChanges = this.state.callWith !== callWith || this.state.myLocation !== myLocation || this.state.ringoutPrompt !== ringoutPrompt; - buttons.push({ - label: , - onClick: this.onReset, - placement: 'right', - hidden: !hasChanges, - }); - const ringout = ( this.state.callWith !== callingOptions.softphone && @@ -200,7 +192,7 @@ export default class CallingSettingsPanel extends Component { return (
{i18n.getString('title', currentLocale)} diff --git a/src/components/DialTextInput/styles.scss b/src/components/DialTextInput/styles.scss index 7de20e5266..a6ceeb0062 100644 --- a/src/components/DialTextInput/styles.scss +++ b/src/components/DialTextInput/styles.scss @@ -13,10 +13,10 @@ left: 42px; display: inline-block; border: none; + width: calc(100% - 70px); input { font-size: 15px; padding: 0; - max-width: 72%; color: $primary-neutral-color; } } diff --git a/src/components/DropdownSelect/styles.scss b/src/components/DropdownSelect/styles.scss index ed936a9d0d..55c7ac545f 100644 --- a/src/components/DropdownSelect/styles.scss +++ b/src/components/DropdownSelect/styles.scss @@ -61,6 +61,7 @@ padding: 5px 10px; &:hover { color: $primary-color; + cursor: pointer; } } .dropdownItem:first-child { @@ -143,9 +144,6 @@ white-space: nowrap; overflow: hidden; } - li:hover { - cursor: pointer; - } } diff --git a/src/components/RegionSettingsPanel/index.js b/src/components/RegionSettingsPanel/index.js index 2f9c677189..f1b0e240d4 100644 --- a/src/components/RegionSettingsPanel/index.js +++ b/src/components/RegionSettingsPanel/index.js @@ -88,17 +88,8 @@ export default class RegionSettings extends Component { } render() { - const buttons = []; const hasChanges = this.state.areaCodeValue !== this.props.areaCode || this.state.countryCodeValue !== this.props.countryCode; - if (this.props.onBackButtonClick) { - buttons.push({ - label: , - onClick: this.onResetClick, - placement: 'right', - hidden: !hasChanges, - }); - } const hasNA = !!this.props.availableCountries.find(c => c.isoCode === 'US') || !!this.props.availableCountries.find(c => c.isoCode === 'CA'); let messageId; @@ -117,7 +108,7 @@ export default class RegionSettings extends Component { return (
{i18n.getString('title', this.props.currentLocale)} diff --git a/src/components/TransferPanel/styles.scss b/src/components/TransferPanel/styles.scss index b69ff03cea..5623286e3d 100644 --- a/src/components/TransferPanel/styles.scss +++ b/src/components/TransferPanel/styles.scss @@ -29,8 +29,8 @@ $input-height: 30px; padding: 0; outline: 0; height: 100%; - width: calc(100% - 55px); - margin-left: 5%; + width: calc(100% - 75px); + margin-left: 15px; background-color: transparent; border: none; font-size:15px; diff --git a/src/containers/RecentActivityContainer/index.js b/src/containers/RecentActivityContainer/index.js index ecc47f7846..db1725e322 100644 --- a/src/containers/RecentActivityContainer/index.js +++ b/src/containers/RecentActivityContainer/index.js @@ -10,6 +10,7 @@ import FaxIcon from '../../assets/images/Fax.svg'; import i18n from './i18n'; function getTabs({ + ready, currentLocale, dateTimeFormatter, navigateTo, @@ -17,17 +18,21 @@ function getTabs({ recentCalls, currentContact, }) { + if (!ready) return []; let messages = []; let calls = []; let unreadMessageCounts = 0; if (currentContact && currentContact.id) { const contactId = currentContact.id; - if (recentMessages.messages[contactId]) + if (recentMessages.messages[contactId]) { messages = recentMessages.messages[contactId]; - if (recentCalls.calls[contactId]) + } + if (recentCalls.calls[contactId]) { calls = recentCalls.calls[contactId]; - if (recentMessages.unreadMessageCounts[contactId]) + } + if (recentMessages.unreadMessageCounts[contactId]) { unreadMessageCounts = recentMessages.unreadMessageCounts[contactId]; + } } return [ { @@ -124,6 +129,7 @@ function mapToProps(_, { currentContact, calls: recentCalls.calls || [], tabs: getTabs({ + ready, currentLocale, dateTimeFormatter, navigateTo, From 21be8a4dfa8128a707327fbd80636abf08c18eed Mon Sep 17 00:00:00 2001 From: ele828 Date: Tue, 15 Aug 2017 17:15:27 +0800 Subject: [PATCH 2/2] reduce unneccessary update --- src/components/BackHeader/index.js | 4 +- src/components/RecentActivityCalls/index.js | 63 +++++++++++-------- .../RecentActivityMessages/index.js | 63 +++++++++++-------- 3 files changed, 74 insertions(+), 56 deletions(-) diff --git a/src/components/BackHeader/index.js b/src/components/BackHeader/index.js index 2b0a3208cf..0e13597f58 100644 --- a/src/components/BackHeader/index.js +++ b/src/components/BackHeader/index.js @@ -6,7 +6,7 @@ import Header from '../Header'; import dynamicsFont from '../../assets/DynamicsFont/DynamicsFont.scss'; const BackHeader = (props) => { - const buttons = props.buttons; + const buttons = props.buttons || []; const defaultBackButton = ; buttons.push({ @@ -37,6 +37,6 @@ BackHeader.propTypes = { BackHeader.defaultProps = { className: '', - buttons: [], + buttons: undefined, backButton: undefined, }; diff --git a/src/components/RecentActivityCalls/index.js b/src/components/RecentActivityCalls/index.js index dbd23bfd82..734557246d 100644 --- a/src/components/RecentActivityCalls/index.js +++ b/src/components/RecentActivityCalls/index.js @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { Component } from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import dynamicsFont from '../../assets/DynamicsFont/DynamicsFont.scss'; @@ -56,35 +56,44 @@ CallItem.propTypes = { currentLocale: PropTypes.string.isRequired }; -export default function RecentActivityMessages({ - currentLocale, - calls, - isCallsLoaded, - dateTimeFormatter -}) { - let callListView = null; - if (!isCallsLoaded) { - callListView = (); - } else if (calls.length > 0) { - callListView = calls.map(call => ( - - )); - } else { - callListView = (

{i18n.getString('noRecords', currentLocale)}

); +export default class RecentActivityCalls extends Component { + shouldComponentUpdate(nextProps) { + return nextProps.currentLocale !== this.props.currentLocale || + nextProps.calls !== this.props.calls || + nextProps.isCallsLoaded !== this.props.isCallsLoaded; + } + + render() { + const { + currentLocale, + calls, + isCallsLoaded, + dateTimeFormatter + } = this.props; + let callListView = null; + if (!isCallsLoaded) { + callListView = (); + } else if (calls.length > 0) { + callListView = calls.map(call => ( + + )); + } else { + callListView = (

{i18n.getString('noRecords', currentLocale)}

); + } + return ( +
+ {callListView} +
+ ); } - return ( -
- { callListView } -
- ); } -RecentActivityMessages.propTypes = { +RecentActivityCalls.propTypes = { currentLocale: PropTypes.string.isRequired, calls: PropTypes.array.isRequired, isCallsLoaded: PropTypes.bool.isRequired, diff --git a/src/components/RecentActivityMessages/index.js b/src/components/RecentActivityMessages/index.js index 58bbaac647..fb4f55792e 100644 --- a/src/components/RecentActivityMessages/index.js +++ b/src/components/RecentActivityMessages/index.js @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { Component } from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames/bind'; import Spinner from '../Spinner'; @@ -29,33 +29,42 @@ MessageItem.propTypes = { dateTimeFormatter: PropTypes.func.isRequired }; -export default function RecentActivityMessages({ - currentLocale, - messages, - isMessagesLoaded, - navigateTo, - dateTimeFormatter -}) { - let messageListView = null; - if (!isMessagesLoaded) { - messageListView = (); - } else if (messages.length > 0) { - messageListView = messages.map(message => ( - - )); - } else { - messageListView = (

{i18n.getString('noRecords', currentLocale)}

); +export default class RecentActivityMessages extends Component { + shouldComponentUpdate(nextProps) { + return nextProps.currentLocale !== this.props.currentLocale || + nextProps.messages !== this.props.messages || + nextProps.isMessagesLoaded !== this.props.isMessagesLoaded; + } + + render() { + const { + currentLocale, + messages, + isMessagesLoaded, + navigateTo, + dateTimeFormatter + } = this.props; + let messageListView = null; + if (!isMessagesLoaded) { + messageListView = (); + } else if (messages.length > 0) { + messageListView = messages.map(message => ( + + )); + } else { + messageListView = (

{i18n.getString('noRecords', currentLocale)}

); + } + return ( +
+ {messageListView} +
+ ); } - return ( -
- { messageListView } -
- ); } RecentActivityMessages.propTypes = {