diff options
Diffstat (limited to 'source/features/patch-diff-links.tsx')
-rw-r--r-- | source/features/patch-diff-links.tsx | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/source/features/patch-diff-links.tsx b/source/features/patch-diff-links.tsx new file mode 100644 index 00000000..58bf5947 --- /dev/null +++ b/source/features/patch-diff-links.tsx @@ -0,0 +1,29 @@ +import {React} from 'dom-chef/react'; +import select from 'select-dom'; +import features from '../libs/features'; +import {isPRCommit} from '../libs/page-detect'; + +function init() { + let commitUrl = location.pathname.replace(/\/$/, ''); + + if (isPRCommit()) { + commitUrl = commitUrl.replace(/\/pull\/\d+\/commits/, '/commit'); + } + + select('.commit-meta > :last-child').append( + <span class="sha-block patch-diff-links"> + <a href={`${commitUrl}.patch`} class="sha">patch</a> + { ' ' /* Workaround for: JSX eats whitespace between elements */ } + <a href={`${commitUrl}.diff`} class="sha">diff</a> + </span> + ); +} + +features.add({ + id: 'patch-diff-links', + include: [ + features.isCommit + ], + load: features.onAjaxedPages, + init +}); |