Validate stale chat requests, show info instead of auto-dismiss
- Add validateIncomingRequest() — checks session status with backend - Home screen validates before showing sheet (on resume + listener) - IncomingRequestSheet shows "cancelled/accepted by other" message instead of silently dismissing when request becomes stale Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -32,7 +32,13 @@ class _HomeScreenState extends ConsumerState<HomeScreen> with WidgetsBindingObse
|
||||
if (state == AppLifecycleState.resumed) {
|
||||
final chatState = ref.read(chatRequestProvider);
|
||||
if (chatState is ChatRequestIncomingData) {
|
||||
_showIncomingRequest(chatState.sessionId);
|
||||
// Validate the request is still pending before showing
|
||||
ref.read(chatRequestProvider.notifier).validateIncomingRequest().then((_) {
|
||||
final current = ref.read(chatRequestProvider);
|
||||
if (current is ChatRequestIncomingData) {
|
||||
_showIncomingRequest(current.sessionId);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -65,7 +71,13 @@ class _HomeScreenState extends ConsumerState<HomeScreen> with WidgetsBindingObse
|
||||
// Listen for incoming chat requests
|
||||
ref.listen(chatRequestProvider, (prev, next) {
|
||||
if (next is ChatRequestIncomingData) {
|
||||
_showIncomingRequest(next.sessionId);
|
||||
// Validate request is still pending before showing sheet
|
||||
ref.read(chatRequestProvider.notifier).validateIncomingRequest().then((_) {
|
||||
final current = ref.read(chatRequestProvider);
|
||||
if (current is ChatRequestIncomingData) {
|
||||
_showIncomingRequest(current.sessionId);
|
||||
}
|
||||
});
|
||||
} else if (next is ChatRequestAcceptedData) {
|
||||
final session = next.session;
|
||||
final sessionId = session['session_id'] as String? ?? session['id'] as String;
|
||||
|
||||
Reference in New Issue
Block a user