From 88012e93ef1b0a0273e681bbde8ed6be75e95aaa Mon Sep 17 00:00:00 2001 From: Santos Gallegos Date: Mon, 7 Mar 2022 14:26:27 -0500 Subject: [PATCH] Prevent triggering `hideSearchWords` when closing the modal Two things: - The scope of the event needs to be narrowed down (from document to just the modal). - We need to call stopPropagation so the event isn't triggered for the document object. Closes https://github.com/readthedocs/readthedocs-sphinx-search/pull/103 --- package-lock.json | 2 +- sphinx_search/static/js/rtd_sphinx_search.js | 18 +++++++++--------- .../static/js/rtd_sphinx_search.min.js | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 66a754e..7c7af12 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "readthedocs-sphinx-search", - "version": "0.1.0", + "version": "0.1.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/sphinx_search/static/js/rtd_sphinx_search.js b/sphinx_search/static/js/rtd_sphinx_search.js index 04ac446..75d27d6 100644 --- a/sphinx_search/static/js/rtd_sphinx_search.js +++ b/sphinx_search/static/js/rtd_sphinx_search.js @@ -42,7 +42,7 @@ const debounce = (func, wait) => { /** * Wrapper around underscorejs's template function. - * + * * This is to make it work with new and old versions. */ const render_template = (template, data) => { @@ -788,6 +788,14 @@ window.addEventListener("DOMContentLoaded", () => { form.submit(); } } + + // close the search modal if the user pressed + // Escape button + if (e.keyCode === 27) { + // Avoid triggering Sphinx's 'hideSearchWords' shortcut. + e.stopPropagation(); + removeSearchModal(); + } }); search_outer_wrapper.addEventListener("click", e => { @@ -805,14 +813,6 @@ window.addEventListener("DOMContentLoaded", () => { removeSearchModal(); }); - // close the search modal if the user pressed - // Escape button - document.addEventListener("keydown", e => { - if (e.keyCode === 27) { - removeSearchModal(); - } - }); - // open search modal if "forward slash" button is pressed document.addEventListener("keydown", e => { if (e.keyCode === 191 && !isModalVisible()) { diff --git a/sphinx_search/static/js/rtd_sphinx_search.min.js b/sphinx_search/static/js/rtd_sphinx_search.min.js index 5eb5f7a..a914863 100644 --- a/sphinx_search/static/js/rtd_sphinx_search.min.js +++ b/sphinx_search/static/js/rtd_sphinx_search.min.js @@ -1 +1 @@ -"use strict";var MAX_SUGGESTIONS=50,MAX_SECTION_RESULTS=3,MAX_SUBSTRING_LIMIT=100,ANIMATION_TIME=200,FETCH_RESULTS_DELAY=250,CLEAR_RESULTS_DELAY=300,debounce=function(r,n){function e(){var e=this,t=arguments;clearTimeout(a),a=setTimeout(function(){return r.apply(e,t)},n)}var a;return e.cancel=function(){clearTimeout(a),a=null},e},render_template=function(e,t){var r=$u.template(e,t);return r="function"==typeof r?$u.template(e)(t):r},convertObjToUrlParams=function(t){for(var e=Object.keys(t).map(function(e){if(_is_string(e))return e+"="+encodeURI(t[e])}),r=[],n=0;n
<%= section_subheading %> <% for (var i = 0; i < section_content.length; ++i) { %>

<%= section_content[i] %>

<% } %>

',{section_link:e,section_id:"hit__"+r,section_subheading:n,section_content:o})},get_domain_html=function(e,t,r){var n="".concat(t,"#").concat(e.id),a=e.role,o=e.name,t=e.content.substr(0,MAX_SUBSTRING_LIMIT)+" ...",e=e.highlights;return e.name.length&&(o=e.name[0]),e.content.length&&(t=e.content[0]),render_template('
<%= domain_subheading %>
<%= domain_role_name %>

<%= domain_content %>


',{domain_link:n,domain_id:"hit__"+r,domain_content:t,domain_subheading:o,domain_role_name:a="["+a+"]"})},generateSingleResult=function(e,t,r){var n=createDomNode("div"),a=e.path,o=e.title,s=e.highlights;s.title.length&&(o=s.title[0]),t!==e.project&&(o+=" "+render_template(' (from project <%= project %>) ',{project:e.project})),o+="
",n.innerHTML+=render_template('

<%= page_title %>

',{page_link:a,page_title:o});for(var i=0;i
<%= section_subheading %> <% for (var i = 0; i < section_content.length; ++i) { %>

<%= section_content[i] %>

<% } %>

',{section_link:e,section_id:"hit__"+r,section_subheading:n,section_content:o})},get_domain_html=function(e,t,r){var n="".concat(t,"#").concat(e.id),a=e.role,o=e.name,t=e.content.substr(0,MAX_SUBSTRING_LIMIT)+" ...",e=e.highlights;return e.name.length&&(o=e.name[0]),e.content.length&&(t=e.content[0]),render_template('
<%= domain_subheading %>
<%= domain_role_name %>

<%= domain_content %>


',{domain_link:n,domain_id:"hit__"+r,domain_content:t,domain_subheading:o,domain_role_name:a="["+a+"]"})},generateSingleResult=function(e,t,r){var n=createDomNode("div"),a=e.path,o=e.title,s=e.highlights;s.title.length&&(o=s.title[0]),t!==e.project&&(o+=" "+render_template(' (from project <%= project %>) ',{project:e.project})),o+="
",n.innerHTML+=render_template('

<%= page_title %>

',{page_link:a,page_title:o});for(var i=0;i