Fix form keyboard issues and sticky footers in agent screens

This commit is contained in:
Abin Toppo
2026-05-26 16:34:05 +05:30
commit 9ac5e95d52
410 changed files with 86650 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
import { useEffect } from 'react';
import { AppState, type AppStateStatus } from 'react-native';
import { useAppDispatch } from '../app/hooks';
import { logoutSession } from '../modules/auth/store/authThunk';
import { uiActions } from '../modules/ui/store/uiSlice';
import { sessionManager } from '../services/security/sessionManager';
import { useToast } from './useToast';
export const useSessionTimeout = () => {
const dispatch = useAppDispatch();
const toast = useToast();
useEffect(() => {
const handleAppStateChange = (nextState: AppStateStatus) => {
if (nextState === 'active') {
if (sessionManager.hasExpired()) {
dispatch(uiActions.setSessionExpired(true));
dispatch(logoutSession());
toast('Session expired', 'error', 'Please log in again to continue securely.');
}
sessionManager.touch();
}
if (nextState === 'background' || nextState === 'inactive') {
sessionManager.touch();
}
};
const subscription = AppState.addEventListener('change', handleAppStateChange);
return () => {
subscription.remove();
};
}, [dispatch, toast]);
};