Skip to content

Commit

Permalink
Merge pull request #8769 from mateusbra/openOldDotLinks
Browse files Browse the repository at this point in the history
Open old dot links with openOldDotLink() function
  • Loading branch information
iwiznia authored May 3, 2022
2 parents 7feb4b1 + d3fa8e0 commit 5f6d8db
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions src/components/HTMLEngineProvider/HTMLRenderers/AnchorRenderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@ import htmlRendererPropTypes from './htmlRendererPropTypes';
import * as HTMLEngineUtils from '../htmlEngineUtils';
import Text from '../../Text';
import CONST from '../../../CONST';
import CONFIG from '../../../CONFIG';
import styles from '../../../styles/styles';
import Navigation from '../../../libs/Navigation/Navigation';
import AnchorForCommentsOnly from '../../AnchorForCommentsOnly';
import * as Link from '../../../libs/actions/Link';

const AnchorRenderer = (props) => {
const htmlAttribs = props.tnode.attributes;
Expand All @@ -20,16 +22,29 @@ const AnchorRenderer = (props) => {
const displayName = lodashGet(props.tnode, 'domNode.children[0].data', '');
const parentStyle = lodashGet(props.tnode, 'parent.styles.nativeTextRet', {});
const attrHref = htmlAttribs.href || '';
const internalExpensifyPath = (attrHref.startsWith(CONST.NEW_EXPENSIFY_URL) && attrHref.replace(CONST.NEW_EXPENSIFY_URL, ''))
const internalNewExpensifyPath = (attrHref.startsWith(CONST.NEW_EXPENSIFY_URL) && attrHref.replace(CONST.NEW_EXPENSIFY_URL, ''))
|| (attrHref.startsWith(CONST.STAGING_NEW_EXPENSIFY_URL) && attrHref.replace(CONST.STAGING_NEW_EXPENSIFY_URL, ''));
const internalExpensifyPath = attrHref.startsWith(CONFIG.EXPENSIFY.EXPENSIFY_URL) && attrHref.replace(CONFIG.EXPENSIFY.EXPENSIFY_URL, '');

// If we are handling a New Expensify link then we will assume this should be opened by the app internally. This ensures that the links are opened internally via react-navigation
// instead of in a new tab or with a page refresh (which is the default behavior of an anchor tag)
if (internalNewExpensifyPath) {
return (
<Text
style={styles.link}
onPress={() => Navigation.navigate(internalNewExpensifyPath)}
>
<TNodeChildrenRenderer tnode={props.tnode} />
</Text>
);
}

// If we are handling an old dot Expensify link we need to open it with openOldDotLink() so we can navigate to it with the user already logged in.
if (internalExpensifyPath) {
return (
<Text
style={styles.link}
onPress={() => Navigation.navigate(internalExpensifyPath)}
onPress={() => Link.openOldDotLink(internalExpensifyPath)}
>
<TNodeChildrenRenderer tnode={props.tnode} />
</Text>
Expand Down

0 comments on commit 5f6d8db

Please sign in to comment.