Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Highlight linked comment #27227

Merged
merged 25 commits into from
Oct 2, 2023
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
cb99986
create withRoute
perunt Sep 12, 2023
9ae049c
highlight background color If needed
perunt Sep 12, 2023
8d34f87
lint
perunt Sep 12, 2023
58dbaf3
add dependency
perunt Sep 12, 2023
0e2ebde
Merge branch 'main' of https://github.com/margelo/expensify-app-fork …
perunt Sep 15, 2023
a7db8b3
Merge branch 'main' of https://github.com/margelo/expensify-app-fork …
perunt Sep 19, 2023
43a586c
use hook instead of hoc
perunt Sep 19, 2023
a080732
use getBackgroundColorStyle
perunt Sep 22, 2023
77cf7f9
Merge branch 'main' of https://github.com/Expensify/App into feat/##2…
perunt Sep 22, 2023
836e394
highlighting money request
perunt Sep 23, 2023
2fdb1cb
change link when click active report in LHN
perunt Sep 23, 2023
2dea92d
clean
perunt Sep 23, 2023
7b7e985
trying to remove weird 'iou' error
perunt Sep 23, 2023
29c077d
trying to remove weird 'iou' error
perunt Sep 23, 2023
9e44fc3
trying to remove weird 'iou' error II
perunt Sep 23, 2023
c9e5fa5
restore to state before iou error
perunt Sep 23, 2023
a98f407
test highlightedBackgroundColorIfNeeded
perunt Sep 23, 2023
274df33
Merge branch 'main' of https://github.com/Expensify/App into feat/##2…
perunt Sep 23, 2023
e494d9f
Merge branch 'main' of https://github.com/Expensify/App into feat/##2…
perunt Sep 25, 2023
ea94621
return highlighting money request
perunt Sep 25, 2023
0c164d1
getTopmostReportActionID
perunt Sep 25, 2023
97d6dd4
lint
perunt Sep 25, 2023
1dd422a
Merge branch 'main' of https://github.com/Expensify/App into feat/##2…
perunt Sep 28, 2023
91384f5
move isReportActionLinked to props
perunt Sep 29, 2023
534ffba
spacing
perunt Sep 29, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions src/components/withRoute.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import React from 'react';
import PropTypes from 'prop-types';
import {useRoute} from '@react-navigation/native';
import getComponentDisplayName from '../libs/getComponentDisplayName';
import refPropTypes from './refPropTypes';

const withRoutePropTypes = {
route: PropTypes.object.isRequired,
};

export default function withRoute(WrappedComponent) {
function WithRoute(props) {
const route = useRoute();
return (
<WrappedComponent
// eslint-disable-next-line react/jsx-props-no-spreading
{...props}
ref={props.forwardedRef}
route={route}
/>
);
}

WithRoute.displayName = `withRoute(${getComponentDisplayName(WrappedComponent)})`;
WithRoute.propTypes = {
forwardedRef: refPropTypes,
};
WithRoute.defaultProps = {
forwardedRef: () => {},
};
return React.forwardRef((props, ref) => (
<WithRoute
// eslint-disable-next-line react/jsx-props-no-spreading
{...props}
forwardedRef={ref}
/>
));
}

export {withRoutePropTypes};
15 changes: 12 additions & 3 deletions src/pages/home/report/ReportActionItem.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import _ from 'underscore';
import lodashGet from 'lodash/get';
import React, {useState, useRef, useEffect, memo, useCallback, useContext} from 'react';
import React, {useState, useRef, useEffect, memo, useCallback, useContext, useMemo} from 'react';
import {InteractionManager, View} from 'react-native';
import PropTypes from 'prop-types';
import {withOnyx} from 'react-native-onyx';
Expand Down Expand Up @@ -61,12 +61,14 @@ import * as Session from '../../../libs/actions/Session';
import MoneyRequestView from '../../../components/ReportActionItem/MoneyRequestView';
import {hideContextMenu} from './ContextMenu/ReportActionContextMenu';
import * as PersonalDetailsUtils from '../../../libs/PersonalDetailsUtils';
import ReportActionItemBasicMessage from './ReportActionItemBasicMessage';
import * as store from '../../../libs/actions/ReimbursementAccount/store';
import * as BankAccounts from '../../../libs/actions/BankAccounts';
import usePrevious from '../../../hooks/usePrevious';
import ReportScreenContext from '../ReportScreenContext';
import Permissions from '../../../libs/Permissions';
import themeColors from '../../../styles/themes/default';
import withRoute from '../../../components/withRoute';
import ReportActionItemBasicMessage from './ReportActionItemBasicMessage';
import RenderHTML from '../../../components/RenderHTML';
import ReportAttachmentsContext from './ReportAttachmentsContext';

Expand Down Expand Up @@ -138,6 +140,12 @@ function ReportActionItem(props) {
const prevDraftMessage = usePrevious(props.draftMessage);
const originalReportID = ReportUtils.getOriginalReportID(props.report.reportID, props.action);
const originalReport = props.report.reportID === originalReportID ? props.report : ReportUtils.getReport(originalReportID);
const reportActionID = lodashGet(props.route, 'params.reportActionID');

const highlightedBackgroundColorIfNeeded = useMemo(
() => (reportActionID === props.action.reportActionID ? {backgroundColor: themeColors.highlightBG} : {}),
perunt marked this conversation as resolved.
Show resolved Hide resolved
[reportActionID, props.action.reportActionID],
);

// When active action changes, we need to update the `isContextMenuActive` state
const isActiveReportActionForMenu = ReportActionContextMenu.isActiveReportAction(props.action.reportActionID);
Expand Down Expand Up @@ -598,7 +606,7 @@ function ReportActionItem(props) {
disabled={Boolean(props.draftMessage)}
>
{(hovered) => (
<View>
<View style={highlightedBackgroundColorIfNeeded}>
{props.shouldDisplayNewMarker && <UnreadActionIndicator reportActionID={props.action.reportActionID} />}
<MiniReportActionContextMenu
reportID={props.report.reportID}
Expand Down Expand Up @@ -687,6 +695,7 @@ export default compose(
key: ({action}) => `${ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS}${action.reportActionID}`,
},
}),
withRoute,
perunt marked this conversation as resolved.
Show resolved Hide resolved
)(
memo(
ReportActionItem,
Expand Down