deckhearth/.next/server/pages/cards.js

277 lines
407 KiB
JavaScript
Raw Normal View History

/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
(() => {
var exports = {};
exports.id = "pages/cards";
exports.ids = ["pages/cards"];
exports.modules = {
/***/ "(pages-dir-node)/./components/Layout.js":
/*!******************************!*\
!*** ./components/Layout.js ***!
\******************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Layout)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/router */ \"(pages-dir-node)/./node_modules/next/router.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/link */ \"(pages-dir-node)/./node_modules/next/link.js\");\n/* harmony import */ var _lib_theme_context__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../lib/theme-context */ \"(pages-dir-node)/./lib/theme-context.js\");\n\n\n\n\n\nfunction Layout({ children, user = {\n email: 'me@randallstillwell.com',\n role: 'user'\n} }) {\n const router = (0,next_router__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n const { theme, toggleTheme } = (0,_lib_theme_context__WEBPACK_IMPORTED_MODULE_4__.useTheme)();\n const [searchQuery, setSearchQuery] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n const navigation = [\n {\n name: 'Dashboard',\n href: '/dashboard',\n icon: 'grid',\n active: router.pathname === '/dashboard'\n },\n {\n name: 'My Collection',\n href: '/collections',\n icon: 'collection',\n active: router.pathname === '/collections',\n badge: '247'\n },\n {\n name: 'Cards',\n href: '/cards',\n icon: 'card',\n active: router.pathname === '/cards'\n },\n {\n name: 'Decks',\n href: '/decks',\n icon: 'deck',\n active: router.pathname === '/decks',\n badge: '12'\n },\n {\n name: 'Analytics',\n href: '/analytics',\n icon: 'analytics',\n active: router.pathname === '/analytics'\n },\n {\n name: 'Community',\n href: '/community',\n icon: 'community',\n active: router.pathname === '/community'\n },\n {\n name: 'Settings',\n href: '/settings',\n icon: 'settings',\n active: router.pathname === '/settings'\n },\n {\n name: 'Logout',\n href: '/logout',\n icon: 'logout',\n active: router.pathname === '/logout'\n }\n ];\n const getIcon = (iconName)=>{\n const icons = {\n grid: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"h-6 w-6\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zM14 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-2zM14 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z\"\n }, void 0, false, {\n fileName: \"/Users/rstillw/Documents/tcg-vault/components/Layout.js\",\n lineNumber: 26,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/rstillw/Documents/tcg-vault/components/Layout.js\",\n lineNumber: 25,\n columnNumber: 9\n }, this),\n coll
/***/ }),
/***/ "(pages-dir-node)/./lib/auth-context.js":
/*!*****************************!*\
!*** ./lib/auth-context.js ***!
\*****************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AuthProvider: () => (/* binding */ AuthProvider),\n/* harmony export */ useAuth: () => (/* binding */ useAuth)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n\n\nconst AuthContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)();\nfunction AuthProvider({ children }) {\n const [user, setUser] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"AuthProvider.useEffect\": ()=>{\n // Check for existing token on app load\n const token = localStorage.getItem('token');\n if (token) {\n // Verify token and set user\n verifyToken(token);\n } else {\n setLoading(false);\n }\n }\n }[\"AuthProvider.useEffect\"], []);\n const verifyToken = async (token)=>{\n try {\n const response = await fetch('/api/auth/verify', {\n headers: {\n 'Authorization': `Bearer ${token}`\n }\n });\n if (response.ok) {\n const userData = await response.json();\n setUser(userData.user);\n } else {\n localStorage.removeItem('token');\n }\n } catch (error) {\n console.error('Token verification failed:', error);\n localStorage.removeItem('token');\n } finally{\n setLoading(false);\n }\n };\n const login = async (email, password)=>{\n try {\n const response = await fetch('/api/auth/login', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n email,\n password\n })\n });\n const data = await response.json();\n if (response.ok) {\n localStorage.setItem('token', data.token);\n setUser(data.user);\n return {\n success: true\n };\n } else {\n return {\n success: false,\n error: data.error\n };\n }\n } catch (error) {\n return {\n success: false,\n error: 'Network error'\n };\n }\n };\n const register = async (email, password)=>{\n try {\n const response = await fetch('/api/auth/register', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n email,\n password\n })\n });\n const data = await response.json();\n if (response.ok) {\n localStorage.setItem('token', data.token);\n setUser(data.user);\n return {\n success: true\n };\n } else {\n return {\n success: false,\n error: data.error\n };\n }\n } catch (error) {\n return {\n success: false,\n error: 'Network error'\n };\n }\n };\n const logout = ()=>{\n localStorage.removeItem('token');\n setUser(null);\n };\n const value = {\n user,\n loading,\n login,\n re
/***/ }),
/***/ "(pages-dir-node)/./lib/theme-context.js":
/*!******************************!*\
!*** ./lib/theme-context.js ***!
\******************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ThemeProvider: () => (/* binding */ ThemeProvider),\n/* harmony export */ useTheme: () => (/* binding */ useTheme)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n\n\nconst ThemeContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)();\nfunction ThemeProvider({ children }) {\n const [theme, setTheme] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('light');\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"ThemeProvider.useEffect\": ()=>{\n // Check for saved theme preference or default to light\n const savedTheme = localStorage.getItem('theme') || 'light';\n setTheme(savedTheme);\n document.documentElement.setAttribute('data-theme', savedTheme);\n }\n }[\"ThemeProvider.useEffect\"], []);\n const toggleTheme = ()=>{\n const newTheme = theme === 'light' ? 'dark' : 'light';\n setTheme(newTheme);\n localStorage.setItem('theme', newTheme);\n document.documentElement.setAttribute('data-theme', newTheme);\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(ThemeContext.Provider, {\n value: {\n theme,\n toggleTheme\n },\n children: children\n }, void 0, false, {\n fileName: \"/Users/rstillw/Documents/tcg-vault/lib/theme-context.js\",\n lineNumber: 23,\n columnNumber: 5\n }, this);\n}\nfunction useTheme() {\n const context = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(ThemeContext);\n if (context === undefined) {\n throw new Error('useTheme must be used within a ThemeProvider');\n }\n return context;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL2xpYi90aGVtZS1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXVFO0FBRXZFLE1BQU1JLDZCQUFlSixvREFBYUE7QUFFM0IsU0FBU0ssY0FBYyxFQUFFQyxRQUFRLEVBQUU7SUFDeEMsTUFBTSxDQUFDQyxPQUFPQyxTQUFTLEdBQUdMLCtDQUFRQSxDQUFDO0lBRW5DRCxnREFBU0E7bUNBQUM7WUFDUix1REFBdUQ7WUFDdkQsTUFBTU8sYUFBYUMsYUFBYUMsT0FBTyxDQUFDLFlBQVk7WUFDcERILFNBQVNDO1lBQ1RHLFNBQVNDLGVBQWUsQ0FBQ0MsWUFBWSxDQUFDLGNBQWNMO1FBQ3REO2tDQUFHLEVBQUU7SUFFTCxNQUFNTSxjQUFjO1FBQ2xCLE1BQU1DLFdBQVdULFVBQVUsVUFBVSxTQUFTO1FBQzlDQyxTQUFTUTtRQUNUTixhQUFhTyxPQUFPLENBQUMsU0FBU0Q7UUFDOUJKLFNBQVNDLGVBQWUsQ0FBQ0MsWUFBWSxDQUFDLGNBQWNFO0lBQ3REO0lBRUEscUJBQ0UsOERBQUNaLGFBQWFjLFFBQVE7UUFBQ0MsT0FBTztZQUFFWjtZQUFPUTtRQUFZO2tCQUNoRFQ7Ozs7OztBQUdQO0FBRU8sU0FBU2M7SUFDZCxNQUFNQyxVQUFVcEIsaURBQVVBLENBQUNHO0lBQzNCLElBQUlpQixZQUFZQyxXQUFXO1FBQ3pCLE1BQU0sSUFBSUMsTUFBTTtJQUNsQjtJQUNBLE9BQU9GO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9yc3RpbGx3L0RvY3VtZW50cy90Y2ctdmF1bHQvbGliL3RoZW1lLWNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgVGhlbWVDb250ZXh0ID0gY3JlYXRlQ29udGV4dCgpO1xuXG5leHBvcnQgZnVuY3Rpb24gVGhlbWVQcm92aWRlcih7IGNoaWxkcmVuIH0pIHtcbiAgY29uc3QgW3RoZW1lLCBzZXRUaGVtZV0gPSB1c2VTdGF0ZSgnbGlnaHQnKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIENoZWNrIGZvciBzYXZlZCB0aGVtZSBwcmVmZXJlbmNlIG9yIGRlZmF1bHQgdG8gbGlnaHRcbiAgICBjb25zdCBzYXZlZFRoZW1lID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RoZW1lJykgfHwgJ2xpZ2h0JztcbiAgICBzZXRUaGVtZShzYXZlZFRoZW1lKTtcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLXRoZW1lJywgc2F2ZWRUaGVtZSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCB0b2dnbGVUaGVtZSA9ICgpID0+IHtcbiAgICBjb25zdCBuZXdUaGVtZSA9IHRoZW1lID09PSAnbGlnaHQnID8gJ2RhcmsnIDogJ2xpZ2h0JztcbiAgICBzZXRUaGVtZShuZXdUaGVtZSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3RoZW1lJywgbmV3VGhlbWUpO1xuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnLCBuZXdUaGVtZSk7XG4gIH07X
/***/ }),
/***/ "(pages-dir-node)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2Fcards&preferredRegion=&absolutePagePath=.%2Fpages%2Fcards.js&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2Fcards&preferredRegion=&absolutePagePath=.%2Fpages%2Fcards.js&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D! ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getServerSideProps: () => (/* binding */ getServerSideProps),\n/* harmony export */ getStaticPaths: () => (/* binding */ getStaticPaths),\n/* harmony export */ getStaticProps: () => (/* binding */ getStaticProps),\n/* harmony export */ handler: () => (/* binding */ handler),\n/* harmony export */ reportWebVitals: () => (/* binding */ reportWebVitals),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ unstable_getServerProps: () => (/* binding */ unstable_getServerProps),\n/* harmony export */ unstable_getServerSideProps: () => (/* binding */ unstable_getServerSideProps),\n/* harmony export */ unstable_getStaticParams: () => (/* binding */ unstable_getStaticParams),\n/* harmony export */ unstable_getStaticPaths: () => (/* binding */ unstable_getStaticPaths),\n/* harmony export */ unstable_getStaticProps: () => (/* binding */ unstable_getStaticProps)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/route-modules/pages/module.compiled */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\");\n/* harmony import */ var next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/route-kind */ \"(pages-dir-node)/./node_modules/next/dist/server/route-kind.js\");\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/server/lib/trace/constants */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/lib/trace/tracer */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/format-url */ \"next/dist/shared/lib/router/utils/format-url\");\n/* harmony import */ var next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_format_url__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/dist/server/request-meta */ \"(pages-dir-node)/./node_modules/next/dist/server/request-meta.js\");\n/* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! next/dist/server/app-render/interop-default */ \"(pages-dir-node)/./node_modules/next/dist/server/app-render/interop-default.js\");\n/* harmony import */ var next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! next/dist/server/instrumentation/utils */ \"
/***/ }),
/***/ "(pages-dir-node)/./pages/_app.js":
/*!***********************!*\
!*** ./pages/_app.js ***!
\***********************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ App)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var _styles_globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/globals.css */ \"(pages-dir-node)/./styles/globals.css\");\n/* harmony import */ var _lib_auth_context_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/auth-context.js */ \"(pages-dir-node)/./lib/auth-context.js\");\n/* harmony import */ var _lib_theme_context_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../lib/theme-context.js */ \"(pages-dir-node)/./lib/theme-context.js\");\n\n\n\n\nfunction App({ Component, pageProps }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_lib_theme_context_js__WEBPACK_IMPORTED_MODULE_3__.ThemeProvider, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_lib_auth_context_js__WEBPACK_IMPORTED_MODULE_2__.AuthProvider, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"/Users/rstillw/Documents/tcg-vault/pages/_app.js\",\n lineNumber: 9,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/rstillw/Documents/tcg-vault/pages/_app.js\",\n lineNumber: 8,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/rstillw/Documents/tcg-vault/pages/_app.js\",\n lineNumber: 7,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL3BhZ2VzL19hcHAuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQStCO0FBQ3VCO0FBQ0U7QUFFekMsU0FBU0UsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRTtJQUNsRCxxQkFDRSw4REFBQ0gsZ0VBQWFBO2tCQUNaLDRFQUFDRCw4REFBWUE7c0JBQ1gsNEVBQUNHO2dCQUFXLEdBQUdDLFNBQVM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9yc3RpbGx3L0RvY3VtZW50cy90Y2ctdmF1bHQvcGFnZXMvX2FwcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJy4uL3N0eWxlcy9nbG9iYWxzLmNzcyc7XG5pbXBvcnQgeyBBdXRoUHJvdmlkZXIgfSBmcm9tICcuLi9saWIvYXV0aC1jb250ZXh0LmpzJztcbmltcG9ydCB7IFRoZW1lUHJvdmlkZXIgfSBmcm9tICcuLi9saWIvdGhlbWUtY29udGV4dC5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEFwcCh7IENvbXBvbmVudCwgcGFnZVByb3BzIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8VGhlbWVQcm92aWRlcj5cbiAgICAgIDxBdXRoUHJvdmlkZXI+XG4gICAgICAgIDxDb21wb25lbnQgey4uLnBhZ2VQcm9wc30gLz5cbiAgICAgIDwvQXV0aFByb3ZpZGVyPlxuICAgIDwvVGhlbWVQcm92aWRlcj5cbiAgKTtcbn0gIl0sIm5hbWVzIjpbIkF1dGhQcm92aWRlciIsIlRoZW1lUHJvdmlkZXIiLCJBcHAiLCJDb21wb25lbnQiLCJwYWdlUHJvcHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./pages/_app.js\n");
/***/ }),
/***/ "(pages-dir-node)/./pages/cards.js":
/*!************************!*\
!*** ./pages/cards.js ***!
\************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Cards)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/router */ \"(pages-dir-node)/./node_modules/next/router.js\");\n/* harmony import */ var _components_Layout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/Layout */ \"(pages-dir-node)/./components/Layout.js\");\n\n\n\n\nfunction Cards() {\n const router = (0,next_router__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n const user = {\n email: 'me@randallstillwell.com',\n role: 'user'\n };\n const [cards, setCards] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [loadingMore, setLoadingMore] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [searchQuery, setSearchQuery] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n const [selectedTCG, setSelectedTCG] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('all');\n const [selectedRarity, setSelectedRarity] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('all');\n const [selectedSet, setSelectedSet] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('all');\n const [selectedValueRange, setSelectedValueRange] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('all');\n const [viewMode, setViewMode] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('grid'); // grid or list\n const [pagination, setPagination] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n page: 1,\n limit: 50,\n total: 0,\n pages: 0\n });\n const [filters, setFilters] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n games: [],\n rarities: [],\n sets: []\n });\n const [hasMore, setHasMore] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const loadingMoreRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false);\n const hasMoreRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(true);\n // Fetch cards from database\n const fetchCards = async (isLoadMore = false)=>{\n try {\n if (isLoadMore) {\n setLoadingMore(true);\n loadingMoreRef.current = true;\n } else {\n setLoading(true);\n }\n const params = new URLSearchParams({\n query: searchQuery,\n game: selectedTCG,\n rarity: selectedRarity,\n set: selectedSet,\n minPrice: selectedValueRange === 'under-50' ? '0' : selectedValueRange === '50-100' ? '50' : selectedValueRange === '100-500' ? '100' : selectedValueRange === '500-1000' ? '500' : selectedValueRange === 'over-1000' ? '1000' : '',\n maxPrice: selectedValueRange === '50-100' ? '100' : selectedValueRange === '100-500' ? '500' : selectedValueRange === '500-1000' ? '1000' : '',\n page: pagination.page.toString(),\n limit: pagination.limit.toString()\n });\n const response = await fetch(`/api/cards/search?${params}`);\n const data = await response.json();\n if (data.success) {\n if (isLoadMore) {\n setCards((prevCards)=>[\n ...prevCards,\n ...data.cards\n ]);\n } else {\n setCards(data.cards);\n }\n setPagination(data.pagination);\n setFilters(data.filters);\n const hasMoreCards = data.pagination.page < data.pa
/***/ }),
/***/ "(pages-dir-node)/./styles/globals.css":
/*!****************************!*\
!*** ./styles/globals.css ***!
\****************************/
/***/ (() => {
/***/ }),
/***/ "fs":
/*!*********************!*\
!*** external "fs" ***!
\*********************/
/***/ ((module) => {
"use strict";
module.exports = require("fs");
/***/ }),
/***/ "next/dist/compiled/next-server/pages.runtime.dev.js":
/*!**********************************************************************!*\
!*** external "next/dist/compiled/next-server/pages.runtime.dev.js" ***!
\**********************************************************************/
/***/ ((module) => {
"use strict";
module.exports = require("next/dist/compiled/next-server/pages.runtime.dev.js");
/***/ }),
/***/ "next/dist/shared/lib/no-fallback-error.external":
/*!******************************************************************!*\
!*** external "next/dist/shared/lib/no-fallback-error.external" ***!
\******************************************************************/
/***/ ((module) => {
"use strict";
module.exports = require("next/dist/shared/lib/no-fallback-error.external");
/***/ }),
/***/ "next/dist/shared/lib/page-path/normalize-data-path":
/*!*********************************************************************!*\
!*** external "next/dist/shared/lib/page-path/normalize-data-path" ***!
\*********************************************************************/
/***/ ((module) => {
"use strict";
module.exports = require("next/dist/shared/lib/page-path/normalize-data-path");
/***/ }),
/***/ "next/dist/shared/lib/router/utils/add-path-prefix":
/*!********************************************************************!*\
!*** external "next/dist/shared/lib/router/utils/add-path-prefix" ***!
\********************************************************************/
/***/ ((module) => {
"use strict";
module.exports = require("next/dist/shared/lib/router/utils/add-path-prefix");
/***/ }),
/***/ "next/dist/shared/lib/router/utils/format-url":
/*!***************************************************************!*\
!*** external "next/dist/shared/lib/router/utils/format-url" ***!
\***************************************************************/
/***/ ((module) => {
"use strict";
module.exports = require("next/dist/shared/lib/router/utils/format-url");
/***/ }),
/***/ "next/dist/shared/lib/router/utils/is-bot":
/*!***********************************************************!*\
!*** external "next/dist/shared/lib/router/utils/is-bot" ***!
\***********************************************************/
/***/ ((module) => {
"use strict";
module.exports = require("next/dist/shared/lib/router/utils/is-bot");
/***/ }),
/***/ "next/dist/shared/lib/router/utils/remove-trailing-slash":
/*!**************************************************************************!*\
!*** external "next/dist/shared/lib/router/utils/remove-trailing-slash" ***!
\**************************************************************************/
/***/ ((module) => {
"use strict";
module.exports = require("next/dist/shared/lib/router/utils/remove-trailing-slash");
/***/ }),
/***/ "next/dist/shared/lib/utils":
/*!*********************************************!*\
!*** external "next/dist/shared/lib/utils" ***!
\*********************************************/
/***/ ((module) => {
"use strict";
module.exports = require("next/dist/shared/lib/utils");
/***/ }),
/***/ "path":
/*!***********************!*\
!*** external "path" ***!
\***********************/
/***/ ((module) => {
"use strict";
module.exports = require("path");
/***/ }),
/***/ "react":
/*!************************!*\
!*** external "react" ***!
\************************/
/***/ ((module) => {
"use strict";
module.exports = require("react");
/***/ }),
/***/ "react-dom":
/*!****************************!*\
!*** external "react-dom" ***!
\****************************/
/***/ ((module) => {
"use strict";
module.exports = require("react-dom");
/***/ }),
/***/ "react/jsx-dev-runtime":
/*!****************************************!*\
!*** external "react/jsx-dev-runtime" ***!
\****************************************/
/***/ ((module) => {
"use strict";
module.exports = require("react/jsx-dev-runtime");
/***/ }),
/***/ "react/jsx-runtime":
/*!************************************!*\
!*** external "react/jsx-runtime" ***!
\************************************/
/***/ ((module) => {
"use strict";
module.exports = require("react/jsx-runtime");
/***/ }),
/***/ "stream":
/*!*************************!*\
!*** external "stream" ***!
\*************************/
/***/ ((module) => {
"use strict";
module.exports = require("stream");
/***/ }),
/***/ "zlib":
/*!***********************!*\
!*** external "zlib" ***!
\***********************/
/***/ ((module) => {
"use strict";
module.exports = require("zlib");
/***/ })
};
;
// load runtime
var __webpack_require__ = require("../webpack-runtime.js");
__webpack_require__.C(exports);
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc"], () => (__webpack_exec__("(pages-dir-node)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2Fcards&preferredRegion=&absolutePagePath=.%2Fpages%2Fcards.js&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!")));
module.exports = __webpack_exports__;
})();