Skip to content

Commit a0a8bc8

Browse files
committed
Initial commit
0 parents  commit a0a8bc8

File tree

693 files changed

+73804
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

693 files changed

+73804
-0
lines changed

.gitignore

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# OSX
2+
#
3+
.DS_Store
4+
5+
# Xcode
6+
#
7+
build/
8+
*.pbxuser
9+
!default.pbxuser
10+
*.mode1v3
11+
!default.mode1v3
12+
*.mode2v3
13+
!default.mode2v3
14+
*.perspectivev3
15+
!default.perspectivev3
16+
xcuserdata
17+
*.xccheckout
18+
*.moved-aside
19+
DerivedData
20+
*.hmap
21+
*.ipa
22+
*.xcuserstate
23+
project.xcworkspace
24+
25+
# Android/IntelliJ
26+
#
27+
build/
28+
.idea
29+
.gradle
30+
local.properties
31+
*.iml
32+
33+
# node.js
34+
#
35+
node_modules/
36+
npm-debug.log
37+
yarn-error.log
38+
package-lock.json
39+
40+
# BUCK
41+
buck-out/
42+
\.buckd/
43+
*.keystore
44+
45+
# fastlane
46+
#
47+
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
48+
# screenshots whenever they are needed.
49+
# For more information about the recommended setup visit:
50+
# https://docs.fastlane.tools/best-practices/source-control/
51+
52+
*/fastlane/report.xml
53+
*/fastlane/Preview.html
54+
*/fastlane/screenshots
55+
56+
# openbazaar-go
57+
ios/Mobile.framework
58+
ios/Mobile.framework.zip
59+
android/mobile/mobile.aar
60+
61+
#Pods
62+
ios/Pods
63+
ios/env.prod.xcconfig
64+
ios/env.xcconfig
65+
ios/NativeBazaar/AppCenter-Config.plist
66+
android/app/google-services.json
67+
android/app/src/main/assets/appcenter-config.json
68+
ios/GoogleService-Info.plist
69+
.env
70+
.env.prod

App.js

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
import React, { PureComponent } from 'react';
2+
import { YellowBox, AsyncStorage } from 'react-native';
3+
import Messaging from '@react-native-firebase/messaging';
4+
import { Provider } from 'react-redux';
5+
import { PersistGate } from 'redux-persist/lib/integration/react';
6+
import { MenuProvider } from 'react-native-popup-menu';
7+
import Countly from 'countly-sdk-react-native';
8+
import Reactotron from 'reactotron-react-native';
9+
10+
import './ReactotronConfig';
11+
import { serverConfig } from './utils/server';
12+
import store, { persistor } from './store';
13+
import OnboardingWrapper from './OnboardingWrapper';
14+
15+
const ignorableWarnings = [
16+
'Can only update a mounted or mounting component.',
17+
'Module RNToastNative requires',
18+
];
19+
YellowBox.ignoreWarnings(ignorableWarnings);
20+
21+
Countly.enableCrashReporting(false);
22+
23+
export default class App extends PureComponent {
24+
constructor(props) {
25+
super(props);
26+
serverConfig.setServerToken(props.server_token);
27+
}
28+
29+
async componentDidMount() {
30+
this.checkPermission();
31+
}
32+
33+
getToken = async () => {
34+
let fcmToken = await AsyncStorage.getItem('fcmToken');
35+
if (!fcmToken) {
36+
fcmToken = await Messaging().getToken();
37+
if (fcmToken) {
38+
// user has a device token
39+
await AsyncStorage.setItem('fcmToken', fcmToken);
40+
}
41+
}
42+
Reactotron.log('------------', fcmToken);
43+
}
44+
45+
checkPermission = async () => {
46+
const enabled = await Messaging().hasPermission();
47+
if (enabled) {
48+
this.getToken();
49+
} else {
50+
this.requestPermission();
51+
}
52+
}
53+
54+
async requestPermission() {
55+
try {
56+
await Messaging().requestPermission();
57+
this.getToken();
58+
} catch (error) {
59+
console.log('permission rejected');
60+
}
61+
}
62+
63+
render() {
64+
return (
65+
<Provider store={store}>
66+
<PersistGate persistor={persistor}>
67+
<MenuProvider>
68+
<OnboardingWrapper />
69+
</MenuProvider>
70+
</PersistGate>
71+
</Provider>
72+
);
73+
}
74+
}

0 commit comments

Comments
 (0)