You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.2 KiB
47 lines
1.2 KiB
3 years ago
|
import { useSelector } from 'react-redux';
|
||
|
import { useRouteMatch } from 'react-router-dom';
|
||
|
import { PATH_NAME_MAP } from '../helpers/constants/routes';
|
||
|
import { txDataSelector } from '../selectors';
|
||
|
|
||
|
const PATHS_TO_CHECK = Object.keys(PATH_NAME_MAP);
|
||
|
|
||
|
/**
|
||
|
* Returns the current page if it matches our route map, as well as the origin
|
||
|
* if there is a confirmation that was triggered by a dapp. These values are
|
||
|
* not required but add valuable context to events, and should be included in
|
||
|
* the context object on the event payload.
|
||
|
*
|
||
|
* @returns {{
|
||
|
* page?: MetaMetricsPageObject
|
||
|
* referrer?: MetaMetricsReferrerObject
|
||
|
* }}
|
||
|
*/
|
||
3 years ago
|
export function useSegmentContext() {
|
||
3 years ago
|
const match = useRouteMatch({
|
||
|
path: PATHS_TO_CHECK,
|
||
|
exact: true,
|
||
|
strict: true,
|
||
|
});
|
||
|
const txData = useSelector(txDataSelector) || {};
|
||
|
const confirmTransactionOrigin = txData.origin;
|
||
|
|
||
|
const referrer = confirmTransactionOrigin
|
||
|
? {
|
||
|
url: confirmTransactionOrigin,
|
||
|
}
|
||
|
: undefined;
|
||
|
|
||
|
const page = match
|
||
|
? {
|
||
|
path: match.path,
|
||
|
title: PATH_NAME_MAP[match.path],
|
||
|
url: match.path,
|
||
|
}
|
||
|
: undefined;
|
||
|
|
||
|
return {
|
||
|
page,
|
||
|
referrer,
|
||
|
};
|
||
|
}
|