import React from 'dom-chef'; import elementReady from 'element-ready'; import chevronLeftIcon from 'octicon/chevron-left.svg'; import features from '../libs/features'; import {isRepoRoot} from '../libs/page-detect'; import {groupButtons} from '../libs/group-buttons'; import getDefaultBranch from '../libs/get-default-branch'; import {getRepoURL, getCurrentBranch, replaceBranch} from '../libs/utils'; async function init(): Promise { const defaultBranch = await getDefaultBranch(); const currentBranch = getCurrentBranch(); // Don't show the button if we’re already on the default branch if (defaultBranch === currentBranch) { return false; } let url; if (isRepoRoot()) { url = `/${getRepoURL()}`; } else { url = replaceBranch(currentBranch, defaultBranch); } const branchSelector = (await elementReady('#branch-select-menu'))!; const defaultLink = ( {chevronLeftIcon()} ); branchSelector.before(defaultLink); const group = groupButtons([defaultLink, branchSelector]); group.classList.add('m-0'); } features.add({ id: __featureName__, description: 'Adds link the default branch on directory listings and files.', screenshot: 'https://user-images.githubusercontent.com/1402241/71886648-2891dc00-316f-11ea-98d8-c5bf6c24d85c.png', include: [ features.isRepoTree, features.isSingleFile ], load: features.nowAndOnAjaxedPages, init });