Implement one signal and save token of user
This commit is contained in:
parent
7d6909f5c2
commit
195b9aaebc
5 changed files with 54 additions and 8 deletions
|
@ -11,6 +11,8 @@ import { Colors } from '@/lib/constants/Colors';
|
|||
import { useColorScheme } from '@/lib/hooks/useColorScheme';
|
||||
import { Message } from '@/lib/services/message';
|
||||
import { Request } from '@/lib/services/request';
|
||||
import { store } from '@/lib/store/store';
|
||||
import { setSession, setReloadCalendar } from '@/lib/store/dataStore';
|
||||
|
||||
export default function OnboardStartScreen() {
|
||||
const colorScheme = useColorScheme() ?? 'light';
|
||||
|
@ -45,6 +47,8 @@ export default function OnboardStartScreen() {
|
|||
setToken( token );
|
||||
router.replace( "/(tabs)" );
|
||||
|
||||
store.dispatch(setSession(response.session));
|
||||
|
||||
Message.success( response.message );
|
||||
}
|
||||
} );
|
||||
|
|
|
@ -5,6 +5,7 @@ import CalendarPicker from 'react-native-calendar-picker';
|
|||
import Ionicons from '@expo/vector-icons/Ionicons';
|
||||
import { useIsFocused } from '@react-navigation/core';
|
||||
import { useSelector } from 'react-redux';
|
||||
import { LogLevel, OneSignal } from 'react-native-onesignal';
|
||||
|
||||
import { ThemedText } from '@/lib/components/ThemedText';
|
||||
import { ThemedView } from '@/lib/components/ThemedView';
|
||||
|
@ -13,6 +14,7 @@ import { useColorScheme } from '@/lib/hooks/useColorScheme';
|
|||
import { useToken } from '@/lib/context/AppProvider';
|
||||
import { Request } from '@/lib/services/request';
|
||||
import List from '@/lib/components/List';
|
||||
import { Message } from '@/lib/services/message';
|
||||
|
||||
export default function HomeScreen() {
|
||||
const colorScheme = useColorScheme() ?? 'light';
|
||||
|
@ -23,6 +25,37 @@ export default function HomeScreen() {
|
|||
const [ name, setName ] = useState( ' ' ); // Default empty space to prevent layout shifting
|
||||
const [ dates, setDates ] = useState<any | null>( [] );
|
||||
const [ types, setTypes ] = useState<any | null>( [] );
|
||||
const [ onesignalLoaded, setOnesignalLoaded ] = useState<any | null>( false );
|
||||
|
||||
const loadOneSignal = () => {
|
||||
// Remove this method to stop OneSignal Debugging
|
||||
OneSignal.Debug.setLogLevel(LogLevel.Verbose);
|
||||
|
||||
// OneSignal Initialization
|
||||
OneSignal.initialize("6ef15aa7-9dc0-4d8b-b6b1-e2005bcd3dc6");
|
||||
|
||||
// Request permission
|
||||
OneSignal.Notifications.requestPermission(true)
|
||||
|
||||
// Retrieve one signal user token
|
||||
OneSignal.User.pushSubscription.getIdAsync().then((notificationsToken) => {
|
||||
if (notificationsToken) {
|
||||
Request.post( 'sessions/update', { token: token, notifications_token: notificationsToken } ).then( (response) => {
|
||||
if (!response.success) {
|
||||
Message.error( 'Notificaties zijn uitgeschakeld door een onbekende error' );
|
||||
}
|
||||
} );
|
||||
}
|
||||
})
|
||||
|
||||
// Disable loading again
|
||||
setOnesignalLoaded(true);
|
||||
}
|
||||
|
||||
// Load OneSignal
|
||||
useEffect( () => {
|
||||
loadOneSignal();
|
||||
}, [onesignalLoaded] );
|
||||
|
||||
// Load session
|
||||
useEffect( () => {
|
||||
|
|
|
@ -24,8 +24,8 @@ import { setSession, setReloadCalendar } from '@/lib/store/dataStore';
|
|||
|
||||
export default function SettingsScreen() {
|
||||
const colorScheme = useColorScheme() ?? 'light';
|
||||
const { token, isLoading } = useToken();
|
||||
const session = useSelector((state: any) => state.data.session);
|
||||
const { token, isLoading, setToken } = useToken();
|
||||
const session = useSelector( (state: any) => state.data.session );
|
||||
const router = useRouter();
|
||||
|
||||
// Name
|
||||
|
@ -41,7 +41,7 @@ export default function SettingsScreen() {
|
|||
|
||||
useEffect( () => {
|
||||
setSessionData( session );
|
||||
}, [session] );
|
||||
}, [ session ] );
|
||||
|
||||
// Set session data in view
|
||||
const setSessionData = (session: any) => {
|
||||
|
@ -81,8 +81,8 @@ export default function SettingsScreen() {
|
|||
setSessionData( response.session );
|
||||
|
||||
// Save to store
|
||||
store.dispatch(setSession(response.session))
|
||||
store.dispatch(setReloadCalendar(addressChanged))
|
||||
store.dispatch( setSession( response.session ) )
|
||||
store.dispatch( setReloadCalendar( addressChanged ) )
|
||||
|
||||
Message.success( 'Opgeslagen!' )
|
||||
} else {
|
||||
|
@ -102,9 +102,10 @@ export default function SettingsScreen() {
|
|||
text: 'Ja',
|
||||
onPress: () => {
|
||||
Request.post( 'sessions/delete' ).then( (response) => {
|
||||
console.log( 'sessions delete', response );
|
||||
if (!response.success) {
|
||||
Message.success( 'Je bent uitgelogd' )
|
||||
Message.success( 'Je bent uitgelogd' );
|
||||
|
||||
setToken( null );
|
||||
|
||||
router.replace( '/(onboarding)/start' );
|
||||
} else {
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
"react-native-gesture-handler": "~2.16.1",
|
||||
"react-native-leaflet-view": "^0.1.2",
|
||||
"react-native-modal": "^13.0.1",
|
||||
"react-native-onesignal": "^5.2.2",
|
||||
"react-native-reanimated": "~3.10.1",
|
||||
"react-native-render-html": "^6.3.4",
|
||||
"react-native-safe-area-context": "4.10.5",
|
||||
|
|
|
@ -5070,7 +5070,7 @@ internal-slot@^1.0.4, internal-slot@^1.0.7:
|
|||
hasown "^2.0.0"
|
||||
side-channel "^1.0.4"
|
||||
|
||||
invariant@2.2.4, invariant@^2.2.4:
|
||||
invariant@2.2.4, invariant@^2.2.2, invariant@^2.2.4:
|
||||
version "2.2.4"
|
||||
resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz"
|
||||
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
|
||||
|
@ -7433,6 +7433,13 @@ react-native-modal@^13.0.1:
|
|||
prop-types "^15.6.2"
|
||||
react-native-animatable "1.3.3"
|
||||
|
||||
react-native-onesignal@^5.2.2:
|
||||
version "5.2.2"
|
||||
resolved "https://registry.yarnpkg.com/react-native-onesignal/-/react-native-onesignal-5.2.2.tgz#7959c0315329d6f608f59886e656c6284388fb9c"
|
||||
integrity sha512-QrQOyRT8v9eXvf2jJNdbEsPG7QYgakyscr7nidKM4tW5IsiN7oEaSyCB26L9wc8sQtzW5n9Yz9VZcqh5zBO1yA==
|
||||
dependencies:
|
||||
invariant "^2.2.2"
|
||||
|
||||
react-native-reanimated@~3.10.1:
|
||||
version "3.10.1"
|
||||
resolved "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.10.1.tgz"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue