summaryrefslogtreecommitdiff
path: root/source/features/edit-files-faster.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'source/features/edit-files-faster.tsx')
-rw-r--r--source/features/edit-files-faster.tsx36
1 files changed, 36 insertions, 0 deletions
diff --git a/source/features/edit-files-faster.tsx b/source/features/edit-files-faster.tsx
new file mode 100644
index 00000000..bce1e325
--- /dev/null
+++ b/source/features/edit-files-faster.tsx
@@ -0,0 +1,36 @@
+/*
+Edit files straight from a repo’s list by clicking their icon.
+*/
+
+import React from 'dom-chef';
+import select from 'select-dom';
+import features from '../libs/features';
+import * as icons from '../libs/icons';
+import {wrap} from '../libs/dom-utils';
+
+function init() {
+ for (const fileIcon of select.all('.files :not(a) > .octicon-file')) {
+ const pathnameParts = fileIcon
+ .closest('tr')!
+ .querySelector<HTMLAnchorElement>('.js-navigation-open')!
+ .pathname
+ .split('/');
+
+ pathnameParts[3] = 'edit'; // Replaces `/blob/`
+
+ wrap(fileIcon,
+ <a href={pathnameParts.join('/')} className="rgh-edit-files-faster">
+ {icons.edit()}
+ </a>
+ );
+ }
+}
+
+features.add({
+ id: 'edit-comments-faster',
+ include: [
+ features.isRepoTree
+ ],
+ load: features.onFileListUpdate,
+ init
+});