summaryrefslogtreecommitdiff
path: root/source/features/easy-toggle-commit-messages.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'source/features/easy-toggle-commit-messages.tsx')
-rw-r--r--source/features/easy-toggle-commit-messages.tsx29
1 files changed, 29 insertions, 0 deletions
diff --git a/source/features/easy-toggle-commit-messages.tsx b/source/features/easy-toggle-commit-messages.tsx
new file mode 100644
index 00000000..1021e425
--- /dev/null
+++ b/source/features/easy-toggle-commit-messages.tsx
@@ -0,0 +1,29 @@
+import select from 'select-dom';
+import delegate from 'delegate-it';
+import * as pageDetect from 'github-url-detection';
+
+import features from '.';
+
+function toggleCommitMessage(event: delegate.Event<MouseEvent>): void {
+ const elementClicked = event.target as HTMLElement;
+ // The clicked element is not a button, a link or a popup ("Verified" badge, CI details, etc.)
+ if (!elementClicked.closest('a, button, clipboard-copy, details')) {
+ select('.ellipsis-expander', event.delegateTarget)?.dispatchEvent(
+ new MouseEvent('click', {bubbles: true, altKey: event.altKey}),
+ );
+ }
+}
+
+async function init(): Promise<void> {
+ delegate(document, '.js-commits-list-item', 'click', toggleCommitMessage);
+}
+
+void features.add(import.meta.url, {
+ include: [
+ pageDetect.isCommitList,
+ pageDetect.isCompare,
+ ],
+ awaitDomReady: false,
+ deduplicate: 'has-rgh-inner',
+ init,
+});