diff --git a/src/components/MetaBar.tsx b/src/components/MetaBar.tsx index 8a41e95..903d954 100644 --- a/src/components/MetaBar.tsx +++ b/src/components/MetaBar.tsx @@ -2,8 +2,7 @@ import { BranchName, Breadcrumb, Flex, Text } from '@primer/components' import { GitBranchIcon } from '@primer/octicons-react' import { platform } from 'platforms' import * as React from 'react' -import { isOpenInNewWindowClick } from 'utils/general' -import { loadWithPJAX } from 'utils/hooks/usePJAX' +import { createAnchorClickHandler } from 'utils/general' type Props = { metaData: MetaData @@ -18,7 +17,12 @@ export function MetaBar({ metaData }: Props) { {userName} - + {repoName} @@ -30,12 +34,7 @@ export function MetaBar({ metaData }: Props) { href={branchUrl} as="a" className={'branch-name'} - onClick={e => { - if (isOpenInNewWindowClick(e)) return - - e.preventDefault() - loadWithPJAX(branchUrl, e.currentTarget) - }} + onClick={createAnchorClickHandler(branchUrl)} {...platform.delegatePJAXProps?.()} > {branchName || '...'} diff --git a/src/utils/general.ts b/src/utils/general.ts index 619b889..0b928c8 100644 --- a/src/utils/general.ts +++ b/src/utils/general.ts @@ -1,5 +1,6 @@ import { ReactElement } from 'react' import * as ReactDOM from 'react-dom' +import { loadWithPJAX } from './hooks/usePJAX' export function pick(source: T, keys: string[]): Partial { if (keys && typeof keys === 'object') { @@ -219,3 +220,12 @@ export function resolveDiffGraphMeta(additions: number, deletions: number, chang w = 5 - g - r return { g, r, w } } + +export function createAnchorClickHandler(url: string) { + return (e: React.MouseEvent) => { + if (isOpenInNewWindowClick(e)) return + + e.preventDefault() + loadWithPJAX(url, e.currentTarget) + } +}