Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt
Pilot Tactical Belt

Pilot Tactical Belt

Price
$39.98
$19.99
Save  50%
Color
Please select a color
Size
Please select a size
Quantity
Worldwide shipping
Free returns
24/7 customer support
Secure payments

9643fc16ff6cff70844f78feb84d2a9c63141111423711005853326TW201ea32b6b4225d0dae47dddd085a156c.gif

4b01426189c60b09e3f8aa96667911d563141111423711005853326TW2d5cf7f5b1815b44336cdfa18ca38603f.gif

49bd2b322c8326633e846084dbe8a65563141111423711005853326TW263754b3966bc1b355ca1c6150fa6d33f.gif

8cd70d0ed44d22c0332721e669b12f5063141111423711005853326TW2f1f02436bc2cda8e7b6c4b4ae9a9fdb5.gif

8ad6e22151b789fa4019571f7f93fe7463141111423711005853326TW25a2717af12f0b093b78ec6cb2dabf054.gif

1f65d7cd9ede2a07fe47b768145a05b663141111423711005853326TW2ade69051029975ec8961a93c8a056024.gif

b926c97c61226b202f49567094fd32fa63141111423711005853326TW2868bf8075dd677f1174fdad667d6961d.gif

b0d998e08d885c2bb0bb9db546c4844d63141111423711005853326TW25b2f45a157dad1353d9fc784a5fed9dd.gif

5951509154a793ed80049b35df60cd2b63141111423711005853326TW25aec6f4917e98ca4b869d2e5bb3c4468.gif

5e5031dadb9c0020837f75dfc2f885cb63141111423711005853326TW2fcb5691e2e069f1c12f629e4ef120a4e.gif

bbc9028db0708fd3138234aef7c12a1563141111423711005853326TW26a8ecbd3f3259752a7b8f0727031c7c7.gif

a3796099381558a7ebc90e863f554d4563141111423711005853326TW2de5c2739f5b32831fc30341bb4337c68.gif

7578e4d261d64d15353ecc2e3ba060f363141111423711005853326TW2663c90bb29a8012a5dea2c18644a1d59.gif

Customer Reviews

Here are what our customers say.

Write a Review
Customer Reviews
Wow you reached the bottom
Newest
Most liked
Highest ratings
Lowest ratings
×
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.