Skip to content

Instantly share code, notes, and snippets.

@kiosion
Last active May 6, 2023 03:12
Show Gist options
  • Save kiosion/70fee4aaff097249f4babc899ea5a3f9 to your computer and use it in GitHub Desktop.
Save kiosion/70fee4aaff097249f4babc899ea5a3f9 to your computer and use it in GitHub Desktop.
Grailed modal keyhandler TamperMonkey userscript
// ==UserScript==
// @name Grailed Modal Keyhandler
// @namespace https://www.grailed.com/
// @version 0.1
// @description Handle keypresses in image modals like should be fucking done by default :)
// @author Kiosion
// @match https://www.grailed.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=grailed.com
// @grant none
// ==/UserScript==
(function () {
'use strict';
const keyUpHandler = (event) => {
if (!['ArrowLeft', 'ArrowRight', 'Escape'].includes(event.key)) {
return;
}
const sliderModal = document.querySelectorAll('[class*="Modal_photoGalleryModal"]')?.[0];
if (!sliderModal) {
return;
}
switch (event.key) {
case 'ArrowLeft': {
event.preventDefault();
const leftArrow = sliderModal.querySelector('.slider-control-centerleft button');
leftArrow?.click?.();
break;
}
case 'ArrowRight': {
event.preventDefault();
const rightArrow = sliderModal.querySelector('.slider-control-centerright button');
rightArrow?.click?.();
break;
}
case 'Escape': {
event.preventDefault();
const closeButton = sliderModal.querySelector('a.close');
closeButton?.click?.();
break;
}
}
};
window.addEventListener('keyup', keyUpHandler);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment