summaryrefslogtreecommitdiff
path: root/source/features/copy-file.tsx
diff options
context:
space:
mode:
authorGravatar Federico Brigante <github@bfred.it> 2020-01-07 00:19:09 +0700
committerGravatar GitHub <noreply@github.com> 2020-01-07 00:19:09 +0700
commit7f1f2c52d8deeb0fddb7a7322af7dd090ac19461 (patch)
tree6d5aba6a51777875918a609e4fdf2534870169be /source/features/copy-file.tsx
parentdac2a0302aad5462c3a6b896fc66b18391c73d12 (diff)
downloadrefined-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.tsx18
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();
}