feat: prevent refresh on reload

This commit is contained in:
Rohit
2025-03-11 12:54:06 +05:30
parent dab31215e0
commit 1ff226f158

View File

@@ -1,12 +1,56 @@
import React from 'react';
import { Navigate, Outlet } from 'react-router-dom';
import React, { useEffect, useState } from 'react';
import { Navigate, Outlet, useLocation } from 'react-router-dom';
import { useContext } from 'react';
import { AuthContext } from '../context/auth';
import { useGlobalInfoStore } from '../context/globalInfo';
const UserRoute = () => {
const { state } = useContext(AuthContext);
const location = useLocation();
const [isCheckingAuth, setIsCheckingAuth] = useState(true);
const { setRecordingUrl } = useGlobalInfoStore();
useEffect(() => {
if (location.pathname === '/recording') {
const hasRecordingSession =
window.sessionStorage.getItem('browserId') ||
window.sessionStorage.getItem('recordingSessionId');
const recordingUrl = window.sessionStorage.getItem('recordingUrl');
if (recordingUrl) {
setRecordingUrl(recordingUrl);
}
if (hasRecordingSession) {
console.log('UserRoute: Valid recording session detected, bypassing auth check');
setIsCheckingAuth(false);
return;
}
}
const timer = setTimeout(() => {
setIsCheckingAuth(false);
}, 100);
return () => clearTimeout(timer);
}, [location.pathname]);
if (isCheckingAuth) {
return null;
}
if (location.pathname === '/recording') {
const hasRecordingSession =
window.sessionStorage.getItem('browserId') ||
window.sessionStorage.getItem('recordingSessionId');
if (hasRecordingSession) {
return <Outlet />;
}
}
return state.user ? <Outlet /> : <Navigate to="/login" />;
};
export default UserRoute;
export default UserRoute;