From e9e632cfde6f2438153fab66835b6608336cab09 Mon Sep 17 00:00:00 2001 From: Marc Glasser Date: Fri, 4 Mar 2022 15:17:41 -1000 Subject: [PATCH 1/7] Relocate OptionRow and create base story --- .../home/sidebar => components}/OptionRow.js | 30 ++++++------ src/components/optionPropTypes.js | 13 ++++++ src/components/participantPropTypes.js | 15 ++++++ src/pages/ReportDetailsPage.js | 2 +- src/pages/home/HeaderView.js | 2 +- src/pages/home/report/ParticipantLocalTime.js | 2 +- src/pages/home/report/ReportActionCompose.js | 2 +- src/pages/home/report/ReportActionsView.js | 2 +- src/pages/home/sidebar/SidebarLinks.js | 2 +- src/pages/home/sidebar/optionPropTypes.js | 46 ------------------- src/stories/OptionRow.stories.js | 28 +++++++++++ 11 files changed, 77 insertions(+), 67 deletions(-) rename src/{pages/home/sidebar => components}/OptionRow.js (93%) create mode 100644 src/components/participantPropTypes.js delete mode 100644 src/pages/home/sidebar/optionPropTypes.js create mode 100644 src/stories/OptionRow.stories.js diff --git a/src/pages/home/sidebar/OptionRow.js b/src/components/OptionRow.js similarity index 93% rename from src/pages/home/sidebar/OptionRow.js rename to src/components/OptionRow.js index eaa6b7c1d9fe..3e7c6111c3b6 100644 --- a/src/pages/home/sidebar/OptionRow.js +++ b/src/components/OptionRow.js @@ -8,21 +8,21 @@ import { StyleSheet, } from 'react-native'; import Str from 'expensify-common/lib/str'; -import styles from '../../../styles/styles'; -import * as StyleUtils from '../../../styles/StyleUtils'; -import {optionPropTypes} from './optionPropTypes'; -import Icon from '../../../components/Icon'; -import * as Expensicons from '../../../components/Icon/Expensicons'; -import MultipleAvatars from '../../../components/MultipleAvatars'; -import Hoverable from '../../../components/Hoverable'; -import DisplayNames from '../../../components/DisplayNames'; -import IOUBadge from '../../../components/IOUBadge'; -import colors from '../../../styles/colors'; -import withLocalize, {withLocalizePropTypes} from '../../../components/withLocalize'; -import Text from '../../../components/Text'; -import SelectCircle from '../../../components/SelectCircle'; -import SubscriptAvatar from '../../../components/SubscriptAvatar'; -import CONST from '../../../CONST'; +import styles from '../styles/styles'; +import * as StyleUtils from '../styles/StyleUtils'; +import optionPropTypes from './optionPropTypes'; +import Icon from './Icon'; +import * as Expensicons from './Icon/Expensicons'; +import MultipleAvatars from './MultipleAvatars'; +import Hoverable from './Hoverable'; +import DisplayNames from './DisplayNames'; +import IOUBadge from './IOUBadge'; +import colors from '../styles/colors'; +import withLocalize, {withLocalizePropTypes} from './withLocalize'; +import Text from './Text'; +import SelectCircle from './SelectCircle'; +import SubscriptAvatar from './SubscriptAvatar'; +import CONST from '../CONST'; const propTypes = { /** Background Color of the Option Row */ diff --git a/src/components/optionPropTypes.js b/src/components/optionPropTypes.js index 1e5440ddf4a9..b0ec5a89d631 100644 --- a/src/components/optionPropTypes.js +++ b/src/components/optionPropTypes.js @@ -1,4 +1,5 @@ import PropTypes from 'prop-types'; +import participantPropTypes from './participantPropTypes'; export default PropTypes.shape({ // Text to display @@ -33,4 +34,16 @@ export default PropTypes.shape({ // Whether the report corresponds to a chat room isChatRoom: PropTypes.bool, + + // List of participants of the report + participantsList: PropTypes.arrayOf(participantPropTypes), + + // Descriptive text to be displayed besides selection element + descriptiveText: PropTypes.string, + + // The type of option we have e.g. user or report + type: PropTypes.string, + + // Text to show for tooltip + tooltipText: PropTypes.string, }); diff --git a/src/components/participantPropTypes.js b/src/components/participantPropTypes.js new file mode 100644 index 000000000000..3f965be445c1 --- /dev/null +++ b/src/components/participantPropTypes.js @@ -0,0 +1,15 @@ +import PropTypes from 'prop-types'; + +export default PropTypes.shape({ + // Primary login of participant + login: PropTypes.string, + + // Display Name of participant + displayName: PropTypes.string, + + // Avatar url of participant + avatar: PropTypes.string, + + /** First Name of the participant */ + firstName: PropTypes.string, +}); diff --git a/src/pages/ReportDetailsPage.js b/src/pages/ReportDetailsPage.js index 70323fe03b04..10dc4ea4f738 100644 --- a/src/pages/ReportDetailsPage.js +++ b/src/pages/ReportDetailsPage.js @@ -16,7 +16,7 @@ import styles from '../styles/styles'; import DisplayNames from '../components/DisplayNames'; import * as OptionsListUtils from '../libs/OptionsListUtils'; import * as ReportUtils from '../libs/reportUtils'; -import {participantPropTypes} from './home/sidebar/optionPropTypes'; +import participantPropTypes from '../components/participantPropTypes'; import * as Expensicons from '../components/Icon/Expensicons'; import ROUTES from '../ROUTES'; import MenuItem from '../components/MenuItem'; diff --git a/src/pages/home/HeaderView.js b/src/pages/home/HeaderView.js index 4b3969903c44..fb47e0506904 100644 --- a/src/pages/home/HeaderView.js +++ b/src/pages/home/HeaderView.js @@ -19,7 +19,7 @@ import Navigation from '../../libs/Navigation/Navigation'; import ROUTES from '../../ROUTES'; import DisplayNames from '../../components/DisplayNames'; import * as OptionsListUtils from '../../libs/OptionsListUtils'; -import {participantPropTypes} from './sidebar/optionPropTypes'; +import participantPropTypes from '../../components/participantPropTypes'; import VideoChatButtonAndMenu from '../../components/VideoChatButtonAndMenu'; import IOUBadge from '../../components/IOUBadge'; import withLocalize, {withLocalizePropTypes} from '../../components/withLocalize'; diff --git a/src/pages/home/report/ParticipantLocalTime.js b/src/pages/home/report/ParticipantLocalTime.js index dcb48b101b06..25a14689bf9a 100644 --- a/src/pages/home/report/ParticipantLocalTime.js +++ b/src/pages/home/report/ParticipantLocalTime.js @@ -6,7 +6,7 @@ import lodashGet from 'lodash/get'; import Str from 'expensify-common/lib/str'; import styles from '../../../styles/styles'; import withLocalize, {withLocalizePropTypes} from '../../../components/withLocalize'; -import {participantPropTypes} from '../sidebar/optionPropTypes'; +import participantPropTypes from '../../../components/participantPropTypes'; import Text from '../../../components/Text'; import Timers from '../../../libs/Timers'; import CONST from '../../../CONST'; diff --git a/src/pages/home/report/ReportActionCompose.js b/src/pages/home/report/ReportActionCompose.js index b14bb03fab5b..cafee70c3b85 100755 --- a/src/pages/home/report/ReportActionCompose.js +++ b/src/pages/home/report/ReportActionCompose.js @@ -35,7 +35,7 @@ import reportActionPropTypes from './reportActionPropTypes'; import * as ReportUtils from '../../../libs/reportUtils'; import ReportActionComposeFocusManager from '../../../libs/ReportActionComposeFocusManager'; import Text from '../../../components/Text'; -import {participantPropTypes} from '../sidebar/optionPropTypes'; +import participantPropTypes from '../../../components/participantPropTypes'; import ParticipantLocalTime from './ParticipantLocalTime'; import {withNetwork, withPersonalDetails} from '../../../components/OnyxProvider'; import DateUtils from '../../../libs/DateUtils'; diff --git a/src/pages/home/report/ReportActionsView.js b/src/pages/home/report/ReportActionsView.js index 592c279c8ec2..a92e335a1838 100755 --- a/src/pages/home/report/ReportActionsView.js +++ b/src/pages/home/report/ReportActionsView.js @@ -36,7 +36,7 @@ import Performance from '../../../libs/Performance'; import * as ReportUtils from '../../../libs/reportUtils'; import ONYXKEYS from '../../../ONYXKEYS'; import {withPersonalDetails} from '../../../components/OnyxProvider'; -import {participantPropTypes} from '../sidebar/optionPropTypes'; +import participantPropTypes from '../../../components/participantPropTypes'; import EmojiPicker from '../../../components/EmojiPicker'; import * as EmojiPickerAction from '../../../libs/actions/EmojiPickerAction'; diff --git a/src/pages/home/sidebar/SidebarLinks.js b/src/pages/home/sidebar/SidebarLinks.js index 0532ccf3fc11..509927586bbc 100644 --- a/src/pages/home/sidebar/SidebarLinks.js +++ b/src/pages/home/sidebar/SidebarLinks.js @@ -20,7 +20,7 @@ import * as OptionsListUtils from '../../../libs/OptionsListUtils'; import KeyboardSpacer from '../../../components/KeyboardSpacer'; import Tooltip from '../../../components/Tooltip'; import CONST from '../../../CONST'; -import {participantPropTypes} from './optionPropTypes'; +import participantPropTypes from '../../../components/participantPropTypes'; import themeColors from '../../../styles/themes/default'; import withLocalize, {withLocalizePropTypes} from '../../../components/withLocalize'; import * as App from '../../../libs/actions/App'; diff --git a/src/pages/home/sidebar/optionPropTypes.js b/src/pages/home/sidebar/optionPropTypes.js deleted file mode 100644 index f49f2c85cb8d..000000000000 --- a/src/pages/home/sidebar/optionPropTypes.js +++ /dev/null @@ -1,46 +0,0 @@ -import PropTypes from 'prop-types'; - -const participantPropTypes = PropTypes.shape({ - // Primary login of participant - login: PropTypes.string, - - // Display Name of participant - displayName: PropTypes.string, - - // Avatar url of participant - avatar: PropTypes.string, - - /** First Name of the participant */ - firstName: PropTypes.string, -}); - -const optionPropTypes = PropTypes.shape({ - // The full name of the user if available, otherwise the login (email/phone number) of the user - text: PropTypes.string.isRequired, - - // Subtitle to show under report displayName, mostly lastMessageText of the report - alternateText: PropTypes.string, - - // List of participants of the report - participantsList: PropTypes.arrayOf(participantPropTypes), - - // The array URLs or icons of the person's avatar - icons: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.func])), - - // Descriptive text to be displayed besides selection element - descriptiveText: PropTypes.string, - - // The type of option we have e.g. user or report - type: PropTypes.string, - - // The option key provided to FlatList keyExtractor - keyForList: PropTypes.string, - - // Text to show for tooltip - tooltipText: PropTypes.string, -}); - -export { - participantPropTypes, - optionPropTypes, -}; diff --git a/src/stories/OptionRow.stories.js b/src/stories/OptionRow.stories.js new file mode 100644 index 000000000000..14fa0f7d9ded --- /dev/null +++ b/src/stories/OptionRow.stories.js @@ -0,0 +1,28 @@ +import React, {useState} from 'react'; +import OptionRow from '../components/OptionRow'; + +/** + * We use the Component Story Format for writing stories. Follow the docs here: + * + * https://storybook.js.org/docs/react/writing-stories/introduction#component-story-format + */ +export default { + title: 'Components/OptionRow', + component: OptionRow, + args: { + }, +}; + +const Template = (args) => { + return ( + + ); +}; + +// Arguments can be passed to the component by binding +// See: https://storybook.js.org/docs/react/writing-stories/introduction#using-args +const Default = Template.bind({}); + +export { + Default, +}; From 287f07d614f3264f8907a5d3a5f19f711b337d9b Mon Sep 17 00:00:00 2001 From: Marc Glasser Date: Fri, 4 Mar 2022 15:23:10 -1000 Subject: [PATCH 2/7] Cleanup broken paths --- src/components/OptionsList/BaseOptionsList.js | 2 +- src/pages/iou/IOUCurrencySelection.js | 2 +- src/pages/workspace/WorkspaceMembersPage.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/OptionsList/BaseOptionsList.js b/src/components/OptionsList/BaseOptionsList.js index e65b0034035a..f3979f4dcce2 100644 --- a/src/components/OptionsList/BaseOptionsList.js +++ b/src/components/OptionsList/BaseOptionsList.js @@ -4,7 +4,7 @@ import {View} from 'react-native'; import PropTypes from 'prop-types'; import Log from '../../libs/Log'; import styles from '../../styles/styles'; -import OptionRow from '../../pages/home/sidebar/OptionRow'; +import OptionRow from '../OptionRow'; import SectionList from '../SectionList'; import Text from '../Text'; import {propTypes as optionsListPropTypes, defaultProps as optionsListDefaultProps} from './optionsListPropTypes'; diff --git a/src/pages/iou/IOUCurrencySelection.js b/src/pages/iou/IOUCurrencySelection.js index 933583d1210c..3121ecae1545 100644 --- a/src/pages/iou/IOUCurrencySelection.js +++ b/src/pages/iou/IOUCurrencySelection.js @@ -8,7 +8,7 @@ import * as PersonalDetails from '../../libs/actions/PersonalDetails'; import ONYXKEYS from '../../ONYXKEYS'; import * as OptionsListUtils from '../../libs/OptionsListUtils'; import Text from '../../components/Text'; -import OptionRow from '../home/sidebar/OptionRow'; +import OptionRow from '../../components/OptionRow'; import TextInput from '../../components/TextInput'; import Navigation from '../../libs/Navigation/Navigation'; import ScreenWrapper from '../../components/ScreenWrapper'; diff --git a/src/pages/workspace/WorkspaceMembersPage.js b/src/pages/workspace/WorkspaceMembersPage.js index c9f97aeb58d7..59d5e5abe55e 100644 --- a/src/pages/workspace/WorkspaceMembersPage.js +++ b/src/pages/workspace/WorkspaceMembersPage.js @@ -24,7 +24,7 @@ import ConfirmModal from '../../components/ConfirmModal'; import personalDetailsPropType from '../personalDetailsPropType'; import Permissions from '../../libs/Permissions'; import withWindowDimensions, {windowDimensionsPropTypes} from '../../components/withWindowDimensions'; -import OptionRow from '../home/sidebar/OptionRow'; +import OptionRow from '../../components/OptionRow'; import CheckboxWithTooltip from '../../components/CheckboxWithTooltip'; import Hoverable from '../../components/Hoverable'; import withFullPolicy, {fullPolicyPropTypes, fullPolicyDefaultProps} from './withFullPolicy'; From 80a00335a7a6e0099e1420b4b269f07e60c72eae Mon Sep 17 00:00:00 2001 From: Marc Glasser Date: Fri, 4 Mar 2022 15:45:06 -1000 Subject: [PATCH 3/7] Fix up story for OptionRow --- .storybook/preview.js | 10 +++++++++- src/components/OptionRow.js | 18 +++++++++++++++++- src/stories/OptionRow.stories.js | 32 +++++++++++++++++++++++++++++++- 3 files changed, 57 insertions(+), 3 deletions(-) diff --git a/.storybook/preview.js b/.storybook/preview.js index 835171bd408d..9ddb43d6f3e7 100644 --- a/.storybook/preview.js +++ b/.storybook/preview.js @@ -23,7 +23,15 @@ const decorators = [ ), ]; +const parameters = { + controls: { + matchers: { + color: /(background|color)$/i, + }, + }, +}; + export { - // eslint-disable-next-line import/prefer-default-export decorators, + parameters, }; diff --git a/src/components/OptionRow.js b/src/components/OptionRow.js index 3e7c6111c3b6..ea4810da1654 100644 --- a/src/components/OptionRow.js +++ b/src/components/OptionRow.js @@ -77,7 +77,7 @@ const defaultProps = { forceTextUnreadStyle: false, showTitleTooltip: false, mode: 'default', - onSelectRow: null, + onSelectRow: () => {}, isDisabled: false, optionIsFocused: false, disableRowInteractivity: false, @@ -295,5 +295,21 @@ export default withLocalize(memo(OptionRow, (prevProps, nextProps) => { return false; } + if (prevProps.showSelectedState !== nextProps.showSelectedState) { + return false; + } + + if (prevProps.isDisabled !== nextProps.isDisabled) { + return false; + } + + if (prevProps.showTitleTooltip !== nextProps.showTitleTooltip) { + return false; + } + + if (prevProps.backgroundColor !== nextProps.backgroundColor) { + return false; + } + return true; })); diff --git a/src/stories/OptionRow.stories.js b/src/stories/OptionRow.stories.js index 14fa0f7d9ded..e41fe791d185 100644 --- a/src/stories/OptionRow.stories.js +++ b/src/stories/OptionRow.stories.js @@ -1,6 +1,6 @@ import React, {useState} from 'react'; import OptionRow from '../components/OptionRow'; - +import {ActiveRoomAvatar} from '../components/Icon/Expensicons'; /** * We use the Component Story Format for writing stories. Follow the docs here: * @@ -9,7 +9,37 @@ import OptionRow from '../components/OptionRow'; export default { title: 'Components/OptionRow', component: OptionRow, + argTypes: { + mode: { + options: ['default', 'compact'], + control: {type: 'radio'}, + }, + }, args: { + mode: 'default', + optionIsFocused: false, + showSelectedState: false, + isSelected: false, + hideAdditionalOptionStates: false, + forceTextUnreadStyle: false, + showTitleTooltip: false, + isDisabled: false, + disableRowInteractivity: false, + backgroundColor: 'white', + option: { + isUnread: false, + text: 'Test Option', + alternateText: 'Alternate text', + icons: [ActiveRoomAvatar], + login: 'test@expensify.com', + reportID: null, + hasDraftComment: false, + isPinned: false, + isChatRoom: false, + participantsList: [], + descriptiveText: '', + tooltipText: 'Tooltip text', + }, }, }; From 68b840a4cc2f7d00dc0443483044002bc3ce37b3 Mon Sep 17 00:00:00 2001 From: Marc Glasser Date: Fri, 4 Mar 2022 15:56:12 -1000 Subject: [PATCH 4/7] remove unused useState --- src/stories/OptionRow.stories.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stories/OptionRow.stories.js b/src/stories/OptionRow.stories.js index e41fe791d185..0ba445546d44 100644 --- a/src/stories/OptionRow.stories.js +++ b/src/stories/OptionRow.stories.js @@ -1,4 +1,4 @@ -import React, {useState} from 'react'; +import React from 'react'; import OptionRow from '../components/OptionRow'; import {ActiveRoomAvatar} from '../components/Icon/Expensicons'; /** From b83b19588e2032bc87b00cbabba04046cfa7ca8c Mon Sep 17 00:00:00 2001 From: Marc Glasser Date: Fri, 4 Mar 2022 15:56:26 -1000 Subject: [PATCH 5/7] add newline --- src/stories/OptionRow.stories.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/stories/OptionRow.stories.js b/src/stories/OptionRow.stories.js index 0ba445546d44..97417ec80f70 100644 --- a/src/stories/OptionRow.stories.js +++ b/src/stories/OptionRow.stories.js @@ -1,6 +1,7 @@ import React from 'react'; import OptionRow from '../components/OptionRow'; import {ActiveRoomAvatar} from '../components/Icon/Expensicons'; + /** * We use the Component Story Format for writing stories. Follow the docs here: * From 9b20b239f0cf1364b15ad8c149eecba0181a7b36 Mon Sep 17 00:00:00 2001 From: Marc Glasser Date: Fri, 4 Mar 2022 16:02:57 -1000 Subject: [PATCH 6/7] fix style --- src/stories/OptionRow.stories.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/stories/OptionRow.stories.js b/src/stories/OptionRow.stories.js index 97417ec80f70..ca721f3e0ee3 100644 --- a/src/stories/OptionRow.stories.js +++ b/src/stories/OptionRow.stories.js @@ -1,6 +1,6 @@ import React from 'react'; import OptionRow from '../components/OptionRow'; -import {ActiveRoomAvatar} from '../components/Icon/Expensicons'; +import * as Expensicons from '../components/Icon/Expensicons'; /** * We use the Component Story Format for writing stories. Follow the docs here: @@ -31,7 +31,7 @@ export default { isUnread: false, text: 'Test Option', alternateText: 'Alternate text', - icons: [ActiveRoomAvatar], + icons: [Expensicons.ActiveRoomAvatar], login: 'test@expensify.com', reportID: null, hasDraftComment: false, @@ -44,11 +44,8 @@ export default { }, }; -const Template = (args) => { - return ( - - ); -}; +// eslint-disable-next-line react/jsx-props-no-spreading +const Template = args => ; // Arguments can be passed to the component by binding // See: https://storybook.js.org/docs/react/writing-stories/introduction#using-args From 495d3db81c5bc8a84868078ffb7a06868b4ab795 Mon Sep 17 00:00:00 2001 From: Marc Glasser Date: Mon, 7 Mar 2022 14:40:54 -1000 Subject: [PATCH 7/7] Fix up disableRowInteractivity. Add missing propType --- src/components/IOUConfirmationList.js | 2 +- src/components/OptionRow.js | 6 +----- src/components/OptionsList/BaseOptionsList.js | 2 +- src/components/OptionsList/optionsListPropTypes.js | 4 ++-- src/components/optionPropTypes.js | 3 +++ src/pages/workspace/WorkspaceMembersPage.js | 2 +- src/stories/OptionRow.stories.js | 1 - 7 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/components/IOUConfirmationList.js b/src/components/IOUConfirmationList.js index c9e8d8ce435d..a02a75595805 100755 --- a/src/components/IOUConfirmationList.js +++ b/src/components/IOUConfirmationList.js @@ -364,7 +364,7 @@ class IOUConfirmationList extends Component { canSelectMultipleOptions={this.props.hasMultipleParticipants} selectedOptions={this.getSelectedOptions()} onSelectRow={toggleOption} - disableRowInteractivity={!this.props.isGroupSplit} + isDisabled={!this.props.isGroupSplit} optionHoveredStyle={hoverStyle} /> diff --git a/src/components/OptionRow.js b/src/components/OptionRow.js index ea4810da1654..9610d5a9200b 100644 --- a/src/components/OptionRow.js +++ b/src/components/OptionRow.js @@ -62,9 +62,6 @@ const propTypes = { /** Whether this option should be disabled */ isDisabled: PropTypes.bool, - /** Whether to disable the interactivity of this row */ - disableRowInteractivity: PropTypes.bool, - ...withLocalizePropTypes, }; @@ -80,7 +77,6 @@ const defaultProps = { onSelectRow: () => {}, isDisabled: false, optionIsFocused: false, - disableRowInteractivity: false, }; const OptionRow = (props) => { @@ -143,7 +139,7 @@ const OptionRow = (props) => { e.preventDefault(); props.onSelectRow(props.option, touchableRef); }} - disabled={props.disableRowInteractivity} + disabled={props.isDisabled} activeOpacity={0.8} style={[ styles.flexRow, diff --git a/src/components/OptionsList/BaseOptionsList.js b/src/components/OptionsList/BaseOptionsList.js index f3979f4dcce2..f6049a886c5a 100644 --- a/src/components/OptionsList/BaseOptionsList.js +++ b/src/components/OptionsList/BaseOptionsList.js @@ -111,7 +111,7 @@ class BaseOptionsList extends Component { showSelectedState={this.props.canSelectMultipleOptions} hideAdditionalOptionStates={this.props.hideAdditionalOptionStates} forceTextUnreadStyle={this.props.forceTextUnreadStyle} - disableRowInteractivity={this.props.disableRowInteractivity} + isDisabled={this.props.isDisabled} /> ); } diff --git a/src/components/OptionsList/optionsListPropTypes.js b/src/components/OptionsList/optionsListPropTypes.js index 7b2e20c8828c..b51fc14d64d7 100644 --- a/src/components/OptionsList/optionsListPropTypes.js +++ b/src/components/OptionsList/optionsListPropTypes.js @@ -74,7 +74,7 @@ const propTypes = { optionMode: PropTypes.oneOf(_.values(CONST.OPTION_MODE)), /** Whether to disable the interactivity of the list's option row(s) */ - disableRowInteractivity: PropTypes.bool, + isDisabled: PropTypes.bool, /** Callback to execute when the SectionList lays out */ onLayout: PropTypes.func, @@ -98,7 +98,7 @@ const defaultProps = { innerRef: null, showTitleTooltip: false, optionMode: undefined, - disableRowInteractivity: false, + isDisabled: false, onLayout: undefined, }; diff --git a/src/components/optionPropTypes.js b/src/components/optionPropTypes.js index b0ec5a89d631..47af58d240cb 100644 --- a/src/components/optionPropTypes.js +++ b/src/components/optionPropTypes.js @@ -35,6 +35,9 @@ export default PropTypes.shape({ // Whether the report corresponds to a chat room isChatRoom: PropTypes.bool, + // Whether the option has an outstanding IOU + hasOutstandingIOU: PropTypes.bool, + // List of participants of the report participantsList: PropTypes.arrayOf(participantPropTypes), diff --git a/src/pages/workspace/WorkspaceMembersPage.js b/src/pages/workspace/WorkspaceMembersPage.js index 59d5e5abe55e..cb916ad25b4f 100644 --- a/src/pages/workspace/WorkspaceMembersPage.js +++ b/src/pages/workspace/WorkspaceMembersPage.js @@ -215,7 +215,7 @@ class WorkspaceMembersPage extends React.Component {