// src/hooks/useAxios.ts import { useNavigate } from "react-router-dom"; import axios from "axios"; import store from "../redux/store"; import { setToken } from "../redux/slices/token"; const useAxios = () => { const navigate = useNavigate(); const instance = axios.create({ baseURL: "https://api.persain-game.com/api/v1", maxBodyLength: Infinity, }); instance.interceptors.request.use( (config) => { const state = store.getState(); const token = state.token.token; if (token) { config.headers.Authorization = `Bearer ${token}`; } return config; }, (error) => { return Promise.reject(error); } ); instance.interceptors.response.use( (response) => { return response; }, (error) => { if (error.response && error.response.status === 401) { store.dispatch(setToken('')); navigate('/login'); } return Promise.reject(error); } ); return instance; }; export default useAxios;