From 8a3135a312f84f65a5d2b94956dd97d7cb520947 Mon Sep 17 00:00:00 2001 From: Kid Date: Wed, 15 Sep 2021 15:46:58 +0800 Subject: [PATCH] Use GitHub native PJAX --- src/components/MetaBar.tsx | 16 ++++++++++------ src/components/Node.tsx | 13 +++++++++---- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/components/MetaBar.tsx b/src/components/MetaBar.tsx index f652bfe..8691180 100644 --- a/src/components/MetaBar.tsx +++ b/src/components/MetaBar.tsx @@ -1,6 +1,6 @@ import { BranchName, Breadcrumb, Flex, Text } from '@primer/components' import { GitBranchIcon } from '@primer/octicons-react' -import { platform } from 'platforms' +import { platform, platformName } from 'platforms' import * as React from 'react' import { isOpenInNewWindowClick } from 'utils/general' import { loadWithPJAX } from 'utils/hooks/usePJAX' @@ -28,12 +28,16 @@ export function MetaBar({ metaData }: Props) { href={branchUrl} as="a" className={'branch-name'} - onClick={e => { - if (isOpenInNewWindowClick(e)) return + {...(platformName === 'GitHub' + ? { 'data-pjax': '#repo-content-pjax-container' } + : { + onClick: e => { + if (isOpenInNewWindowClick(e)) return - e.preventDefault() - loadWithPJAX(branchUrl) - }} + e.preventDefault() + loadWithPJAX(branchUrl) + }, + })} > {branchName || '...'} diff --git a/src/components/Node.tsx b/src/components/Node.tsx index 194fbec..45d0f58 100644 --- a/src/components/Node.tsx +++ b/src/components/Node.tsx @@ -1,4 +1,5 @@ import { useConfigs } from 'containers/ConfigsContext' +import { platformName } from 'platforms' import * as React from 'react' import { cx } from 'utils/cx' import { isOpenInNewWindowClick } from 'utils/general' @@ -42,11 +43,15 @@ export function Node({ return ( { - if (isOpenInNewWindowClick(event)) return + {...(platformName === 'GitHub' && node.type === 'blob' + ? { 'data-pjax': '#repo-content-pjax-container' } + : { + onClick: event => { + if (isOpenInNewWindowClick(event)) return - onClick(event, node) - }} + onClick(event, node) + }, + })} className={cx(`node-item`, { focused, disabled: node.accessDenied, expanded, compact })} style={{ ...style, paddingLeft: `${10 + (compact ? 10 : 20) * depth}px` }} title={node.path}