 
            Jackson Grills®
At Jackson Grills we saw an opportunity to build a grill that lasted longer, got hotter quicker, cooked more evenly, and looked better. Put it all together and you get a grill that will exceed your expectations for years to come.
 {
      const activeParams = [...activeFilters];
      if (activeSort.value) {
        activeParams.push({
          key: 'sort_by',
          value: activeSort.value,
        });
      }
      if (activePage > 1) {
        activeParams.push({
          key: 'page',
          value: activePage,
        });
      }
      // For open
      activeParams.push({
        key: 'open_filter_groups',
        value: openFilterGroups.join(','),
      });
      const filteredSortedUrl = `${window.location.pathname}${activeParams.length > 0 ? `?${activeParams.map(v => `${v.key}=${v.value}`).join('&')}` : ''}`;
      const productGridDiv = '.product-grid-items';
      const productGrid = $el.querySelector(productGridDiv);
      const productFiltersDiv = '.product-grid-filters';
      const productFilters = $el.querySelector(productFiltersDiv);
      $store.ajaxWorking = true;
      fetch(filteredSortedUrl)
        .then((response) => response.text())
        .then((responseText) => {
          const html = new DOMParser().parseFromString(responseText, 'text/html');
          // Update items
          const productGridUpdated = html.querySelector(productGridDiv);
          productGrid.innerHTML = productGridUpdated.innerHTML;
          // Grab filters
          const productFiltersUpdated = html.querySelector(productFiltersDiv);
          productFilters.replaceWith(productFiltersUpdated);
          $store.ajaxWorking = false;
          history.pushState({}, '', filteredSortedUrl);
          // Scroll to top.
          const scrollTop =
          document.querySelector('.product-grid-items').getBoundingClientRect().top +
          window.scrollY -
          document.querySelector('.site-header').getBoundingClientRect().height - 40;
          window.scrollTo({ top: scrollTop, behavior: 'smooth' });
        })
        .catch((e) => {
          console.error(e);
          $store.ajaxWorking = false;
        });
    }"
    @paginate="
      activePage = $event.detail;
      $dispatch('update');
    "
    @sort="
      activeSort = $event.detail;
      $dispatch('update');
    "
    @filter="
      $dispatch('update');
    ">
    
  
 
   
   
          
        
     
          
        
     
          
        
     
          
        
     
          
        
     
         
         
         
         
         
         
         
         
         
         
        