diff options
author | 2020-01-07 00:19:09 +0700 | |
---|---|---|
committer | 2020-01-07 00:19:09 +0700 | |
commit | 7f1f2c52d8deeb0fddb7a7322af7dd090ac19461 (patch) | |
tree | 6d5aba6a51777875918a609e4fdf2534870169be /source/features/copy-file.tsx | |
parent | dac2a0302aad5462c3a6b896fc66b18391c73d12 (diff) | |
download | refined-github-7f1f2c52d8deeb0fddb7a7322af7dd090ac19461.tar.gz refined-github-7f1f2c52d8deeb0fddb7a7322af7dd090ac19461.tar.zst refined-github-7f1f2c52d8deeb0fddb7a7322af7dd090ac19461.zip |
Keep features working after clicking the browser’s Back button (#2639)
Diffstat (limited to 'source/features/copy-file.tsx')
-rw-r--r-- | source/features/copy-file.tsx | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/source/features/copy-file.tsx b/source/features/copy-file.tsx index 6a110fa8..6b4660ab 100644 --- a/source/features/copy-file.tsx +++ b/source/features/copy-file.tsx @@ -1,10 +1,10 @@ import React from 'dom-chef'; import select from 'select-dom'; -import delegate from 'delegate-it'; +import delegate, {DelegateEvent} from 'delegate-it'; import copyToClipboard from 'copy-text-to-clipboard'; import features from '../libs/features'; -function handleClick({currentTarget: button}: React.MouseEvent<HTMLButtonElement>): void { +function handleClick({delegateTarget: button}: DelegateEvent<MouseEvent, HTMLButtonElement>): void { const file = button.closest('.Box, .js-gist-file-update-container'); const content = select.all('.blob-code-inner', file!) .map(({innerText: line}) => line === '\n' ? '' : line) // Must be `.innerText` @@ -25,7 +25,6 @@ function renderButton(): void { .parentElement! // `BtnGroup` .prepend( <button - onClick={handleClick} className="btn btn-sm tooltipped tooltipped-n BtnGroup-item rgh-copy-file" aria-label="Copy file to clipboard" type="button"> @@ -35,15 +34,16 @@ function renderButton(): void { } } +function removeButton(): void { + select('.rgh-copy-file')?.remove(); +} + function init(): void { + delegate('.rgh-copy-file', 'click', handleClick); + if (select.exists('.blob.instapaper_body')) { delegate('.rgh-md-source', 'rgh:view-markdown-source', renderButton); - delegate('.rgh-md-source', 'rgh:view-markdown-rendered', () => { - const button = select('.rgh-copy-file'); - if (button) { - button.remove(); - } - }); + delegate('.rgh-md-source', 'rgh:view-markdown-rendered', removeButton); } else { renderButton(); } |