Usage
This function runs automatically, so it is not called manually. Is this incorrect?
Additional Notes
On a single search result, the user is redirected automatically to that result and then presented a header drawer element with an explanation and a search field.
Source File
Located in /assets/js/modules/search.js on line 439.
No Hooks
This function does not have any filters or actions available. Request one?nebula.singleResultDrawer = async function(){
await nebula.yield();
let searchTerm = nebula.get('rs');
if ( searchTerm ){
searchTerm = searchTerm.replaceAll(/\%20|\+/g, ' ').replaceAll(/\%22|"|'/g, '');
jQuery('#searchform input[name="s"]').val(searchTerm);
nebula.dom.document.on('click', '#nebula-drawer .close', function(){
window.history.replaceState({}, document.title, nebula.removeQueryParameter('rs', window.location.href));
jQuery('#nebula-drawer').slideUp();
return false;
});
}
};
Override
To override or disable this JavaScript function, simply redeclare it with the exact same function name. Remember: Some functionality is conditionally loaded via dynamic imports, so if your function is not overriding properly, try listening for a DOM event (described below).
For non-module import functions:
nebula.singleResultDrawer = function(){
//Write your own code here, leave it blank, or return false.
}
For dynamically imported module function overrides:
jQuery(window).on('load', function(){
nebula.singleResultDrawer = function(){
//Write your own code here, leave it blank, or return false.
}
});
Custom Nebula DOM events do also exist, so you could also try the following if the Window Load listener does not work:
jQuery(document).on('nebula_module_loaded', function(module){
//Note that the module variable is also available to know which module specifically was imported
if ( typeof nebula.singleResultDrawer === 'function' ){
nebula.singleResultDrawer = function(){
//Write your own code here, leave it blank, or return false.
}
}
});