Add core app features for event management and notifications

- Add new hook files for departure time, destination station, geocode, theme, walk route, and WienerLinien
- Add navigation types for centralized route definitions
- Update App.tsx to use ref for initialization logic
- Update notification service to use stable exports from expo-notifications
- Remove legacy notifications.ts and rename to expoNotifications.ts
- Add ScrollView to several screens for better layout
- Replace duplicated type definitions with imports from shared navigation types
- Add useTheme to relevant screens
- Remove notification handler duplication in App.tsx
This commit is contained in:
2026-05-13 08:37:52 +02:00
parent 316e5def72
commit 672d053ece
17 changed files with 1170 additions and 535 deletions
+22 -14
View File
@@ -1,22 +1,30 @@
import { useEffect } from 'react';
import { useEffect, useRef } from 'react';
import * as Notifications from './src/services/expoNotifications';
import AppNavigator from './src/navigation/AppNavigator';
export default function App() {
useEffect(() => {
// Request notification permissions on app start
Notifications.requestPermissionsAsync();
const initRef = useRef(false);
// Set up notification handler
Notifications.setNotificationHandler({
handleNotification: async () => ({
shouldShowAlert: true,
shouldPlaySound: true,
shouldSetBadge: false,
shouldShowBanner: true,
shouldShowList: true,
}),
});
useEffect(() => {
// Run initialization only once
if (initRef.current) return;
initRef.current = true;
(async () => {
// Request notification permissions
await Notifications.requestPermissionsAsync();
// Set up notification handler (called exactly once)
Notifications.setNotificationHandler({
handleNotification: async () => ({
shouldShowAlert: true,
shouldPlaySound: true,
shouldSetBadge: false,
shouldShowBanner: true,
shouldShowList: true,
}),
});
})();
}, []);
return <AppNavigator />;