BankliPlus/temparea/solarbank/frontend/node_modules/.cache/babel-loader/11a04fb8227a2788d739c54d2571f1285aba18892d73df15469f686f1d244c2e.json
2025-08-13 18:05:26 +02:00

1 line
7.9 KiB
JSON

{"ast":null,"code":"import React,{createContext,useState,useContext,useEffect}from'react';import api from'../services/api';import{jsx as _jsx}from\"react/jsx-runtime\";const AuthContext=/*#__PURE__*/createContext();export const useAuth=()=>{const context=useContext(AuthContext);if(!context){throw new Error('useAuth must be used within an AuthProvider');}return context;};export const AuthProvider=_ref=>{let{children}=_ref;const[user,setUser]=useState(null);const[loading,setLoading]=useState(true);const[isAuthenticated,setIsAuthenticated]=useState(false);// Check if user is logged in on app start\nuseEffect(()=>{const checkAuth=async()=>{const token=localStorage.getItem('token');if(token){try{// Set token in API headers\napi.defaults.headers.common['Authorization']=`Bearer ${token}`;// Verify token by fetching user info\nconst response=await api.get('/auth/me');setUser(response.data);setIsAuthenticated(true);}catch(error){// Token is invalid, remove it\nlocalStorage.removeItem('token');delete api.defaults.headers.common['Authorization'];setUser(null);setIsAuthenticated(false);}}else{setIsAuthenticated(false);}setLoading(false);};checkAuth();},[]);const login=async(username,password)=>{try{const response=await api.post('/auth/login/json',{username,password});const{access_token}=response.data;// Store token\nlocalStorage.setItem('token',access_token);api.defaults.headers.common['Authorization']=`Bearer ${access_token}`;// Get user info\nconst userResponse=await api.get('/auth/me');setUser(userResponse.data);setIsAuthenticated(true);return{success:true};}catch(error){var _error$response,_error$response$data;const message=((_error$response=error.response)===null||_error$response===void 0?void 0:(_error$response$data=_error$response.data)===null||_error$response$data===void 0?void 0:_error$response$data.detail)||'Login failed';return{success:false,message};}};const logout=()=>{localStorage.removeItem('token');delete api.defaults.headers.common['Authorization'];setUser(null);setIsAuthenticated(false);};const value={user,isAuthenticated,loading,login,logout};return/*#__PURE__*/_jsx(AuthContext.Provider,{value:value,children:children});};","map":{"version":3,"names":["React","createContext","useState","useContext","useEffect","api","jsx","_jsx","AuthContext","useAuth","context","Error","AuthProvider","_ref","children","user","setUser","loading","setLoading","isAuthenticated","setIsAuthenticated","checkAuth","token","localStorage","getItem","defaults","headers","common","response","get","data","error","removeItem","login","username","password","post","access_token","setItem","userResponse","success","_error$response","_error$response$data","message","detail","logout","value","Provider"],"sources":["/home/m3mo/Desktop/temparea/solarbank/frontend/src/contexts/AuthContext.js"],"sourcesContent":["import React, { createContext, useState, useContext, useEffect } from 'react';\nimport api from '../services/api';\n\nconst AuthContext = createContext();\n\nexport const useAuth = () => {\n const context = useContext(AuthContext);\n if (!context) {\n throw new Error('useAuth must be used within an AuthProvider');\n }\n return context;\n};\n\nexport const AuthProvider = ({ children }) => {\n const [user, setUser] = useState(null);\n const [loading, setLoading] = useState(true);\n const [isAuthenticated, setIsAuthenticated] = useState(false);\n\n // Check if user is logged in on app start\n useEffect(() => {\n const checkAuth = async () => {\n const token = localStorage.getItem('token');\n if (token) {\n try {\n // Set token in API headers\n api.defaults.headers.common['Authorization'] = `Bearer ${token}`;\n \n // Verify token by fetching user info\n const response = await api.get('/auth/me');\n setUser(response.data);\n setIsAuthenticated(true);\n } catch (error) {\n // Token is invalid, remove it\n localStorage.removeItem('token');\n delete api.defaults.headers.common['Authorization'];\n setUser(null);\n setIsAuthenticated(false);\n }\n } else {\n setIsAuthenticated(false);\n }\n setLoading(false);\n };\n\n checkAuth();\n }, []);\n\n const login = async (username, password) => {\n try {\n const response = await api.post('/auth/login/json', {\n username,\n password,\n });\n \n const { access_token } = response.data;\n \n // Store token\n localStorage.setItem('token', access_token);\n api.defaults.headers.common['Authorization'] = `Bearer ${access_token}`;\n \n // Get user info\n const userResponse = await api.get('/auth/me');\n setUser(userResponse.data);\n setIsAuthenticated(true);\n \n return { success: true };\n } catch (error) {\n const message = error.response?.data?.detail || 'Login failed';\n return { success: false, message };\n }\n };\n\n const logout = () => {\n localStorage.removeItem('token');\n delete api.defaults.headers.common['Authorization'];\n setUser(null);\n setIsAuthenticated(false);\n };\n\n const value = {\n user,\n isAuthenticated,\n loading,\n login,\n logout,\n };\n\n return (\n <AuthContext.Provider value={value}>\n {children}\n </AuthContext.Provider>\n );\n}; "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}