import React from 'dom-chef'; import select from 'select-dom'; import onetime from 'onetime'; import features from '.'; import {isEditable} from '../helpers/dom-utils'; function splitKeys(keys: string): DocumentFragment[] { return keys.split(' ').map(key => <> {key}); } function improveShortcutHelp(dialog: Element): void { select('.Box-body .col-5 .Box:first-child', dialog)!.after(

Added by Refined GitHub

); } function fixKeys(dialog: Element): void { for (const key of select.all('kbd', dialog)) { if (key.textContent!.includes(' ')) { key.replaceWith(...splitKeys(key.textContent!)); } } } const observer = new MutationObserver(([{target}]) => { if (target instanceof Element && !select.exists('.js-details-dialog-spinner', target)) { improveShortcutHelp(target); fixKeys(target); observer.disconnect(); } }); function observeShortcutModal({key, target}: KeyboardEvent): void { if (key !== '?' || isEditable(target)) { return; } const modal = select('body > details > details-dialog'); if (modal) { observer.observe(modal, {childList: true}); } } function init(): void { document.addEventListener('keypress', observeShortcutModal); } void features.add(__filebasename, { awaitDomReady: false, init: onetime(init) });