482 lines
26 KiB
JavaScript
482 lines
26 KiB
JavaScript
"use strict";
|
|
(self["webpackChunkdropship_store"] = self["webpackChunkdropship_store"] || []).push([["merch-page-stories"],{
|
|
|
|
/***/ "./app/merch/page.stories.tsx"
|
|
/*!************************************!*\
|
|
!*** ./app/merch/page.stories.tsx ***!
|
|
\************************************/
|
|
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
/* harmony export */ Default: () => (/* binding */ Default),
|
|
/* harmony export */ __namedExportsOrder: () => (/* binding */ __namedExportsOrder),
|
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
/* harmony export */ });
|
|
/* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./page */ "./app/merch/page.tsx");
|
|
|
|
var meta = {
|
|
title: "Pages/merch",
|
|
component: _page__WEBPACK_IMPORTED_MODULE_0__["default"]
|
|
};
|
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (meta);
|
|
var Default = {
|
|
render: function render() {
|
|
return /*#__PURE__*/React.createElement(_page__WEBPACK_IMPORTED_MODULE_0__["default"], null);
|
|
}
|
|
};
|
|
;
|
|
const __namedExportsOrder = ["Default"];
|
|
Default.parameters = {
|
|
...Default.parameters,
|
|
docs: {
|
|
...Default.parameters?.docs,
|
|
source: {
|
|
originalSource: "{\n render: () => <Page />\n}",
|
|
...Default.parameters?.docs?.source
|
|
}
|
|
}
|
|
};
|
|
|
|
/***/ },
|
|
|
|
/***/ "./app/merch/page.tsx"
|
|
/*!****************************!*\
|
|
!*** ./app/merch/page.tsx ***!
|
|
\****************************/
|
|
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
/* harmony export */ "default": () => (/* binding */ MerchPage)
|
|
/* harmony export */ });
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
/* harmony import */ var _components_DesktopHeader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/DesktopHeader */ "./components/DesktopHeader.tsx");
|
|
/* harmony import */ var _components_MobileHeader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/MobileHeader */ "./components/MobileHeader.tsx");
|
|
/* harmony import */ var _components_Footer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/Footer */ "./components/Footer.tsx");
|
|
/* harmony import */ var _components_FilterCard__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/FilterCard */ "./components/FilterCard.tsx");
|
|
"use client";
|
|
|
|
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
|
|
|
|
|
|
|
|
|
|
function MerchPage() {
|
|
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
|
|
_useState2 = _slicedToArray(_useState, 2),
|
|
products = _useState2[0],
|
|
setProducts = _useState2[1];
|
|
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
|
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
loading = _useState4[0],
|
|
setLoading = _useState4[1];
|
|
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""),
|
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
message = _useState6[0],
|
|
setMessage = _useState6[1];
|
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
|
|
function load() {
|
|
return _load.apply(this, arguments);
|
|
}
|
|
function _load() {
|
|
_load = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
var res, data, _t;
|
|
return _regenerator().w(function (_context) {
|
|
while (1) switch (_context.p = _context.n) {
|
|
case 0:
|
|
setLoading(true);
|
|
setMessage("");
|
|
_context.p = 1;
|
|
_context.n = 2;
|
|
return fetch("/api/printful/products");
|
|
case 2:
|
|
res = _context.v;
|
|
_context.n = 3;
|
|
return res.json();
|
|
case 3:
|
|
data = _context.v;
|
|
if (res.ok) {
|
|
_context.n = 4;
|
|
break;
|
|
}
|
|
throw new Error(data.error || "Failed to load merch.");
|
|
case 4:
|
|
setProducts(data.products || []);
|
|
_context.n = 6;
|
|
break;
|
|
case 5:
|
|
_context.p = 5;
|
|
_t = _context.v;
|
|
setMessage(_t.message || "Failed to load merch.");
|
|
case 6:
|
|
_context.p = 6;
|
|
setLoading(false);
|
|
return _context.f(6);
|
|
case 7:
|
|
return _context.a(2);
|
|
}
|
|
}, _callee, null, [[1, 5, 6, 7]]);
|
|
}));
|
|
return _load.apply(this, arguments);
|
|
}
|
|
load();
|
|
}, []);
|
|
return /*#__PURE__*/React.createElement("main", null, /*#__PURE__*/React.createElement(_components_DesktopHeader__WEBPACK_IMPORTED_MODULE_1__["default"], null), /*#__PURE__*/React.createElement(_components_MobileHeader__WEBPACK_IMPORTED_MODULE_2__["default"], null), /*#__PURE__*/React.createElement("section", {
|
|
className: "section"
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
className: "container layout-2col"
|
|
}, /*#__PURE__*/React.createElement("aside", null, /*#__PURE__*/React.createElement(_components_FilterCard__WEBPACK_IMPORTED_MODULE_4__["default"], {
|
|
title: "Filter Merch"
|
|
})), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h1", {
|
|
className: "page-title"
|
|
}, "Merch"), message ? /*#__PURE__*/React.createElement("div", {
|
|
className: "connect-message"
|
|
}, message) : null, /*#__PURE__*/React.createElement("div", {
|
|
className: "products"
|
|
}, products.map(function (product) {
|
|
return /*#__PURE__*/React.createElement("div", {
|
|
key: product.id,
|
|
className: "prod"
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
className: "prod__link"
|
|
}, product.thumbnailUrl ? /*#__PURE__*/React.createElement("img", {
|
|
src: product.thumbnailUrl,
|
|
alt: product.name,
|
|
className: "prod__img"
|
|
}) : /*#__PURE__*/React.createElement("div", {
|
|
className: "prod__img prod__img--empty"
|
|
}), /*#__PURE__*/React.createElement("div", {
|
|
className: "prod__body"
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
className: "prod__title"
|
|
}, product.name), /*#__PURE__*/React.createElement("div", {
|
|
className: "prod__price"
|
|
}, product.unitAmount && product.currency ? "".concat((product.unitAmount / 100).toFixed(2), " ").concat(product.currency.toUpperCase()) : "Price unavailable"))));
|
|
}), !products.length && !loading ? /*#__PURE__*/React.createElement("div", {
|
|
className: "storefront-muted"
|
|
}, "No merch yet.") : null)))), /*#__PURE__*/React.createElement(_components_Footer__WEBPACK_IMPORTED_MODULE_3__["default"], null));
|
|
}
|
|
;
|
|
MerchPage.__docgenInfo = {
|
|
"description": "",
|
|
"methods": [],
|
|
"displayName": "MerchPage"
|
|
};
|
|
|
|
/***/ },
|
|
|
|
/***/ "./components/DesktopHeader.tsx"
|
|
/*!**************************************!*\
|
|
!*** ./components/DesktopHeader.tsx ***!
|
|
\**************************************/
|
|
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
/* harmony export */ "default": () => (/* binding */ Header)
|
|
/* harmony export */ });
|
|
/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/link */ "./.storybook/mocks/next-link.js");
|
|
/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_0__);
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
|
|
/* harmony import */ var _categories__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./categories */ "./components/categories.ts");
|
|
/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next-auth/react */ "./node_modules/next-auth/react/index.js");
|
|
/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_auth_react__WEBPACK_IMPORTED_MODULE_3__);
|
|
"use client";
|
|
|
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
|
|
|
|
|
|
|
|
var MERCH_ICONS = ["/icons/merchicon1.png", "/icons/merchicon2.png", "/icons/merchicon3.png", "/icons/merchicon4.png"];
|
|
function Header(_ref) {
|
|
var _ref$forceScrolled = _ref.forceScrolled,
|
|
forceScrolled = _ref$forceScrolled === void 0 ? false : _ref$forceScrolled;
|
|
var _CATEGORIES = _slicedToArray(_categories__WEBPACK_IMPORTED_MODULE_2__.CATEGORIES, 8),
|
|
interior = _CATEGORIES[0],
|
|
exterior = _CATEGORIES[1],
|
|
lighting = _CATEGORIES[2],
|
|
audio = _CATEGORIES[3],
|
|
tools = _CATEGORIES[4],
|
|
suspension = _CATEGORIES[5],
|
|
performance = _CATEGORIES[6],
|
|
drivetrain = _CATEGORIES[7];
|
|
var left = [interior, tools, exterior, drivetrain];
|
|
var right = [lighting, suspension, audio, performance];
|
|
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0),
|
|
_useState2 = _slicedToArray(_useState, 2),
|
|
merchIndex = _useState2[0],
|
|
setMerchIndex = _useState2[1];
|
|
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(forceScrolled),
|
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
isScrolled = _useState4[0],
|
|
setIsScrolled = _useState4[1];
|
|
var _useSession = (0,next_auth_react__WEBPACK_IMPORTED_MODULE_3__.useSession)(),
|
|
session = _useSession.data,
|
|
status = _useSession.status;
|
|
var authLabel = status === "authenticated" ? session.user.name || session.user.email || "Account" : "Sign In / Sign Up";
|
|
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
|
|
var t = setInterval(function () {
|
|
return setMerchIndex(function (i) {
|
|
return (i + 1) % MERCH_ICONS.length;
|
|
});
|
|
}, 3000);
|
|
return function () {
|
|
return clearInterval(t);
|
|
};
|
|
}, []);
|
|
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
|
|
if (forceScrolled) {
|
|
setIsScrolled(true);
|
|
return;
|
|
}
|
|
var SHRINK_AT = 140;
|
|
var EXPAND_AT = 80;
|
|
var onScroll = function onScroll() {
|
|
if (window.innerWidth < 981) {
|
|
setIsScrolled(false);
|
|
return;
|
|
}
|
|
var y = window.scrollY;
|
|
setIsScrolled(function (prev) {
|
|
return prev ? y > EXPAND_AT : y > SHRINK_AT;
|
|
});
|
|
};
|
|
onScroll();
|
|
window.addEventListener("scroll", onScroll, {
|
|
passive: true
|
|
});
|
|
return function () {
|
|
return window.removeEventListener("scroll", onScroll);
|
|
};
|
|
}, [forceScrolled]);
|
|
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
|
|
if (typeof window !== "undefined" && window.innerWidth >= 981) {
|
|
document.body.classList.toggle("so-header-scrolled", isScrolled);
|
|
return function () {
|
|
return document.body.classList.remove("so-header-scrolled");
|
|
};
|
|
}
|
|
return undefined;
|
|
}, [isScrolled]);
|
|
return /*#__PURE__*/React.createElement("header", {
|
|
className: "so-header".concat(isScrolled ? " so-header--scrolled" : "")
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
className: "container"
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
className: "so-header__top"
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
className: "so-header__left"
|
|
}, /*#__PURE__*/React.createElement((next_link__WEBPACK_IMPORTED_MODULE_0___default()), {
|
|
href: "/",
|
|
className: "so-home",
|
|
"aria-label": "Home"
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
className: "so-home__icon"
|
|
})), /*#__PURE__*/React.createElement((next_link__WEBPACK_IMPORTED_MODULE_0___default()), {
|
|
href: "/merch",
|
|
className: "so-merch",
|
|
"aria-label": "Merch"
|
|
}, MERCH_ICONS.map(function (src, i) {
|
|
return /*#__PURE__*/React.createElement("img", {
|
|
key: src,
|
|
src: src,
|
|
className: "so-merch__icon" + (i === merchIndex ? " so-merch__icon--active" : ""),
|
|
alt: ""
|
|
});
|
|
}))), /*#__PURE__*/React.createElement((next_link__WEBPACK_IMPORTED_MODULE_0___default()), {
|
|
href: "/",
|
|
className: "so-header__logo-wrap"
|
|
}, /*#__PURE__*/React.createElement("img", {
|
|
src: "/icons/logo.png",
|
|
className: "so-header__logo",
|
|
alt: "Shifted Offroad"
|
|
})), /*#__PURE__*/React.createElement("div", {
|
|
className: "so-header__right"
|
|
}, /*#__PURE__*/React.createElement((next_link__WEBPACK_IMPORTED_MODULE_0___default()), {
|
|
href: "/rewards",
|
|
className: "so-rewards"
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
className: "so-rewards__icon"
|
|
})), /*#__PURE__*/React.createElement((next_link__WEBPACK_IMPORTED_MODULE_0___default()), {
|
|
href: "/cart",
|
|
className: "so-cart"
|
|
}, /*#__PURE__*/React.createElement("span", {
|
|
className: "so-cart__icon"
|
|
})))), /*#__PURE__*/React.createElement("div", {
|
|
className: "so-header__categories"
|
|
}, /*#__PURE__*/React.createElement("nav", {
|
|
className: "so-header__nav so-header__nav--left"
|
|
}, left.map(function (c) {
|
|
return /*#__PURE__*/React.createElement((next_link__WEBPACK_IMPORTED_MODULE_0___default()), {
|
|
key: c,
|
|
href: "/category/".concat((0,_categories__WEBPACK_IMPORTED_MODULE_2__.slugifyCategory)(c)),
|
|
className: "so-navitem"
|
|
}, c);
|
|
})), /*#__PURE__*/React.createElement("nav", {
|
|
className: "so-header__nav so-header__nav--right"
|
|
}, right.map(function (c) {
|
|
return /*#__PURE__*/React.createElement((next_link__WEBPACK_IMPORTED_MODULE_0___default()), {
|
|
key: c,
|
|
href: "/category/".concat((0,_categories__WEBPACK_IMPORTED_MODULE_2__.slugifyCategory)(c)),
|
|
className: "so-navitem"
|
|
}, c);
|
|
})))));
|
|
}
|
|
;
|
|
Header.__docgenInfo = {
|
|
"description": "",
|
|
"methods": [],
|
|
"displayName": "Header",
|
|
"props": {
|
|
"forceScrolled": {
|
|
"required": false,
|
|
"tsType": {
|
|
"name": "boolean"
|
|
},
|
|
"description": "",
|
|
"defaultValue": {
|
|
"value": "false",
|
|
"computed": false
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
/***/ },
|
|
|
|
/***/ "./components/Footer.tsx"
|
|
/*!*******************************!*\
|
|
!*** ./components/Footer.tsx ***!
|
|
\*******************************/
|
|
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
/* harmony export */ "default": () => (/* binding */ Footer)
|
|
/* harmony export */ });
|
|
/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/link */ "./.storybook/mocks/next-link.js");
|
|
/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_0__);
|
|
/* harmony import */ var _categories__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./categories */ "./components/categories.ts");
|
|
|
|
|
|
function Footer() {
|
|
return /*#__PURE__*/React.createElement("footer", {
|
|
className: "footer"
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
className: "container footer__inner"
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
className: "footer__brand"
|
|
}, /*#__PURE__*/React.createElement("img", {
|
|
src: "/icons/logo.png",
|
|
alt: "Shifted Offroad",
|
|
style: {
|
|
height: 54,
|
|
width: "auto",
|
|
display: "block",
|
|
marginBottom: 10
|
|
},
|
|
decoding: "async",
|
|
loading: "lazy"
|
|
}), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
opacity: 0.9,
|
|
fontSize: 13,
|
|
lineHeight: 1.65
|
|
}
|
|
}, "Shifted Offroad (Kelowna, BC) is an offroad parts and accessories company built around real fitment, honest advice, and clean installs. We focus on parts that work as advertised, pair well with common builds, and hold up to the conditions that actually get trucks and SUVs used the way they should be."), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
opacity: 0.9,
|
|
fontSize: 13,
|
|
lineHeight: 1.65,
|
|
marginTop: 10
|
|
}
|
|
}, "Our catalog blends trail-ready essentials with smart upgrades that improve capability without compromising daily drivability. Whether you are dialing in stance, lighting, recovery, or cargo utility, we help you choose components that fit your vehicle and your goals."), /*#__PURE__*/React.createElement("div", {
|
|
style: {
|
|
opacity: 0.9,
|
|
fontSize: 13,
|
|
lineHeight: 1.65,
|
|
marginTop: 10
|
|
}
|
|
}, "We are easy to reach, fast to respond, and focused on getting it right the first time. The goal is a simple, confident purchase and a setup you are proud to run.")), /*#__PURE__*/React.createElement("div", {
|
|
className: "footer__col footer__col--categories"
|
|
}, /*#__PURE__*/React.createElement("h4", null, "Categories"), _categories__WEBPACK_IMPORTED_MODULE_1__.CATEGORIES.map(function (c) {
|
|
return /*#__PURE__*/React.createElement((next_link__WEBPACK_IMPORTED_MODULE_0___default()), {
|
|
key: c,
|
|
href: "/category/".concat((0,_categories__WEBPACK_IMPORTED_MODULE_1__.slugifyCategory)(c))
|
|
}, c);
|
|
})), /*#__PURE__*/React.createElement("div", {
|
|
className: "footer__col footer__col--support"
|
|
}, /*#__PURE__*/React.createElement("h4", null, "Support"), /*#__PURE__*/React.createElement((next_link__WEBPACK_IMPORTED_MODULE_0___default()), {
|
|
href: "/contact"
|
|
}, "Contact"), /*#__PURE__*/React.createElement((next_link__WEBPACK_IMPORTED_MODULE_0___default()), {
|
|
href: "/legal/faq"
|
|
}, "FAQ"), /*#__PURE__*/React.createElement((next_link__WEBPACK_IMPORTED_MODULE_0___default()), {
|
|
href: "/legal/warranty"
|
|
}, "Warranty")), /*#__PURE__*/React.createElement("div", {
|
|
className: "footer__col footer__col--legal"
|
|
}, /*#__PURE__*/React.createElement("h4", null, "Legal"), /*#__PURE__*/React.createElement((next_link__WEBPACK_IMPORTED_MODULE_0___default()), {
|
|
href: "/legal/privacy-policy"
|
|
}, "Privacy Policy"), /*#__PURE__*/React.createElement((next_link__WEBPACK_IMPORTED_MODULE_0___default()), {
|
|
href: "/legal/terms-of-service"
|
|
}, "Terms of Service"), /*#__PURE__*/React.createElement((next_link__WEBPACK_IMPORTED_MODULE_0___default()), {
|
|
href: "/legal/refund-policy"
|
|
}, "Refund Policy"), /*#__PURE__*/React.createElement((next_link__WEBPACK_IMPORTED_MODULE_0___default()), {
|
|
href: "/legal/cookies"
|
|
}, "Cookies"))), /*#__PURE__*/React.createElement("div", {
|
|
className: "footer__payments"
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
className: "container footer__payments-inner"
|
|
}, /*#__PURE__*/React.createElement("div", null, "Secure checkout powered by trusted processors."), /*#__PURE__*/React.createElement("div", {
|
|
className: "footer__payment-logos"
|
|
}, /*#__PURE__*/React.createElement("img", {
|
|
src: "/assets/payments/visa.svg",
|
|
alt: "Visa",
|
|
loading: "lazy",
|
|
decoding: "async"
|
|
}), /*#__PURE__*/React.createElement("img", {
|
|
src: "/assets/payments/visa-alt.svg",
|
|
alt: "Visa",
|
|
loading: "lazy",
|
|
decoding: "async"
|
|
}), /*#__PURE__*/React.createElement("img", {
|
|
src: "/assets/payments/stripe.svg",
|
|
alt: "Stripe",
|
|
loading: "lazy",
|
|
decoding: "async"
|
|
}), /*#__PURE__*/React.createElement("img", {
|
|
src: "/assets/payments/paypal.svg",
|
|
alt: "PayPal",
|
|
loading: "lazy",
|
|
decoding: "async"
|
|
})))));
|
|
}
|
|
;
|
|
Footer.__docgenInfo = {
|
|
"description": "",
|
|
"methods": [],
|
|
"displayName": "Footer"
|
|
};
|
|
|
|
/***/ }
|
|
|
|
}]);
|
|
//# sourceMappingURL=merch-page-stories.iframe.bundle.js.map
|