Persist Google Workspace connection state in localStorage across browser refreshes
This commit is contained in:
@@ -92,11 +92,17 @@ export const GoogleWorkspaceHub: React.FC<GoogleWorkspaceHubProps> = ({
|
||||
const [notificationMsg, setNotificationMsg] = useState<string | null>(null);
|
||||
|
||||
useEffect(() => {
|
||||
const token = getCachedAccessToken();
|
||||
if (token) {
|
||||
setAccessToken(token);
|
||||
const savedConnected = localStorage.getItem('ai_job_portal_google_connected');
|
||||
const savedToken = getCachedAccessToken() || localStorage.getItem('ai_job_portal_google_token');
|
||||
const savedUser = localStorage.getItem('ai_job_portal_google_user');
|
||||
|
||||
if (savedConnected === 'true') {
|
||||
setIsConnected(true);
|
||||
loadDriveFiles(token);
|
||||
if (savedToken) setAccessToken(savedToken);
|
||||
if (savedUser) {
|
||||
try { setConnectedUser(JSON.parse(savedUser)); } catch (e) {}
|
||||
}
|
||||
loadDriveFiles(savedToken || undefined);
|
||||
}
|
||||
}, []);
|
||||
|
||||
@@ -113,6 +119,9 @@ export const GoogleWorkspaceHub: React.FC<GoogleWorkspaceHubProps> = ({
|
||||
email: res.user.email || 'dkifer19@gmail.com',
|
||||
name: res.user.displayName || 'David Kifer'
|
||||
});
|
||||
localStorage.setItem('ai_job_portal_google_connected', 'true');
|
||||
localStorage.setItem('ai_job_portal_google_token', res.accessToken);
|
||||
localStorage.setItem('ai_job_portal_google_user', JSON.stringify({ email: res.user.email || 'dkifer19@gmail.com', name: res.user.displayName || 'David Kifer' }));
|
||||
showToast('✓ Google Workspace connected successfully!');
|
||||
loadDriveFiles(res.accessToken);
|
||||
return;
|
||||
@@ -122,11 +131,11 @@ export const GoogleWorkspaceHub: React.FC<GoogleWorkspaceHubProps> = ({
|
||||
}
|
||||
|
||||
// Auto-connect with local profile credentials immediately without modal prompt
|
||||
const userObj = { email: 'dkifer19@gmail.com', name: 'David Kifer' };
|
||||
setIsConnected(true);
|
||||
setConnectedUser({
|
||||
email: 'dkifer19@gmail.com',
|
||||
name: 'David Kifer'
|
||||
});
|
||||
setConnectedUser(userObj);
|
||||
localStorage.setItem('ai_job_portal_google_connected', 'true');
|
||||
localStorage.setItem('ai_job_portal_google_user', JSON.stringify(userObj));
|
||||
showToast('✓ Google Workspace connected for David Kifer (dkifer19@gmail.com)!');
|
||||
};
|
||||
|
||||
@@ -149,6 +158,9 @@ export const GoogleWorkspaceHub: React.FC<GoogleWorkspaceHubProps> = ({
|
||||
await googleSignOut();
|
||||
setIsConnected(false);
|
||||
setAccessToken(null);
|
||||
localStorage.removeItem('ai_job_portal_google_connected');
|
||||
localStorage.removeItem('ai_job_portal_google_token');
|
||||
localStorage.removeItem('ai_job_portal_google_user');
|
||||
showToast('Disconnected Google Workspace.');
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user