Shop by categories
All Beanie Bucket Hats Caps Cargo Pants Chef Jacket Chef Pants Chef's Accessories Chef's Caps Coverall Disposable Coverall Drink Containers Earmuffs Earplugs Elastic Sided Footwear Hard Hat Hard Hat Accessories Hi Vis Cargo Pants Hi Vis Coverall Hi Vis Jacket Hi Vis Jumper Hi Vis Pants Hi Vis Polar Fleece Hi Vis Polo Hi Vis Shirt Hi Vis Shorts Hi Vis Vest Hi Vis Wet Weather Trouser Jacket Jeans Jogger Jumper Kneepad Lace Up Lace Up/Zip Side Long Sleeve Shirt Mosquito Nets & Insect Screens Overalls Pants Polar Fleece Polo Respirator Respirator Cartridges Safety Glasses Safety Glove Accessories Safety Gloves Safety Goggles Short Sleeve Shirt Shorts Slip-On Socks Sunscreen T-Shirt Tool Bag Vest Visor Wet Weather Jacket Wet Weather Set Wet Weather Trouser Wide Brim Hats Zip Side {
console.log($event.detail.page);
fetch($event.detail.page)
.then(response => response.text())
.then(data => {
let html_div = document.createElement('div');
html_div.innerHTML = data;
let html_dom = html_div.querySelector('.products-grid').innerHTML;
document.querySelector('.products-grid').innerHTML = html_dom;
// update url without refreshing the page
history.replaceState(null, null, $event.detail.page);
})
.catch(error => console.error('Error:', error))
.finally(() => loading = false);
})"
@filter-updated="$nextTick(() => {
const queryString = new URLSearchParams(new FormData($refs.filter_form)).toString()
const queryStringF = window.location.search;
const urlParams = new URLSearchParams(queryString);
const urlParamsF = new URLSearchParams(queryStringF);
loading = true;
if (urlParamsF.has('sort_by') && !urlParamsF.has('q')) {
const sorted = urlParamsF.get('sort_by');
fetch('/collections/all?sort_by=' + sorted + '&' + queryString)
.then(response => response.text())
.then(data => {
let html_div = document.createElement('div');
html_div.innerHTML = data;
let html_dom = html_div.querySelector('.products-grid').innerHTML;
document.querySelector('.products-grid').innerHTML = html_dom;
// update url without refreshing the page
history.replaceState(null, null, '?sort_by=' + sorted + '&' + queryString);
})
.catch(error => console.error('Error:', error))
.finally(() => loading = false);
} else if ( window.location.href.indexOf('types') > -1 && urlParamsF.has('q')) {
const collectionType = urlParamsF.get('q')
fetch('/collections/types?q=' + collectionType + '&' + queryString)
.then(response => response.text())
.then(data => {
let html_div = document.createElement('div');
html_div.innerHTML = data;
let html_dom = html_div.querySelector('.products-grid').innerHTML;
document.querySelector('.products-grid').innerHTML = html_dom;
// update url without refreshing the page
history.replaceState(null, null, 'types?q=' + collectionType + '&' + queryString);
})
.catch(error => console.error('Error:', error))
.finally(() => loading = false);
} else {
fetch('/collections/all?' + queryString)
.then(response => response.text())
.then(data => {
let html_div = document.createElement('div');
html_div.innerHTML = data;
let html_dom = html_div.querySelector('.products-grid').innerHTML;
document.querySelector('.products-grid').innerHTML = html_dom;
// update url without refreshing the page
history.replaceState(null, null, '/collections/all/?' + queryString);
})
.catch(error => console.error('Error:', error))
.finally(() => loading = false);
}
})"
>