Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
fix(BrowserLoadFragment): move to other issue with anchor link
  • Loading branch information
h13i32maru committed May 16, 2021
1 parent 9d65702 commit 68c51c9
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 6 deletions.
6 changes: 4 additions & 2 deletions src/Renderer/Fragment/Browser/BrowserLoadFragment.tsx
Expand Up @@ -123,8 +123,10 @@ export class BrowserLoadFragment extends React.Component<Props, State> {

private setupPageLoading() {
BrowserViewIPC.onEventDidStartNavigation(async (_ev, url, inPage) => {
// ページ内遷移(アンカーやSPA的な遷移)ではissue選択を移動しない
if (inPage) return;
// inPageはアンカーやSPA的な遷移でtrueとなる
// issueから別のissueに遷移したとき、先読みされている場合はSPA的な遷移になる(同じリポジトリの場合など)
// なので、inPageだからといって、ハンドリングをキャンセルするわけにないかない
// if (inPage) return;

// issueを選択したときに、なぜか直前に選択していたissueのdid-start-navigationが発行されてしまう
// electronの不具合なのか、IPC通してイベントを受け取っているのがだめなのかよくわからない
Expand Down
17 changes: 13 additions & 4 deletions src/Renderer/Library/Util/GitHubUtil.ts
Expand Up @@ -4,7 +4,10 @@ import {color} from '../Style/color';

class _GitHubUtil {
getInfo(url: string): {repo: string; issueNumber: number, user: string, repoOrg: string, repoName: string} {
const urlPaths = url.split('/').reverse();
const urlObj = new URL(url);
const pathname = urlObj.pathname;

const urlPaths = pathname.split('/').reverse();
const repoOrg = urlPaths[3];
const repoName = urlPaths[2];
const repo = `${repoOrg}/${repoName}`;
Expand All @@ -30,16 +33,22 @@ class _GitHubUtil {
isIssueUrl(host: string, url: string): boolean {
if (!url) return false;

let isIssue = !!url.match(new RegExp(`^https://${host}/[\\w\\d-_.]+/[\\w\\d-_.]+/issues/\\d+$`));
let isPR = !!url.match(new RegExp(`^https://${host}/[\\w\\d-_.]+/[\\w\\d-_.]+/pull/\\d+$`));
const urlObj = new URL(url);
if (urlObj.host !== host) return false;

const isIssue = !!urlObj.pathname.match(new RegExp(`^/[\\w\\d-_.]+/[\\w\\d-_.]+/issues/\\d+$`));
const isPR = !!urlObj.pathname.match(new RegExp(`^/[\\w\\d-_.]+/[\\w\\d-_.]+/pull/\\d+$`));

return isIssue || isPR;
}

isProjectUrl(host: string, url: string): boolean {
if (!url) return false;

return !!url.match(new RegExp(`^https://${host}/[\\w\\d-_.]+/[\\w\\d-_.]+/projects/\\d+$`));
const urlObj = new URL(url);
if (urlObj.host !== host) return false;

return !!urlObj.pathname.match(new RegExp(`^/[\\w\\d-_.]+/[\\w\\d-_.]+/projects/\\d+$`));
}

getIssueTypeInfo(issue: IssueEntity): {icon: IconNameType; color: string; label: string, state: string} {
Expand Down

0 comments on commit 68c51c9

Please sign in to comment.