UNPKG

@bigcommerce/stencil-utils

Version:

Utility library used by BigCommerce Stencil Framework themes

43 lines (35 loc) 1.06 kB
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); } }