File tree Expand file tree Collapse file tree
apps/mobile/src/initialize Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11import messaging from "@react-native-firebase/messaging"
22
33import { apiClient } from "../lib/api-fetch"
4+ import { kv } from "../lib/kv"
45import { requestNotificationPermission } from "../lib/permission"
56import { whoami } from "../store/user/getters"
67
8+ const FIREBASE_MESSAGING_TOKEN_STORAGE_KEY = "firebase_messaging_token"
9+
10+ async function saveMessagingToken ( ) {
11+ const token = await messaging ( ) . getToken ( )
12+ const storedToken = await kv . get ( FIREBASE_MESSAGING_TOKEN_STORAGE_KEY )
13+ if ( storedToken === token ) {
14+ return
15+ }
16+ await apiClient . messaging . $post ( {
17+ json : {
18+ token,
19+ channel : "mobile" ,
20+ } ,
21+ } )
22+ kv . set ( FIREBASE_MESSAGING_TOKEN_STORAGE_KEY , token )
23+ }
24+
725export const initMessaging = ( ) => {
826 const user = whoami ( )
927 if ( ! user ) {
1028 return
1129 }
1230
13- messaging ( )
14- . getToken ( )
15- . then ( ( token ) => {
16- apiClient . messaging . $post ( {
17- json : {
18- token,
19- channel : "mobile" ,
20- } ,
21- } )
22- } )
31+ saveMessagingToken ( )
2332 requestNotificationPermission ( )
2433}
You can’t perform that action at this time.
0 commit comments