[PS] Import Only Init

Updates selected set when toggling "Only show imported sets".

  1. // ==UserScript==
  2. // @name [PS] Import Only Init
  3. // @namespace https://greasyfork.org/en/users/1357767-indigeau
  4. // @version 0.1
  5. // @description Updates selected set when toggling "Only show imported sets".
  6. // @match https://calc.pokemonshowdown.com/*
  7. // @author indigeau
  8. // @license GNU GPLv3
  9. // @icon https://www.google.com/s2/favicons?sz=64&domain=pokemonshowdown.com
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. const getImportSetOption = (root) => {
  14. const dropdown = $(root.querySelector('.poke-info > .select2-container'));
  15. dropdown.select2('open');
  16. const id = document.querySelector('.select2-result-selectable')?.innerText ?? '';
  17. dropdown.select2('close');
  18. return id;
  19. };
  20.  
  21. // Setup toggle listeners
  22. for (const target of document.querySelectorAll('#importedSets')) {
  23. const root = target.parentElement.parentElement;
  24. target.addEventListener('change', () => {
  25. const id = target.checked ? getImportSetOption(root) : window.getFirstValidSetOption().id;
  26. $(root.querySelector('input.set-selector')).val(id).change();
  27. root.querySelector('.select2-chosen').innerText = id;
  28. });
  29. }
  30.  
  31. /* global $ */