deckhearth/.next/server/pages/_app.js

1 line
No EOL
2.6 KiB
JavaScript

(()=>{var a={};a.id=636,a.ids=[636],a.modules={2015:a=>{"use strict";a.exports=require("react")},2386:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>i});var e=c(8732);c(2015);var f=c(8462),g=c(4670);c(8754);var h=a([f]);let j=new(f=(h.then?(await h)():h)[0]).QueryClient({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!1}}});function i({Component:a,pageProps:b}){return(0,e.jsx)(f.QueryClientProvider,{client:j,children:(0,e.jsx)(g.O,{children:(0,e.jsx)(a,{...b})})})}d()}catch(a){d(a)}})},4670:(a,b,c)=>{"use strict";c.d(b,{A:()=>g,O:()=>h});var d=c(8732),e=c(2015);let f=(0,e.createContext)(void 0),g=()=>{let a=(0,e.useContext)(f);if(void 0===a)throw Error("useAuth must be used within an AuthProvider");return a},h=({children:a})=>{let[b,c]=(0,e.useState)(null),[g,h]=(0,e.useState)(null),[i,j]=(0,e.useState)(!0);(0,e.useEffect)(()=>{let a=localStorage.getItem("tcg_vault_token"),b=localStorage.getItem("tcg_vault_user");if(a&&b)try{let d=JSON.parse(b);h(a),c(d)}catch(a){console.error("Error parsing saved user data:",a),localStorage.removeItem("tcg_vault_token"),localStorage.removeItem("tcg_vault_user")}j(!1)},[]);let k=async(a,b)=>{try{let d=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:a,password:b})}),e=await d.json();if(e.success)return c(e.user),h(e.token),localStorage.setItem("tcg_vault_token",e.token),localStorage.setItem("tcg_vault_user",JSON.stringify(e.user)),{success:!0};return{success:!1,error:e.error||"Login failed"}}catch(a){return console.error("Login error:",a),{success:!1,error:"Network error. Please try again."}}},l=async a=>{try{let b=await fetch("/api/auth/register",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),d=await b.json();if(d.success)return c(d.user),h(d.token),localStorage.setItem("tcg_vault_token",d.token),localStorage.setItem("tcg_vault_user",JSON.stringify(d.user)),{success:!0};return{success:!1,error:d.error||"Registration failed"}}catch(a){return console.error("Registration error:",a),{success:!1,error:"Network error. Please try again."}}},m=a=>b?.roles?.includes(a)||!1;return(0,d.jsx)(f.Provider,{value:{user:b,token:g,login:k,register:l,logout:()=>{c(null),h(null),localStorage.removeItem("tcg_vault_token"),localStorage.removeItem("tcg_vault_user")},isLoading:i,hasRole:m,hasPermission:a=>b?.permissions?.includes(a)||!1,isAdmin:()=>m("admin")},children:a})}},8462:a=>{"use strict";a.exports=import("@tanstack/react-query")},8732:a=>{"use strict";a.exports=require("react/jsx-runtime")},8754:()=>{}};var b=require("../webpack-runtime.js");b.C(a);var c=b(b.s=2386);module.exports=c})();