/**
* InstantSearchResultRedirect module
* @module InstantSearchResultRedirect
*/
import Globals from "../../../helpers/globals";
import Utils from "../../../helpers/utils";
/**
* Get search redirect url
*/
const getSearchRedirectUrl = () => {
if (typeof Globals.currentTerm !== 'string'){
Globals.currentTerm = Globals.currentTerm.toString();
}
Globals.currentTerm = Globals.currentTerm.trim();
var redirectUrl = '';
if (Globals.suggestionCache.hasOwnProperty(Globals.currentTerm)) {
var cachedResult = Globals.suggestionCache[Globals.currentTerm];
cachedResult.forEach((result) => {
if (result.key == 'redirect' && result.values) {
// Check is there is a redirect
redirectUrl = result.values;
redirectUrl = redirectUrl.replace('https://' + Globals.shopDomain, '');
redirectUrl = redirectUrl.replace('http://' + Globals.shopDomain, '');
}
});
}
return redirectUrl;
}
/**
* Check the search redirect after trigger submit
* @param {String} $element The jQuery object of search inout element
*/
const checkForSearchRedirect = ($element) => {
if ($element.data('search-submit')) {
$element.removeData('search-submit');
var redirectUrl = getSearchRedirectUrl();
if (redirectUrl) {
Utils.setWindowLocation(redirectUrl);
} else {
$element.closest('form').trigger('submit', [true]);
}
}
}
const InstantSearchResultRedirect = {
getSearchRedirectUrl: getSearchRedirectUrl,
checkForSearchRedirect: checkForSearchRedirect
}
export default InstantSearchResultRedirect;