This commit is contained in:
BhagwanSingh 2025-12-05 13:26:54 +05:30
commit adfd911f7b
4 changed files with 67 additions and 13 deletions

View File

@ -38,17 +38,17 @@ api.interceptors.request.use(
);
// --- Response Interceptor ---
api.interceptors.response.use(
(response: AxiosResponse) => response.data,
async (error) => {
console.error('[Axios Error]', error.status);
if (error.status === 401 || 403) {
console.warn('Token expired — trigger refresh logic if needed');
// sendTokenExpired();
}
return Promise.reject(error);
}
);
// api.interceptors.response.use(
// (response: AxiosResponse) => response.data,
// async (error) => {
// console.error('[Axios Error]', error.status);
// if (error.status === 401 || 403) {
// console.warn('Token expired — trigger refresh logic if needed');
// // sendTokenExpired();
// }
// return Promise.reject(error);
// }
// );
api.interceptors.response.use(
(response: AxiosResponse) => response.data,

View File

@ -68,7 +68,7 @@ export const handleLogin = async (credentials: { email: string, password: string
try {
console.log("➡️ Calling API...");
const response = await axios.post(
'https://daniela-nonprofessed-boastfully.ngrok-free.app/api/v1/va/login',
'https://quality-friendly-goldfish.ngrok-free.app/api/v1/va/login',
{ userDetails: { ...credentials } },
{ headers: { "ngrok-skip-browser-warning": 69420 }, httpsAgent }
);

View File

@ -588,7 +588,7 @@ const DashboardLayout = () => {
if (!selectedProject?.projectId) return
console.log(selectedProject?.projectId, "SelectedProject ID")
socketRef.current = io("https://daniela-nonprofessed-boastfully.ngrok-free.app", {
socketRef.current = io("https://quality-friendly-goldfish.ngrok-free.app", {
transports: ["websocket"],
secure: true,
rejectUnauthorized: false,

View File

@ -0,0 +1,54 @@
import React, { useEffect, useState } from "react";
interface Props {
children: React.ReactNode;
}
const VpnGuard: React.FC<Props> = ({ children }) => {
const [checking, setChecking] = useState(true);
const [vpnConnected, setVpnConnected] = useState(true);
// const checkVPN = async () => {
// try {
// const res = await window.electron.checkVpnConnection();
// setVpnConnected(res?.success);
// } catch {
// setVpnConnected(false);
// } finally {
// setChecking(false);
// }
// };
useEffect(() => {
// checkVPN();
}, []);
if (checking) {
return (
<div className="min-h-screen flex justify-center items-center">
<span className="loading loading-spinner loading-lg"></span>
<span className="ml-3">Checking VPN...</span>
</div>
);
}
if (!vpnConnected) {
return (
<div className="min-h-screen flex justify-center items-center text-center">
<div className="card shadow-xl bg-base-100 p-6">
<h2 className="text-xl font-bold text-red-600">VPN Required</h2>
<p className="mt-2">Please connect to your company VPN to continue.</p>
<button className="btn btn-primary mt-4"
onClick={() => window.location.reload()}>
Retry
</button>
</div>
</div>
);
}
return <>{children}</>;
};
export default VpnGuard;