feat: improve chat keyboard handling and MonthSelector memory efficiency
- Add KeyboardAvoidingView with platform-specific behavior to chat screen - Implement auto-scroll to end on new messages and keyboard show - Configure keyboardDismissMode and keyboardShouldPersistTaps for better UX - Lazy-load MonthSelector data only when modal opens, clear on close - Add .env to gitignore
This commit is contained in:
@@ -296,7 +296,7 @@ MONGODB_URI=mongodb://root:mongoose@localhost:27017/calchat?authSource=admin
|
||||
- Tab navigation (Chat, Calendar) implemented with basic UI
|
||||
- Calendar screen fully functional:
|
||||
- Month navigation with grid display and Ionicons (chevron-back/forward)
|
||||
- MonthSelector dropdown with infinite scroll (dynamically loads months)
|
||||
- MonthSelector dropdown with infinite scroll (dynamically loads months, lazy-loaded when modal opens, cleared on close for memory efficiency)
|
||||
- Events loaded from API via EventService.getByDateRange()
|
||||
- Orange dot indicator for days with events
|
||||
- Tap-to-open modal overlay showing EventCards for selected day
|
||||
@@ -304,6 +304,9 @@ MONGODB_URI=mongodb://root:mongoose@localhost:27017/calchat?authSource=admin
|
||||
- Uses `useFocusEffect` for automatic reload on tab focus
|
||||
- Chat screen functional with FlashList, message sending, and event confirm/reject
|
||||
- Messages persisted via ChatStore (survives tab switches)
|
||||
- KeyboardAvoidingView for proper keyboard handling (iOS padding, Android height)
|
||||
- Auto-scroll to end on new messages and keyboard show
|
||||
- keyboardDismissMode="interactive" and keyboardShouldPersistTaps="handled"
|
||||
- `ApiClient`: get(), post(), put(), delete() implemented
|
||||
- `EventService`: getAll(), getById(), getByDateRange(), create(), update(), delete() - fully implemented
|
||||
- `ChatService`: sendMessage(), confirmEvent(convId, msgId, action, event?, eventId?, updates?), rejectEvent() - supports create/update/delete actions
|
||||
|
||||
Reference in New Issue
Block a user