Преглед изворни кода

Esc leaves the search box (#9462)

* feat(shortcuts): Esc leaves the search box

Pressing Esc while focused in the search box now blurs it, so the user can immediately resume navigating articles with the keyboard instead of staying trapped in the input. Closes #5043.

* Add Hellraiser28 to CREDITS.md

* Drop IE11 key handling, make the header search a text input

* Update p/scripts/main.js

Co-authored-by: Inverle <inverle@proton.me>
Philip пре 1 дан
родитељ
комит
9e87fcfb3e
3 измењених фајлова са 13 додато и 1 уклоњено
  1. 1 0
      CREDITS.md
  2. 1 1
      app/layout/header.phtml
  3. 11 0
      p/scripts/main.js

+ 1 - 0
CREDITS.md

@@ -137,6 +137,7 @@ People are sorted by name so please keep this order.
 * [happymacarts](https://github.com/happymacarts): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:happymacarts)
 * [Harshad Hirapara](https://github.com/harshad389): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:harshad389)
 * [HawkForge](https://github.com/HawkForge): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:HawkForge)
+* [Hellraiser28](https://github.com/Hellraiser28): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Hellraiser28)
 * [hesch](https://github.com/hesch): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:hesch)
 * [hilariousperson](https://github.com/hilariousperson): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:hilariousperson)
 * [Hippolyte Thomas](https://github.com/hippothomas): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:hippothomas), [Web](https://hippolyte-thomas.fr/)

+ 1 - 1
app/layout/header.phtml

@@ -42,7 +42,7 @@
 			<input type="hidden" name="f" value="<?= Minz_Request::paramString('f') ?>" />
 			<?php } ?>
 			<div class="stick">
-				<input type="search" name="search" id="search"
+				<input type="text" name="search" id="search"
 					value="<?= htmlspecialchars(FreshRSS_Context::$search->toString(), ENT_COMPAT, 'UTF-8') ?>"
 					placeholder="<?= _t('gen.menu.search') ?>" />
 				<button class="btn" type="submit"><?= _i('search') ?></button>

+ 11 - 0
p/scripts/main.js

@@ -1402,6 +1402,17 @@ function init_shortcuts() {
 		if (k === s.toggle_media) { toggle_media(); ev.preventDefault(); }
 		if (k === s.toggle_aside) { toggle_aside_click(); ev.preventDefault(); }
 	});
+
+	// Unfocus the search input if user presses Esc
+	const searchBox = document.getElementById('search');
+	if (searchBox) {
+		searchBox.addEventListener('keydown', ev => {
+			if (ev.key === 'Escape') {
+				searchBox.blur();
+				ev.preventDefault();
+			}
+		});
+	}
 }
 
 function init_stream(stream) {