fix: improve modal behavior on web and Android scrolling

- Restructure ModalBase to use absolute-positioned backdrop behind card
  content, fixing modal stacking issues on web (React Native Web portals)
- Hide EventOverlay when DeleteEventModal is open to prevent z-index
  conflicts on web
- Add nestedScrollEnabled to CardBase ScrollView for Android
- Use TouchableOpacity with delayPressIn in EventCard for scroll-friendly
  touch handling
- Keep eventToDelete state stable during modal fade-out to prevent
  content flash between recurring/single variants
- Fix German umlauts in DeleteEventModal
This commit is contained in:
2026-01-25 22:38:37 +01:00
parent 726334c155
commit 4575483940
6 changed files with 40 additions and 25 deletions

View File

@@ -188,14 +188,14 @@ const Calendar = () => {
}
} catch (error) {
console.error("Failed to delete event:", error);
} finally {
setEventToDelete(null);
}
// Note: Don't clear eventToDelete here - it will be overwritten when opening a new modal.
// Clearing it during fade-out animation causes the modal content to flash from recurring to single.
};
const handleDeleteCancel = () => {
setDeleteModalVisible(false);
setEventToDelete(null);
// Note: Don't clear eventToDelete - keeps modal content stable during fade-out animation
};
// Get events for selected date
@@ -222,7 +222,7 @@ const Calendar = () => {
onDayPress={handleDayPress}
/>
<EventOverlay
visible={selectedDate !== null}
visible={selectedDate !== null && !deleteModalVisible}
date={selectedDate}
events={selectedDateEvents}
onClose={handleCloseOverlay}