generated from rocketseat-education/igniteshoesapp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.tsx
66 lines (47 loc) · 1.76 KB
/
App.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import { StatusBar } from 'react-native';
import { NativeBaseProvider } from 'native-base';
import OneSignal from "react-native-onesignal";
import { useFonts, Roboto_400Regular, Roboto_700Bold } from '@expo-google-fonts/roboto';
import { Routes } from './src/routes';
import { THEME } from './src/theme';
import { Loading } from './src/components/Loading';
import { CartContextProvider } from './src/contexts/CartContext';
// Setup Inicial
OneSignal.setAppId("deab7f33-7872-406c-8f8d-9668d0c4b8c7");
OneSignal.setEmail("matheusandrade.ma2003@gmail.com");
OneSignal.promptForPushNotificationsWithUserResponse();
// Criar Tags para o usuário
import { tagUserInfoCreate } from './src/notifications/notificationTags';
import { useEffect } from 'react';
export default function App() {
const [fontsLoaded] = useFonts({ Roboto_400Regular, Roboto_700Bold });
tagUserInfoCreate()
// Monitora o clique na notificação quando o app está em segundo plano
useEffect(() => {
const unsubscribe = OneSignal.setNotificationOpenedHandler((response) => {
// Se houve o clique em um dos botões da notificação, faz uma ação específica
const { actionId } = response.action as any;
switch (actionId) {
case '1':
return console.log('Ver todas!');
case '2':
return console.log('Ver pedido!');
default:
return console.log('Não houve nenhuma ação!');
}
})
return () => unsubscribe
}, [])
return (
<NativeBaseProvider theme={THEME}>
<StatusBar
barStyle="light-content"
backgroundColor="transparent"
translucent
/>
<CartContextProvider>
{fontsLoaded ? <Routes /> : <Loading />}
</CartContextProvider>
</NativeBaseProvider>
);
}