diff --git a/src/components/Avatar.js b/src/components/Avatar.js index 9bdd0049aef3..b2d90bddee17 100644 --- a/src/components/Avatar.js +++ b/src/components/Avatar.js @@ -21,6 +21,10 @@ const propTypes = { // eslint-disable-next-line react/forbid-prop-types imageStyles: PropTypes.arrayOf(PropTypes.object), + /** Additional styles to pass to Icon */ + // eslint-disable-next-line react/forbid-prop-types + iconAdditionalStyles: PropTypes.arrayOf(PropTypes.object), + /** Extra styles to pass to View wrapper */ containerStyles: stylePropTypes, @@ -48,6 +52,7 @@ const propTypes = { const defaultProps = { source: null, imageStyles: [], + iconAdditionalStyles: [], containerStyles: [], size: CONST.AVATAR_SIZE.DEFAULT, fill: themeColors.icon, @@ -68,9 +73,9 @@ function Avatar(props) { const isWorkspace = props.type === CONST.ICON_TYPE_WORKSPACE; const iconSize = StyleUtils.getAvatarSize(props.size); - const imageStyle = [StyleUtils.getAvatarStyle(props.size), ...props.imageStyles, StyleUtils.getAvatarBorderRadius(props.size, props.type)]; + const imageStyle = props.imageStyles ? [StyleUtils.getAvatarStyle(props.size), ...props.imageStyles, StyleUtils.getAvatarBorderRadius(props.size, props.type)] : undefined; - const iconStyle = [StyleUtils.getAvatarStyle(props.size), styles.bgTransparent, ...props.imageStyles]; + const iconStyle = props.imageStyles ? [StyleUtils.getAvatarStyle(props.size), styles.bgTransparent, ...props.imageStyles] : undefined; const iconFillColor = isWorkspace ? StyleUtils.getDefaultWorkspaceAvatarColor(props.name).fill : props.fill; const fallbackAvatar = isWorkspace ? ReportUtils.getDefaultWorkspaceAvatar(props.name) : props.fallbackIcon; @@ -91,6 +96,7 @@ function Avatar(props) { StyleUtils.getAvatarBorderStyle(props.size, props.type), isWorkspace ? StyleUtils.getDefaultWorkspaceAvatarColor(props.name) : {}, imageError ? StyleUtils.getBackgroundColorStyle(themeColors.fallbackIconColor) : {}, + ...props.iconAdditionalStyles, ]} /> diff --git a/src/components/AvatarWithDisplayName.js b/src/components/AvatarWithDisplayName.js index 18d746a1912e..df6dc10b2cf8 100644 --- a/src/components/AvatarWithDisplayName.js +++ b/src/components/AvatarWithDisplayName.js @@ -8,6 +8,7 @@ import participantPropTypes from './participantPropTypes'; import withWindowDimensions, {windowDimensionsPropTypes} from './withWindowDimensions'; import withLocalize, {withLocalizePropTypes} from './withLocalize'; import styles from '../styles/styles'; +import themeColors from '../styles/themes/default'; import SubscriptAvatar from './SubscriptAvatar'; import * as ReportUtils from '../libs/ReportUtils'; import Avatar from './Avatar'; @@ -53,9 +54,10 @@ const AvatarWithDisplayName = (props) => { return ( {Boolean(props.report && title) && ( - + {isExpenseReport ? ( { shouldShowBackButton={props.isSmallScreenWidth} onBackButtonPress={() => Navigation.navigate(ROUTES.HOME)} /> - + {props.translate('common.to')} - + - + { } const oneAvatarSize = StyleUtils.getAvatarStyle(props.size); - const oneAvatarBorderWidth = StyleUtils.getAvatarBorderWidth(props.size); + const oneAvatarBorderWidth = StyleUtils.getAvatarBorderWidth(props.size).borderWidth; const overlapSize = oneAvatarSize.width / 3; if (props.shouldStackHorizontally) { diff --git a/src/components/SubscriptAvatar.js b/src/components/SubscriptAvatar.js index d9f6b5246cb3..65c016e29ff3 100644 --- a/src/components/SubscriptAvatar.js +++ b/src/components/SubscriptAvatar.js @@ -63,23 +63,21 @@ const SubscriptAvatar = (props) => { type={props.mainAvatar.type} /> - - - - - + + + ); }; diff --git a/src/libs/ReportUtils.js b/src/libs/ReportUtils.js index d2bbbb095b08..c8942a72b450 100644 --- a/src/libs/ReportUtils.js +++ b/src/libs/ReportUtils.js @@ -108,6 +108,16 @@ function getReportParticipantsTitle(logins) { ); } +/** + * Checks if a report is a chat report. + * + * @param {Object} report + * @returns {Boolean} + */ +function isChatReport(report) { + return lodashGet(report, 'type') === CONST.REPORT.TYPE.CHAT; +} + /** * Checks if a report is an Expense report. * @@ -2218,6 +2228,7 @@ export { getAllPolicyReports, getIOUReportActionMessage, getDisplayNameForParticipant, + isChatReport, isExpenseReport, isIOUReport, isTaskReport, diff --git a/src/pages/home/report/ReportActionItemCreated.js b/src/pages/home/report/ReportActionItemCreated.js index 5508b983bc82..5fcda0903e75 100644 --- a/src/pages/home/report/ReportActionItemCreated.js +++ b/src/pages/home/report/ReportActionItemCreated.js @@ -36,12 +36,12 @@ const defaultProps = { }; const ReportActionItemCreated = (props) => { - const icons = ReportUtils.getIcons(props.report, props.personalDetails); - - if (ReportUtils.isMoneyRequestReport(props.report.reportID) || ReportUtils.isTaskReport(props.report)) { + if (!ReportUtils.isChatReport(props.report)) { return null; } + const icons = ReportUtils.getIcons(props.report, props.personalDetails); + return (