@bigcommerce/stencil-utils
Version:
Utility library used by BigCommerce Stencil Framework themes
43 lines (35 loc) • 1.06 kB
JavaScript
import Hooks from '../hooks';
import Base from './base';
export default class extends Base {
/**
* @Constructor
*/
constructor(version) {
// call parent
super(version);
// set up class variables
this.endpoint = '/search.php?search_query=';
}
/**
* Get search results
* @param {String} query
* @param {Object} params
* @param {Function} callback
*/
search(query, params, callback) {
if (this.abortController) {
this.abortController.abort();
}
const url = this.endpoint + encodeURIComponent(query);
let paramsArg = params;
let callbackArg = callback;
if (typeof paramsArg === 'function') {
callbackArg = paramsArg;
paramsArg = {};
}
Hooks.emit('search-quick-remote', query);
this.abortController = new AbortController();
paramsArg.abortSignal = this.abortController.signal;
this.makeRequest(url, 'GET', paramsArg, false, callbackArg);
}
}