diff --git a/.buckconfig b/.buckconfig new file mode 100644 index 0000000..934256c --- /dev/null +++ b/.buckconfig @@ -0,0 +1,6 @@ + +[android] + target = Google Inc.:Google APIs:23 + +[maven_repositories] + central = https://repo1.maven.org/maven2 diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..1896997 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,6 @@ +module.exports = { + root: true, + extends: '@react-native-community', + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint'], +}; diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..d42ff18 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.pbxproj -text diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..d5a0313 --- /dev/null +++ b/.gitignore @@ -0,0 +1,63 @@ +# OSX +# +.DS_Store + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace + +# Android/IntelliJ +# +build/ +.idea +.gradle +local.properties +*.iml + +# Visual Studio Code +# +.vscode/ + +# node.js +# +node_modules/ +npm-debug.log +yarn-error.log + +# BUCK +buck-out/ +\.buckd/ + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the +# screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/ + +**/fastlane/report.xml +**/fastlane/Preview.html +**/fastlane/screenshots +**/fastlane/test_output + +# Bundle artifact +*.jsbundle + +# CocoaPods +/ios/Pods/ diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..5c4de1a --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,6 @@ +module.exports = { + bracketSpacing: false, + jsxBracketSameLine: true, + singleQuote: true, + trailingComma: 'all', +}; diff --git a/.watchmanconfig b/.watchmanconfig new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.watchmanconfig @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Assets/Fonts/Montserrat-Bold.ttf b/Assets/Fonts/Montserrat-Bold.ttf new file mode 100755 index 0000000..1a1edbf Binary files /dev/null and b/Assets/Fonts/Montserrat-Bold.ttf differ diff --git a/Assets/Fonts/Montserrat-ExtraBold.ttf b/Assets/Fonts/Montserrat-ExtraBold.ttf new file mode 100755 index 0000000..236f910 Binary files /dev/null and b/Assets/Fonts/Montserrat-ExtraBold.ttf differ diff --git a/Assets/Fonts/Montserrat-Regular.ttf b/Assets/Fonts/Montserrat-Regular.ttf new file mode 100755 index 0000000..f7d9761 Binary files /dev/null and b/Assets/Fonts/Montserrat-Regular.ttf differ diff --git a/Assets/Images/corona-icon.png b/Assets/Images/corona-icon.png new file mode 100644 index 0000000..5e48d68 Binary files /dev/null and b/Assets/Images/corona-icon.png differ diff --git a/Assets/Images/corona-icon@2x.png b/Assets/Images/corona-icon@2x.png new file mode 100644 index 0000000..7d114fb Binary files /dev/null and b/Assets/Images/corona-icon@2x.png differ diff --git a/Assets/Images/corona-icon@3x.png b/Assets/Images/corona-icon@3x.png new file mode 100644 index 0000000..d833074 Binary files /dev/null and b/Assets/Images/corona-icon@3x.png differ diff --git a/Assets/Images/half-circle.png b/Assets/Images/half-circle.png new file mode 100644 index 0000000..40ebc79 Binary files /dev/null and b/Assets/Images/half-circle.png differ diff --git a/Assets/Images/half-circle@2x.png b/Assets/Images/half-circle@2x.png new file mode 100644 index 0000000..409d335 Binary files /dev/null and b/Assets/Images/half-circle@2x.png differ diff --git a/Assets/Images/half-circle@3x.png b/Assets/Images/half-circle@3x.png new file mode 100644 index 0000000..9f14a60 Binary files /dev/null and b/Assets/Images/half-circle@3x.png differ diff --git a/Assets/Images/index.ts b/Assets/Images/index.ts new file mode 100644 index 0000000..9fcff05 --- /dev/null +++ b/Assets/Images/index.ts @@ -0,0 +1,5 @@ +import {ImageRequireSource} from 'react-native'; + +export const Logo = require('./logo.png') as ImageRequireSource; +export const HalfCircle = require('./half-circle.png') as ImageRequireSource; +export const corona = require('./corona-icon.png') as ImageRequireSource; diff --git a/Assets/Images/logo.png b/Assets/Images/logo.png new file mode 100644 index 0000000..ef09387 Binary files /dev/null and b/Assets/Images/logo.png differ diff --git a/Assets/Images/logo@2x.png b/Assets/Images/logo@2x.png new file mode 100644 index 0000000..1a778a3 Binary files /dev/null and b/Assets/Images/logo@2x.png differ diff --git a/Assets/Images/logo@3x.png b/Assets/Images/logo@3x.png new file mode 100644 index 0000000..a9de376 Binary files /dev/null and b/Assets/Images/logo@3x.png differ diff --git a/Assets/Images/walkthrough1.png b/Assets/Images/walkthrough1.png new file mode 100644 index 0000000..456aab5 Binary files /dev/null and b/Assets/Images/walkthrough1.png differ diff --git a/Assets/Images/walkthrough1@2x.png b/Assets/Images/walkthrough1@2x.png new file mode 100644 index 0000000..e939e8b Binary files /dev/null and b/Assets/Images/walkthrough1@2x.png differ diff --git a/Assets/Images/walkthrough1@3x.png b/Assets/Images/walkthrough1@3x.png new file mode 100644 index 0000000..bf6fb46 Binary files /dev/null and b/Assets/Images/walkthrough1@3x.png differ diff --git a/Assets/Images/walkthrough2.png b/Assets/Images/walkthrough2.png new file mode 100644 index 0000000..8f456d7 Binary files /dev/null and b/Assets/Images/walkthrough2.png differ diff --git a/Assets/Images/walkthrough2@2x.png b/Assets/Images/walkthrough2@2x.png new file mode 100644 index 0000000..db4b06f Binary files /dev/null and b/Assets/Images/walkthrough2@2x.png differ diff --git a/Assets/Images/walkthrough2@3x.png b/Assets/Images/walkthrough2@3x.png new file mode 100644 index 0000000..e93beed Binary files /dev/null and b/Assets/Images/walkthrough2@3x.png differ diff --git a/android/.project b/android/.project new file mode 100644 index 0000000..6e103ea --- /dev/null +++ b/android/.project @@ -0,0 +1,17 @@ + + + distance19 + Project android created by Buildship. + + + + + org.eclipse.buildship.core.gradleprojectbuilder + + + + + + org.eclipse.buildship.core.gradleprojectnature + + diff --git a/android/.settings/org.eclipse.buildship.core.prefs b/android/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 0000000..342e81e --- /dev/null +++ b/android/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,13 @@ +arguments= +auto.sync=false +build.scans.enabled=false +connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) +connection.project.dir= +eclipse.preferences.version=1 +gradle.user.home= +java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home +jvm.arguments= +offline.mode=false +override.workspace.settings=true +show.console.view=true +show.executions.view=true diff --git a/android/app/.classpath b/android/app/.classpath new file mode 100644 index 0000000..eb19361 --- /dev/null +++ b/android/app/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/android/app/.project b/android/app/.project new file mode 100644 index 0000000..ac485d7 --- /dev/null +++ b/android/app/.project @@ -0,0 +1,23 @@ + + + app + Project app created by Buildship. + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.buildship.core.gradleprojectbuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.buildship.core.gradleprojectnature + + diff --git a/android/app/.settings/org.eclipse.buildship.core.prefs b/android/app/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 0000000..b1886ad --- /dev/null +++ b/android/app/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,2 @@ +connection.project.dir=.. +eclipse.preferences.version=1 diff --git a/android/app/_BUCK b/android/app/_BUCK new file mode 100755 index 0000000..ece63f4 --- /dev/null +++ b/android/app/_BUCK @@ -0,0 +1,55 @@ +# To learn about Buck see [Docs](https://buckbuild.com/). +# To run your application with Buck: +# - install Buck +# - `npm start` - to start the packager +# - `cd android` +# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` +# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck +# - `buck install -r android/app` - compile, install and run application +# + +load(":build_defs.bzl", "create_aar_targets", "create_jar_targets") + +lib_deps = [] + +create_aar_targets(glob(["libs/*.aar"])) + +create_jar_targets(glob(["libs/*.jar"])) + +android_library( + name = "all-libs", + exported_deps = lib_deps, +) + +android_library( + name = "app-code", + srcs = glob([ + "src/main/java/**/*.java", + ]), + deps = [ + ":all-libs", + ":build_config", + ":res", + ], +) + +android_build_config( + name = "build_config", + package = "com.contact19", +) + +android_resource( + name = "res", + package = "com.contact19", + res = "src/main/res", +) + +android_binary( + name = "app", + keystore = "//android/keystores:debug", + manifest = "src/main/AndroidManifest.xml", + package_type = "debug", + deps = [ + ":app-code", + ], +) diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100755 index 0000000..0be6f0a --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,233 @@ +apply plugin: "com.android.application" + +import com.android.build.OutputFile + +/** + * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets + * and bundleReleaseJsAndAssets). + * These basically call `react-native bundle` with the correct arguments during the Android build + * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the + * bundle directly from the development server. Below you can see all the possible configurations + * and their defaults. If you decide to add a configuration block, make sure to add it before the + * `apply from: "../../node_modules/react-native/react.gradle"` line. + * + * project.ext.react = [ + * // the name of the generated asset file containing your JS bundle + * bundleAssetName: "index.android.bundle", + * + * // the entry file for bundle generation. If none specified and + * // "index.android.js" exists, it will be used. Otherwise "index.js" is + * // default. Can be overridden with ENTRY_FILE environment variable. + * entryFile: "index.android.js", + * + * // https://facebook.github.io/react-native/docs/performance#enable-the-ram-format + * bundleCommand: "ram-bundle", + * + * // whether to bundle JS and assets in debug mode + * bundleInDebug: false, + * + * // whether to bundle JS and assets in release mode + * bundleInRelease: true, + * + * // whether to bundle JS and assets in another build variant (if configured). + * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants + * // The configuration property can be in the following formats + * // 'bundleIn${productFlavor}${buildType}' + * // 'bundleIn${buildType}' + * // bundleInFreeDebug: true, + * // bundleInPaidRelease: true, + * // bundleInBeta: true, + * + * // whether to disable dev mode in custom build variants (by default only disabled in release) + * // for example: to disable dev mode in the staging build type (if configured) + * devDisabledInStaging: true, + * // The configuration property can be in the following formats + * // 'devDisabledIn${productFlavor}${buildType}' + * // 'devDisabledIn${buildType}' + * + * // the root of your project, i.e. where "package.json" lives + * root: "../../", + * + * // where to put the JS bundle asset in debug mode + * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", + * + * // where to put the JS bundle asset in release mode + * jsBundleDirRelease: "$buildDir/intermediates/assets/release", + * + * // where to put drawable resources / React Native assets, e.g. the ones you use via + * // require('./image.png')), in debug mode + * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", + * + * // where to put drawable resources / React Native assets, e.g. the ones you use via + * // require('./image.png')), in release mode + * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", + * + * // by default the gradle tasks are skipped if none of the JS files or assets change; this means + * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to + * // date; if you have any other folders that you want to ignore for performance reasons (gradle + * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ + * // for example, you might want to remove it from here. + * inputExcludes: ["android/**", "ios/**"], + * + * // override which node gets called and with what additional arguments + * nodeExecutableAndArgs: ["node"], + * + * // supply additional arguments to the packager + * extraPackagerArgs: [] + * ] + */ + +project.ext.react = [ + entryFile: "index.js", + enableHermes: false, // clean and rebuild if changing +] + +apply from: "../../node_modules/react-native/react.gradle" + +/** + * Set this to true to create two separate APKs instead of one: + * - An APK that only works on ARM devices + * - An APK that only works on x86 devices + * The advantage is the size of the APK is reduced by about 4MB. + * Upload all the APKs to the Play Store and people will download + * the correct one based on the CPU architecture of their device. + */ +def enableSeparateBuildPerCPUArchitecture = false + +/** + * Run Proguard to shrink the Java bytecode in release builds. + */ +def enableProguardInReleaseBuilds = false + +/** + * The preferred build flavor of JavaScriptCore. + * + * For example, to use the international variant, you can use: + * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` + * + * The international variant includes ICU i18n library and necessary data + * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that + * give correct results when using with locales other than en-US. Note that + * this variant is about 6MiB larger per architecture than default. + */ +def jscFlavor = 'org.webkit:android-jsc:+' + +/** + * Whether to enable the Hermes VM. + * + * This should be set on project.ext.react and mirrored here. If it is not set + * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode + * and the benefits of using Hermes will therefore be sharply reduced. + */ +def enableHermes = project.ext.react.get("enableHermes", false); + +android { + compileSdkVersion rootProject.ext.compileSdkVersion + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + defaultConfig { + applicationId "com.contact19" + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 1 + versionName "1.0.0" + multiDexEnabled true + } + splits { + abi { + reset() + enable enableSeparateBuildPerCPUArchitecture + universalApk false // If true, also generate a universal APK + include "armeabi-v7a", "x86", "arm64-v8a", "x86_64" + } + } + signingConfigs { + debug { + storeFile file('debug.keystore') + storePassword 'android' + keyAlias 'androiddebugkey' + keyPassword 'android' + } + release { + if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) { + storeFile file(MYAPP_RELEASE_STORE_FILE) + storePassword MYAPP_RELEASE_STORE_PASSWORD + keyAlias MYAPP_RELEASE_KEY_ALIAS + keyPassword MYAPP_RELEASE_KEY_PASSWORD + } + } + } + buildTypes { + debug { + signingConfig signingConfigs.debug + } + release { + // Caution! In production, you need to generate your own keystore file. + // see https://facebook.github.io/react-native/docs/signed-apk-android. + signingConfig signingConfigs.release + minifyEnabled enableProguardInReleaseBuilds + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + } + } + packagingOptions { + pickFirst "lib/armeabi-v7a/libc++_shared.so" + pickFirst "lib/arm64-v8a/libc++_shared.so" + pickFirst "lib/x86/libc++_shared.so" + pickFirst "lib/x86_64/libc++_shared.so" + } + // applicationVariants are e.g. debug, release + applicationVariants.all { variant -> + variant.outputs.each { output -> + // For each separate APK per architecture, set a unique version code as described here: + // https://developer.android.com/studio/build/configure-apk-splits.html + def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] + def abi = output.getFilter(OutputFile.ABI) + if (abi != null) { // null for the universal-debug, universal-release variants + output.versionCodeOverride = + versionCodes.get(abi) * 1048576 + defaultConfig.versionCode + } + + } + } +} + +dependencies { + implementation fileTree(dir: "libs", include: ["*.jar"]) + //noinspection GradleDynamicVersion + implementation "com.facebook.react:react-native:+" // From node_modules + + implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" + debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") { + exclude group:'com.facebook.fbjni' + } + debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { + exclude group:'com.facebook.flipper' + } + debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") { + exclude group:'com.facebook.flipper' + } + + if (enableHermes) { + def hermesPath = "../../node_modules/hermes-engine/android/"; + debugImplementation files(hermesPath + "hermes-debug.aar") + releaseImplementation files(hermesPath + "hermes-release.aar") + } else { + implementation jscFlavor + } +} + +// Run this once to be able to run the application with BUCK +// puts all compile dependencies into folder libs for BUCK to use +task copyDownloadableDepsToLibs(type: Copy) { + from configurations.compile + into 'libs' +} + +apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) +Project background_geolocation = project(':react-native-background-geolocation') +apply from: "${background_geolocation.projectDir}/app.gradle" +apply plugin: 'com.google.gms.google-services' diff --git a/android/app/build_defs.bzl b/android/app/build_defs.bzl new file mode 100644 index 0000000..fff270f --- /dev/null +++ b/android/app/build_defs.bzl @@ -0,0 +1,19 @@ +"""Helper definitions to glob .aar and .jar targets""" + +def create_aar_targets(aarfiles): + for aarfile in aarfiles: + name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")] + lib_deps.append(":" + name) + android_prebuilt_aar( + name = name, + aar = aarfile, + ) + +def create_jar_targets(jarfiles): + for jarfile in jarfiles: + name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")] + lib_deps.append(":" + name) + prebuilt_jar( + name = name, + binary_jar = jarfile, + ) diff --git a/android/app/debug.keystore b/android/app/debug.keystore new file mode 100644 index 0000000..364e105 Binary files /dev/null and b/android/app/debug.keystore differ diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro new file mode 100644 index 0000000..11b0257 --- /dev/null +++ b/android/app/proguard-rules.pro @@ -0,0 +1,10 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..fa26aa5 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/android/app/src/debug/java/com/contact19/ReactNativeFlipper.java b/android/app/src/debug/java/com/contact19/ReactNativeFlipper.java new file mode 100644 index 0000000..36585d9 --- /dev/null +++ b/android/app/src/debug/java/com/contact19/ReactNativeFlipper.java @@ -0,0 +1,62 @@ +package com.contact19; + +import android.content.Context; +import com.facebook.flipper.android.AndroidFlipperClient; +import com.facebook.flipper.android.utils.FlipperUtils; +import com.facebook.flipper.core.FlipperClient; +import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin; +import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin; +import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin; +import com.facebook.flipper.plugins.inspector.DescriptorMapping; +import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin; +import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor; +import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; +import com.facebook.flipper.plugins.react.ReactFlipperPlugin; +import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; +import com.facebook.react.ReactInstanceManager; +import com.facebook.react.bridge.ReactContext; +import com.facebook.react.modules.network.NetworkingModule; +import okhttp3.OkHttpClient; +public class ReactNativeFlipper { + public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { + if (FlipperUtils.shouldEnableFlipper(context)) { + final FlipperClient client = AndroidFlipperClient.getInstance(context); + client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults())); + client.addPlugin(new ReactFlipperPlugin()); + client.addPlugin(new DatabasesFlipperPlugin(context)); + client.addPlugin(new SharedPreferencesFlipperPlugin(context)); + client.addPlugin(CrashReporterPlugin.getInstance()); + NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin(); + NetworkingModule.setCustomClientBuilder( + new NetworkingModule.CustomClientBuilder() { + @Override + public void apply(OkHttpClient.Builder builder) { + builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin)); + } + }); + client.addPlugin(networkFlipperPlugin); + client.start(); + // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized + // Hence we run if after all native modules have been initialized + ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); + if (reactContext == null) { + reactInstanceManager.addReactInstanceEventListener( + new ReactInstanceManager.ReactInstanceEventListener() { + @Override + public void onReactContextInitialized(ReactContext reactContext) { + reactInstanceManager.removeReactInstanceEventListener(this); + reactContext.runOnNativeModulesQueueThread( + new Runnable() { + @Override + public void run() { + client.addPlugin(new FrescoFlipperPlugin()); + } + }); + } + }); + } else { + client.addPlugin(new FrescoFlipperPlugin()); + } + } + } +} \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100755 index 0000000..6d17c2f --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/assets/fonts/AntDesign.ttf b/android/app/src/main/assets/fonts/AntDesign.ttf new file mode 100644 index 0000000..2abf035 Binary files /dev/null and b/android/app/src/main/assets/fonts/AntDesign.ttf differ diff --git a/android/app/src/main/assets/fonts/Entypo.ttf b/android/app/src/main/assets/fonts/Entypo.ttf new file mode 100644 index 0000000..1c8f5e9 Binary files /dev/null and b/android/app/src/main/assets/fonts/Entypo.ttf differ diff --git a/android/app/src/main/assets/fonts/EvilIcons.ttf b/android/app/src/main/assets/fonts/EvilIcons.ttf new file mode 100644 index 0000000..6868f7b Binary files /dev/null and b/android/app/src/main/assets/fonts/EvilIcons.ttf differ diff --git a/android/app/src/main/assets/fonts/Feather.ttf b/android/app/src/main/assets/fonts/Feather.ttf new file mode 100644 index 0000000..852c713 Binary files /dev/null and b/android/app/src/main/assets/fonts/Feather.ttf differ diff --git a/android/app/src/main/assets/fonts/FontAwesome.ttf b/android/app/src/main/assets/fonts/FontAwesome.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/android/app/src/main/assets/fonts/FontAwesome.ttf differ diff --git a/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf b/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf new file mode 100644 index 0000000..5f72e91 Binary files /dev/null and b/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf differ diff --git a/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf b/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf new file mode 100644 index 0000000..a309313 Binary files /dev/null and b/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf differ diff --git a/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf b/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf new file mode 100644 index 0000000..7ece328 Binary files /dev/null and b/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf differ diff --git a/android/app/src/main/assets/fonts/Fontisto.ttf b/android/app/src/main/assets/fonts/Fontisto.ttf new file mode 100755 index 0000000..96e2e81 Binary files /dev/null and b/android/app/src/main/assets/fonts/Fontisto.ttf differ diff --git a/android/app/src/main/assets/fonts/Foundation.ttf b/android/app/src/main/assets/fonts/Foundation.ttf new file mode 100644 index 0000000..6cce217 Binary files /dev/null and b/android/app/src/main/assets/fonts/Foundation.ttf differ diff --git a/android/app/src/main/assets/fonts/Ionicons.ttf b/android/app/src/main/assets/fonts/Ionicons.ttf new file mode 100644 index 0000000..67bd842 Binary files /dev/null and b/android/app/src/main/assets/fonts/Ionicons.ttf differ diff --git a/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf b/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf new file mode 100644 index 0000000..9cc8db1 Binary files /dev/null and b/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf differ diff --git a/android/app/src/main/assets/fonts/MaterialIcons.ttf b/android/app/src/main/assets/fonts/MaterialIcons.ttf new file mode 100644 index 0000000..7015564 Binary files /dev/null and b/android/app/src/main/assets/fonts/MaterialIcons.ttf differ diff --git a/android/app/src/main/assets/fonts/Montserrat-Bold.ttf b/android/app/src/main/assets/fonts/Montserrat-Bold.ttf new file mode 100755 index 0000000..1a1edbf Binary files /dev/null and b/android/app/src/main/assets/fonts/Montserrat-Bold.ttf differ diff --git a/android/app/src/main/assets/fonts/Montserrat-ExtraBold.ttf b/android/app/src/main/assets/fonts/Montserrat-ExtraBold.ttf new file mode 100755 index 0000000..236f910 Binary files /dev/null and b/android/app/src/main/assets/fonts/Montserrat-ExtraBold.ttf differ diff --git a/android/app/src/main/assets/fonts/Montserrat-Regular.ttf b/android/app/src/main/assets/fonts/Montserrat-Regular.ttf new file mode 100755 index 0000000..f7d9761 Binary files /dev/null and b/android/app/src/main/assets/fonts/Montserrat-Regular.ttf differ diff --git a/android/app/src/main/assets/fonts/Octicons.ttf b/android/app/src/main/assets/fonts/Octicons.ttf new file mode 100644 index 0000000..ceac75d Binary files /dev/null and b/android/app/src/main/assets/fonts/Octicons.ttf differ diff --git a/android/app/src/main/assets/fonts/SimpleLineIcons.ttf b/android/app/src/main/assets/fonts/SimpleLineIcons.ttf new file mode 100644 index 0000000..6ecb686 Binary files /dev/null and b/android/app/src/main/assets/fonts/SimpleLineIcons.ttf differ diff --git a/android/app/src/main/assets/fonts/Zocial.ttf b/android/app/src/main/assets/fonts/Zocial.ttf new file mode 100644 index 0000000..e4ae46c Binary files /dev/null and b/android/app/src/main/assets/fonts/Zocial.ttf differ diff --git a/android/app/src/main/java/com/contact19/MainActivity.java b/android/app/src/main/java/com/contact19/MainActivity.java new file mode 100644 index 0000000..fd41843 --- /dev/null +++ b/android/app/src/main/java/com/contact19/MainActivity.java @@ -0,0 +1,15 @@ +package com.contact19; + +import com.facebook.react.ReactActivity; + +public class MainActivity extends ReactActivity { + + /** + * Returns the name of the main component registered from JavaScript. This is used to schedule + * rendering of the component. + */ + @Override + protected String getMainComponentName() { + return "contact19"; + } +} diff --git a/android/app/src/main/java/com/contact19/MainApplication.java b/android/app/src/main/java/com/contact19/MainApplication.java new file mode 100644 index 0000000..c5f4db7 --- /dev/null +++ b/android/app/src/main/java/com/contact19/MainApplication.java @@ -0,0 +1,82 @@ +package com.contact19; + +import android.app.Application; +import android.content.Context; +import com.facebook.react.PackageList; +import com.facebook.react.ReactApplication; +import com.facebook.react.ReactInstanceManager; +import com.facebook.react.ReactNativeHost; +import com.facebook.react.ReactPackage; +import com.facebook.react.modules.i18nmanager.I18nUtil; +import com.facebook.soloader.SoLoader; +import java.lang.reflect.InvocationTargetException; +import java.util.List; + +public class MainApplication extends Application implements ReactApplication { + + private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { + @Override + public boolean getUseDeveloperSupport() { + return BuildConfig.DEBUG; + } + + @Override + protected List getPackages() { + @SuppressWarnings("UnnecessaryLocalVariable") + List packages = new PackageList(this).getPackages(); + // Packages that cannot be autolinked yet can be added manually here, for + // example: + // packages.add(new MyReactNativePackage()); + return packages; + } + + @Override + protected String getJSMainModuleName() { + return "index"; + } + }; + + @Override + public ReactNativeHost getReactNativeHost() { + return mReactNativeHost; + } + + @Override + public void onCreate() { + super.onCreate(); + I18nUtil.getInstance().allowRTL(this, true); + + SoLoader.init(this, /* native exopackage */ false); + initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); + } + + /** + * Loads Flipper in React Native templates. Call this in the onCreate method + * with something like initializeFlipper(this, + * getReactNativeHost().getReactInstanceManager()); + * + * @param context + * @param reactInstanceManager + */ + private static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { + if (BuildConfig.DEBUG) { + try { + /* + * We use reflection here to pick up the class that initializes Flipper, since + * Flipper library is not available in release mode + */ + Class aClass = Class.forName("com.contact19.ReactNativeFlipper"); + aClass.getMethod("initializeFlipper", Context.class, ReactInstanceManager.class).invoke(null, context, + reactInstanceManager); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } + } + } +} diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..a2f5908 Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..1b52399 Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..ff10afd Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..115a4c7 Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..dcd3cd8 Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..459ca60 Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..8ca12fe Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..8e19b41 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..b824ebd Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..4c19a13 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml new file mode 100755 index 0000000..6297e41 --- /dev/null +++ b/android/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Contact-19 + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..b107702 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,6 @@ + + + diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..d46b8f8 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,44 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + ext { + buildToolsVersion = "28.0.3" + minSdkVersion = 16 + compileSdkVersion = 28 + targetSdkVersion = 28 + googlePlayServicesAuthVersion = "16.0.1" + googlePlayServicesLocationVersion = "17.0.0" + appCompatVersion = "1.0.2" + } + repositories { + google() + jcenter() + mavenCentral() + } + dependencies { + classpath("com.android.tools.build:gradle:3.5.2") + // classpath 'com.google.gms:google-services:4.2.0' + classpath("com.google.gms:google-services:4.3.3") + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + mavenLocal() + maven { + // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm + url("$rootDir/../node_modules/react-native/android") + } + maven { + // Android JSC is installed from npm + url("$rootDir/../node_modules/jsc-android/dist") + } + + google() + jcenter() + maven { url 'https://www.jitpack.io' } + } +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..175928f --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,32 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx10248m -XX:MaxPermSize=256m +org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true +# Version of flipper SDK to use with React Native +FLIPPER_VERSION=0.33.1 + +MYAPP_RELEASE_STORE_FILE= +MYAPP_RELEASE_KEY_ALIAS= +MYAPP_RELEASE_STORE_PASSWORD= +MYAPP_RELEASE_KEY_PASSWORD= \ No newline at end of file diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..5c2d1cf Binary files /dev/null and b/android/gradle/wrapper/gradle-wrapper.jar differ diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..1ba7206 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-all.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/android/gradlew b/android/gradlew new file mode 100755 index 0000000..83f2acf --- /dev/null +++ b/android/gradlew @@ -0,0 +1,188 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat new file mode 100644 index 0000000..15e1ee3 --- /dev/null +++ b/android/gradlew.bat @@ -0,0 +1,100 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem http://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100755 index 0000000..781f004 --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,3 @@ +rootProject.name = 'contact19' +apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) +include ':app' diff --git a/app.json b/app.json new file mode 100644 index 0000000..6130222 --- /dev/null +++ b/app.json @@ -0,0 +1,4 @@ +{ + "name": "contact19", + "displayName": "contact19" +} \ No newline at end of file diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..f842b77 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: ['module:metro-react-native-babel-preset'], +}; diff --git a/firebase.json b/firebase.json new file mode 100644 index 0000000..60215b0 --- /dev/null +++ b/firebase.json @@ -0,0 +1,5 @@ +{ + "react-native": { + "messaging_android_notification_channel_id": "CHANNEL_NAME" + } +} diff --git a/index.js b/index.js new file mode 100644 index 0000000..5dd3a3c --- /dev/null +++ b/index.js @@ -0,0 +1,5 @@ +import {AppRegistry} from 'react-native'; +import {name as appName} from './app.json'; +import App from './src/App'; + +AppRegistry.registerComponent(appName, () => App); diff --git a/ios/Podfile b/ios/Podfile new file mode 100644 index 0000000..4b99677 --- /dev/null +++ b/ios/Podfile @@ -0,0 +1,96 @@ +platform :ios, '9.0' +require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' + +def add_flipper_pods!(versions = {}) + versions['Flipper'] ||= '~> 0.33.1' + versions['DoubleConversion'] ||= '1.1.7' + versions['Flipper-Folly'] ||= '~> 2.1' + versions['Flipper-Glog'] ||= '0.3.6' + versions['Flipper-PeerTalk'] ||= '~> 0.0.4' + versions['Flipper-RSocket'] ||= '~> 1.0' + pod 'FlipperKit', versions['Flipper'], :configuration => 'Debug' + pod 'FlipperKit/FlipperKitLayoutPlugin', versions['Flipper'], :configuration => 'Debug' + pod 'FlipperKit/SKIOSNetworkPlugin', versions['Flipper'], :configuration => 'Debug' + pod 'FlipperKit/FlipperKitUserDefaultsPlugin', versions['Flipper'], :configuration => 'Debug' + pod 'FlipperKit/FlipperKitReactPlugin', versions['Flipper'], :configuration => 'Debug' + # List all transitive dependencies for FlipperKit pods + # to avoid them being linked in Release builds + pod 'Flipper', versions['Flipper'], :configuration => 'Debug' + pod 'Flipper-DoubleConversion', versions['DoubleConversion'], :configuration => 'Debug' + pod 'Flipper-Folly', versions['Flipper-Folly'], :configuration => 'Debug' + pod 'Flipper-Glog', versions['Flipper-Glog'], :configuration => 'Debug' + pod 'Flipper-PeerTalk', versions['Flipper-PeerTalk'], :configuration => 'Debug' + pod 'Flipper-RSocket', versions['Flipper-RSocket'], :configuration => 'Debug' + pod 'FlipperKit/Core', versions['Flipper'], :configuration => 'Debug' + pod 'FlipperKit/CppBridge', versions['Flipper'], :configuration => 'Debug' + pod 'FlipperKit/FBCxxFollyDynamicConvert', versions['Flipper'], :configuration => 'Debug' + pod 'FlipperKit/FBDefines', versions['Flipper'], :configuration => 'Debug' + pod 'FlipperKit/FKPortForwarding', versions['Flipper'], :configuration => 'Debug' + pod 'FlipperKit/FlipperKitHighlightOverlay', versions['Flipper'], :configuration => 'Debug' + pod 'FlipperKit/FlipperKitLayoutTextSearchable', versions['Flipper'], :configuration => 'Debug' + pod 'FlipperKit/FlipperKitNetworkPlugin', versions['Flipper'], :configuration => 'Debug' +end +# Post Install processing for Flipper +def flipper_post_install(installer) + installer.pods_project.targets.each do |target| + if target.name == 'YogaKit' + target.build_configurations.each do |config| + config.build_settings['SWIFT_VERSION'] = '4.1' + end + end + end +end + +target 'contact19' do + # Pods for contact19 + pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector" + pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec" + pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired" + pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety" + pod 'React', :path => '../node_modules/react-native/' + pod 'React-Core', :path => '../node_modules/react-native/' + pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules' + pod 'React-Core/DevSupport', :path => '../node_modules/react-native/' + pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS' + pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation' + pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob' + pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image' + pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS' + pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network' + pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings' + pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text' + pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration' + pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/' + + pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact' + pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi' + pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor' + pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector' + pod 'ReactCommon/callinvoker', :path => "../node_modules/react-native/ReactCommon" + pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon" + pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga', :modular_headers => true + + pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec' + pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec' + pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec' + + pod 'GoogleSignIn', '~> 5.0.2' + + permissions_path = '../node_modules/react-native-permissions/ios' + pod 'Permission-LocationAlways', :path => "#{permissions_path}/LocationAlways.podspec" + pod 'Permission-LocationWhenInUse', :path => "#{permissions_path}/LocationWhenInUse.podspec" + pod 'Permission-Notifications', :path => "#{permissions_path}/Notifications.podspec" + + pod 'react-native-geolocation', path: '../node_modules/@react-native-community/geolocation' + + use_native_modules! + + # Enables Flipper. + # + # Note that if you have use_frameworks! enabled, Flipper will not work and + # you should disable these next few lines. + add_flipper_pods! + post_install do |installer| + flipper_post_install(installer) + end +end diff --git a/ios/Podfile.lock b/ios/Podfile.lock new file mode 100644 index 0000000..2c3760f --- /dev/null +++ b/ios/Podfile.lock @@ -0,0 +1,802 @@ +PODS: + - AppAuth (1.3.0): + - AppAuth/Core (= 1.3.0) + - AppAuth/ExternalUserAgent (= 1.3.0) + - AppAuth/Core (1.3.0) + - AppAuth/ExternalUserAgent (1.3.0) + - appcenter-analytics (3.0.1): + - AppCenter/Analytics + - AppCenterReactNativeShared + - React + - appcenter-core (3.0.1): + - AppCenterReactNativeShared + - React + - appcenter-crashes (3.0.1): + - AppCenter/Crashes + - AppCenterReactNativeShared + - React + - AppCenter/Analytics (3.1.0): + - AppCenter/Core + - AppCenter/Core (3.1.0) + - AppCenter/Crashes (3.1.0): + - AppCenter/Core + - AppCenterReactNativeShared (3.0.1): + - AppCenter/Core (= 3.1.0) + - boost-for-react-native (1.63.0) + - CocoaAsyncSocket (7.6.4) + - CocoaLibEvent (1.0.0) + - CocoaLumberjack (3.5.3): + - CocoaLumberjack/Core (= 3.5.3) + - CocoaLumberjack/Core (3.5.3) + - DoubleConversion (1.1.6) + - FBLazyVector (0.62.2) + - FBReactNativeSpec (0.62.2): + - Folly (= 2018.10.22.00) + - RCTRequired (= 0.62.2) + - RCTTypeSafety (= 0.62.2) + - React-Core (= 0.62.2) + - React-jsi (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - FBSDKCoreKit (5.8.0): + - FBSDKCoreKit/Basics (= 5.8.0) + - FBSDKCoreKit/Core (= 5.8.0) + - FBSDKCoreKit/Basics (5.8.0) + - FBSDKCoreKit/Core (5.8.0): + - FBSDKCoreKit/Basics + - FBSDKLoginKit (5.8.0): + - FBSDKLoginKit/Login (= 5.8.0) + - FBSDKLoginKit/Login (5.8.0): + - FBSDKCoreKit (~> 5.0) + - FBSDKShareKit (5.8.0): + - FBSDKShareKit/Share (= 5.8.0) + - FBSDKShareKit/Share (5.8.0): + - FBSDKCoreKit (~> 5.0) + - Firebase/Core (6.13.0): + - Firebase/CoreOnly + - FirebaseAnalytics (= 6.1.6) + - Firebase/CoreOnly (6.13.0): + - FirebaseCore (= 6.4.0) + - Firebase/Messaging (6.13.0): + - Firebase/CoreOnly + - FirebaseMessaging (~> 4.1.9) + - FirebaseAnalytics (6.1.6): + - FirebaseCore (~> 6.4) + - FirebaseInstanceID (~> 4.2) + - GoogleAppMeasurement (= 6.1.6) + - GoogleUtilities/AppDelegateSwizzler (~> 6.0) + - GoogleUtilities/MethodSwizzler (~> 6.0) + - GoogleUtilities/Network (~> 6.0) + - "GoogleUtilities/NSData+zlib (~> 6.0)" + - nanopb (= 0.3.9011) + - FirebaseAnalyticsInterop (1.5.0) + - FirebaseCore (6.4.0): + - FirebaseCoreDiagnostics (~> 1.0) + - FirebaseCoreDiagnosticsInterop (~> 1.0) + - GoogleUtilities/Environment (~> 6.2) + - GoogleUtilities/Logger (~> 6.2) + - FirebaseCoreDiagnostics (1.2.3): + - FirebaseCoreDiagnosticsInterop (~> 1.2) + - GoogleDataTransportCCTSupport (~> 2.0) + - GoogleUtilities/Environment (~> 6.5) + - GoogleUtilities/Logger (~> 6.5) + - nanopb (~> 0.3.901) + - FirebaseCoreDiagnosticsInterop (1.2.0) + - FirebaseInstanceID (4.2.7): + - FirebaseCore (~> 6.0) + - GoogleUtilities/Environment (~> 6.0) + - GoogleUtilities/UserDefaults (~> 6.0) + - FirebaseMessaging (4.1.10): + - FirebaseAnalyticsInterop (~> 1.3) + - FirebaseCore (~> 6.2) + - FirebaseInstanceID (~> 4.1) + - GoogleUtilities/AppDelegateSwizzler (~> 6.2) + - GoogleUtilities/Environment (~> 6.2) + - GoogleUtilities/Reachability (~> 6.2) + - GoogleUtilities/UserDefaults (~> 6.2) + - Protobuf (>= 3.9.2, ~> 3.9) + - Flipper (0.33.1): + - Flipper-Folly (~> 2.1) + - Flipper-RSocket (~> 1.0) + - Flipper-DoubleConversion (1.1.7) + - Flipper-Folly (2.2.0): + - boost-for-react-native + - CocoaLibEvent (~> 1.0) + - Flipper-DoubleConversion + - Flipper-Glog + - OpenSSL-Universal (= 1.0.2.19) + - Flipper-Glog (0.3.6) + - Flipper-PeerTalk (0.0.4) + - Flipper-RSocket (1.1.0): + - Flipper-Folly (~> 2.2) + - FlipperKit (0.33.1): + - FlipperKit/Core (= 0.33.1) + - FlipperKit/Core (0.33.1): + - Flipper (~> 0.33.1) + - FlipperKit/CppBridge + - FlipperKit/FBCxxFollyDynamicConvert + - FlipperKit/FBDefines + - FlipperKit/FKPortForwarding + - FlipperKit/CppBridge (0.33.1): + - Flipper (~> 0.33.1) + - FlipperKit/FBCxxFollyDynamicConvert (0.33.1): + - Flipper-Folly (~> 2.1) + - FlipperKit/FBDefines (0.33.1) + - FlipperKit/FKPortForwarding (0.33.1): + - CocoaAsyncSocket (~> 7.6) + - Flipper-PeerTalk (~> 0.0.4) + - FlipperKit/FlipperKitHighlightOverlay (0.33.1) + - FlipperKit/FlipperKitLayoutPlugin (0.33.1): + - FlipperKit/Core + - FlipperKit/FlipperKitHighlightOverlay + - FlipperKit/FlipperKitLayoutTextSearchable + - YogaKit (~> 1.18) + - FlipperKit/FlipperKitLayoutTextSearchable (0.33.1) + - FlipperKit/FlipperKitNetworkPlugin (0.33.1): + - FlipperKit/Core + - FlipperKit/FlipperKitReactPlugin (0.33.1): + - FlipperKit/Core + - FlipperKit/FlipperKitUserDefaultsPlugin (0.33.1): + - FlipperKit/Core + - FlipperKit/SKIOSNetworkPlugin (0.33.1): + - FlipperKit/Core + - FlipperKit/FlipperKitNetworkPlugin + - Folly (2018.10.22.00): + - boost-for-react-native + - DoubleConversion + - Folly/Default (= 2018.10.22.00) + - glog + - Folly/Default (2018.10.22.00): + - boost-for-react-native + - DoubleConversion + - glog + - glog (0.3.5) + - GoogleAppMeasurement (6.1.6): + - GoogleUtilities/AppDelegateSwizzler (~> 6.0) + - GoogleUtilities/MethodSwizzler (~> 6.0) + - GoogleUtilities/Network (~> 6.0) + - "GoogleUtilities/NSData+zlib (~> 6.0)" + - nanopb (= 0.3.9011) + - GoogleDataTransport (5.1.1) + - GoogleDataTransportCCTSupport (2.0.2): + - GoogleDataTransport (~> 5.1) + - nanopb (~> 0.3.901) + - GoogleSignIn (5.0.2): + - AppAuth (~> 1.2) + - GTMAppAuth (~> 1.0) + - GTMSessionFetcher/Core (~> 1.1) + - GoogleUtilities/AppDelegateSwizzler (6.5.2): + - GoogleUtilities/Environment + - GoogleUtilities/Logger + - GoogleUtilities/Network + - GoogleUtilities/Environment (6.5.2) + - GoogleUtilities/Logger (6.5.2): + - GoogleUtilities/Environment + - GoogleUtilities/MethodSwizzler (6.5.2): + - GoogleUtilities/Logger + - GoogleUtilities/Network (6.5.2): + - GoogleUtilities/Logger + - "GoogleUtilities/NSData+zlib" + - GoogleUtilities/Reachability + - "GoogleUtilities/NSData+zlib (6.5.2)" + - GoogleUtilities/Reachability (6.5.2): + - GoogleUtilities/Logger + - GoogleUtilities/UserDefaults (6.5.2): + - GoogleUtilities/Logger + - GTMAppAuth (1.0.0): + - AppAuth/Core (~> 1.0) + - GTMSessionFetcher (~> 1.1) + - GTMSessionFetcher (1.3.1): + - GTMSessionFetcher/Full (= 1.3.1) + - GTMSessionFetcher/Core (1.3.1) + - GTMSessionFetcher/Full (1.3.1): + - GTMSessionFetcher/Core (= 1.3.1) + - nanopb (0.3.9011): + - nanopb/decode (= 0.3.9011) + - nanopb/encode (= 0.3.9011) + - nanopb/decode (0.3.9011) + - nanopb/encode (0.3.9011) + - OpenSSL-Universal (1.0.2.19): + - OpenSSL-Universal/Static (= 1.0.2.19) + - OpenSSL-Universal/Static (1.0.2.19) + - Permission-LocationAlways (2.1.1): + - RNPermissions + - Permission-LocationWhenInUse (2.1.1): + - RNPermissions + - Permission-Notifications (2.1.1): + - RNPermissions + - Protobuf (3.11.4) + - RCTRequired (0.62.2) + - RCTRestart (0.0.14): + - React + - RCTTypeSafety (0.62.2): + - FBLazyVector (= 0.62.2) + - Folly (= 2018.10.22.00) + - RCTRequired (= 0.62.2) + - React-Core (= 0.62.2) + - React (0.62.2): + - React-Core (= 0.62.2) + - React-Core/DevSupport (= 0.62.2) + - React-Core/RCTWebSocket (= 0.62.2) + - React-RCTActionSheet (= 0.62.2) + - React-RCTAnimation (= 0.62.2) + - React-RCTBlob (= 0.62.2) + - React-RCTImage (= 0.62.2) + - React-RCTLinking (= 0.62.2) + - React-RCTNetwork (= 0.62.2) + - React-RCTSettings (= 0.62.2) + - React-RCTText (= 0.62.2) + - React-RCTVibration (= 0.62.2) + - React-Core (0.62.2): + - Folly (= 2018.10.22.00) + - glog + - React-Core/Default (= 0.62.2) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) + - Yoga + - React-Core/CoreModulesHeaders (0.62.2): + - Folly (= 2018.10.22.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) + - Yoga + - React-Core/Default (0.62.2): + - Folly (= 2018.10.22.00) + - glog + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) + - Yoga + - React-Core/DevSupport (0.62.2): + - Folly (= 2018.10.22.00) + - glog + - React-Core/Default (= 0.62.2) + - React-Core/RCTWebSocket (= 0.62.2) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) + - React-jsinspector (= 0.62.2) + - Yoga + - React-Core/RCTActionSheetHeaders (0.62.2): + - Folly (= 2018.10.22.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) + - Yoga + - React-Core/RCTAnimationHeaders (0.62.2): + - Folly (= 2018.10.22.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) + - Yoga + - React-Core/RCTBlobHeaders (0.62.2): + - Folly (= 2018.10.22.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) + - Yoga + - React-Core/RCTImageHeaders (0.62.2): + - Folly (= 2018.10.22.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) + - Yoga + - React-Core/RCTLinkingHeaders (0.62.2): + - Folly (= 2018.10.22.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) + - Yoga + - React-Core/RCTNetworkHeaders (0.62.2): + - Folly (= 2018.10.22.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) + - Yoga + - React-Core/RCTSettingsHeaders (0.62.2): + - Folly (= 2018.10.22.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) + - Yoga + - React-Core/RCTTextHeaders (0.62.2): + - Folly (= 2018.10.22.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) + - Yoga + - React-Core/RCTVibrationHeaders (0.62.2): + - Folly (= 2018.10.22.00) + - glog + - React-Core/Default + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) + - Yoga + - React-Core/RCTWebSocket (0.62.2): + - Folly (= 2018.10.22.00) + - glog + - React-Core/Default (= 0.62.2) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsiexecutor (= 0.62.2) + - Yoga + - React-CoreModules (0.62.2): + - FBReactNativeSpec (= 0.62.2) + - Folly (= 2018.10.22.00) + - RCTTypeSafety (= 0.62.2) + - React-Core/CoreModulesHeaders (= 0.62.2) + - React-RCTImage (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - React-cxxreact (0.62.2): + - boost-for-react-native (= 1.63.0) + - DoubleConversion + - Folly (= 2018.10.22.00) + - glog + - React-jsinspector (= 0.62.2) + - React-jsi (0.62.2): + - boost-for-react-native (= 1.63.0) + - DoubleConversion + - Folly (= 2018.10.22.00) + - glog + - React-jsi/Default (= 0.62.2) + - React-jsi/Default (0.62.2): + - boost-for-react-native (= 1.63.0) + - DoubleConversion + - Folly (= 2018.10.22.00) + - glog + - React-jsiexecutor (0.62.2): + - DoubleConversion + - Folly (= 2018.10.22.00) + - glog + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - React-jsinspector (0.62.2) + - react-native-fbsdk (1.1.2): + - React + - react-native-fbsdk/Core (= 1.1.2) + - react-native-fbsdk/Login (= 1.1.2) + - react-native-fbsdk/Share (= 1.1.2) + - react-native-fbsdk/Core (1.1.2): + - FBSDKCoreKit (= 5.8) + - React + - react-native-fbsdk/Login (1.1.2): + - FBSDKLoginKit (= 5.8) + - React + - react-native-fbsdk/Share (1.1.2): + - FBSDKShareKit (= 5.8) + - React + - react-native-flipper (0.37.0): + - React + - react-native-geolocation (1.4.2): + - React + - react-native-safe-area-context (0.7.3): + - React + - React-RCTActionSheet (0.62.2): + - React-Core/RCTActionSheetHeaders (= 0.62.2) + - React-RCTAnimation (0.62.2): + - FBReactNativeSpec (= 0.62.2) + - Folly (= 2018.10.22.00) + - RCTTypeSafety (= 0.62.2) + - React-Core/RCTAnimationHeaders (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - React-RCTBlob (0.62.2): + - FBReactNativeSpec (= 0.62.2) + - Folly (= 2018.10.22.00) + - React-Core/RCTBlobHeaders (= 0.62.2) + - React-Core/RCTWebSocket (= 0.62.2) + - React-jsi (= 0.62.2) + - React-RCTNetwork (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - React-RCTImage (0.62.2): + - FBReactNativeSpec (= 0.62.2) + - Folly (= 2018.10.22.00) + - RCTTypeSafety (= 0.62.2) + - React-Core/RCTImageHeaders (= 0.62.2) + - React-RCTNetwork (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - React-RCTLinking (0.62.2): + - FBReactNativeSpec (= 0.62.2) + - React-Core/RCTLinkingHeaders (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - React-RCTNetwork (0.62.2): + - FBReactNativeSpec (= 0.62.2) + - Folly (= 2018.10.22.00) + - RCTTypeSafety (= 0.62.2) + - React-Core/RCTNetworkHeaders (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - React-RCTSettings (0.62.2): + - FBReactNativeSpec (= 0.62.2) + - Folly (= 2018.10.22.00) + - RCTTypeSafety (= 0.62.2) + - React-Core/RCTSettingsHeaders (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - React-RCTText (0.62.2): + - React-Core/RCTTextHeaders (= 0.62.2) + - React-RCTVibration (0.62.2): + - FBReactNativeSpec (= 0.62.2) + - Folly (= 2018.10.22.00) + - React-Core/RCTVibrationHeaders (= 0.62.2) + - ReactCommon/turbomodule/core (= 0.62.2) + - ReactCommon/callinvoker (0.62.2): + - DoubleConversion + - Folly (= 2018.10.22.00) + - glog + - React-cxxreact (= 0.62.2) + - ReactCommon/turbomodule/core (0.62.2): + - DoubleConversion + - Folly (= 2018.10.22.00) + - glog + - React-Core (= 0.62.2) + - React-cxxreact (= 0.62.2) + - React-jsi (= 0.62.2) + - ReactCommon/callinvoker (= 0.62.2) + - RNAppleAuthentication (0.2.0): + - React + - RNBackgroundFetch (3.0.4): + - React + - RNBackgroundGeolocation (3.6.2): + - CocoaLumberjack (~> 3.5.1) + - React + - RNCAsyncStorage (1.9.0): + - React + - RNCMaskedView (0.1.9): + - React + - RNDeviceInfo (5.5.4): + - React + - RNFBApp (6.4.0): + - Firebase/Core (~> 6.13.0) + - React + - RNFBMessaging (6.4.0): + - Firebase/Core (~> 6.13.0) + - Firebase/Messaging (~> 6.13.0) + - React + - RNFBApp + - RNGestureHandler (1.6.1): + - React + - RNGoogleSignin (4.0.0): + - GoogleSignIn (~> 5.0.0) + - React + - RNPermissions (2.1.1): + - React + - RNReanimated (1.8.0): + - React + - RNScreens (2.4.0): + - React + - RNSVG (12.1.0): + - React + - RNVectorIcons (6.6.0): + - React + - Yoga (1.14.0) + - YogaKit (1.18.1): + - Yoga (~> 1.14) + +DEPENDENCIES: + - appcenter-analytics (from `../node_modules/appcenter-analytics/ios`) + - appcenter-core (from `../node_modules/appcenter/ios`) + - appcenter-crashes (from `../node_modules/appcenter-crashes/ios`) + - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) + - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) + - FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`) + - Flipper (~> 0.33.1) + - Flipper-DoubleConversion (= 1.1.7) + - Flipper-Folly (~> 2.1) + - Flipper-Glog (= 0.3.6) + - Flipper-PeerTalk (~> 0.0.4) + - Flipper-RSocket (~> 1.0) + - FlipperKit (~> 0.33.1) + - FlipperKit/Core (~> 0.33.1) + - FlipperKit/CppBridge (~> 0.33.1) + - FlipperKit/FBCxxFollyDynamicConvert (~> 0.33.1) + - FlipperKit/FBDefines (~> 0.33.1) + - FlipperKit/FKPortForwarding (~> 0.33.1) + - FlipperKit/FlipperKitHighlightOverlay (~> 0.33.1) + - FlipperKit/FlipperKitLayoutPlugin (~> 0.33.1) + - FlipperKit/FlipperKitLayoutTextSearchable (~> 0.33.1) + - FlipperKit/FlipperKitNetworkPlugin (~> 0.33.1) + - FlipperKit/FlipperKitReactPlugin (~> 0.33.1) + - FlipperKit/FlipperKitUserDefaultsPlugin (~> 0.33.1) + - FlipperKit/SKIOSNetworkPlugin (~> 0.33.1) + - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`) + - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) + - GoogleSignIn (~> 5.0.2) + - Permission-LocationAlways (from `../node_modules/react-native-permissions/ios/LocationAlways.podspec`) + - Permission-LocationWhenInUse (from `../node_modules/react-native-permissions/ios/LocationWhenInUse.podspec`) + - Permission-Notifications (from `../node_modules/react-native-permissions/ios/Notifications.podspec`) + - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) + - RCTRestart (from `../node_modules/react-native-restart`) + - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) + - React (from `../node_modules/react-native/`) + - React-Core (from `../node_modules/react-native/`) + - React-Core/DevSupport (from `../node_modules/react-native/`) + - React-Core/RCTWebSocket (from `../node_modules/react-native/`) + - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) + - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) + - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) + - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) + - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) + - react-native-fbsdk (from `../node_modules/react-native-fbsdk`) + - react-native-flipper (from `../node_modules/react-native-flipper`) + - "react-native-geolocation (from `../node_modules/@react-native-community/geolocation`)" + - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) + - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) + - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) + - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) + - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) + - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) + - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) + - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) + - React-RCTText (from `../node_modules/react-native/Libraries/Text`) + - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) + - ReactCommon/callinvoker (from `../node_modules/react-native/ReactCommon`) + - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) + - "RNAppleAuthentication (from `../node_modules/@invertase/react-native-apple-authentication`)" + - RNBackgroundFetch (from `../node_modules/react-native-background-fetch`) + - RNBackgroundGeolocation (from `../node_modules/react-native-background-geolocation`) + - "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)" + - "RNCMaskedView (from `../node_modules/@react-native-community/masked-view`)" + - RNDeviceInfo (from `../node_modules/react-native-device-info`) + - "RNFBApp (from `../node_modules/@react-native-firebase/app`)" + - "RNFBMessaging (from `../node_modules/@react-native-firebase/messaging`)" + - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) + - "RNGoogleSignin (from `../node_modules/@react-native-community/google-signin`)" + - RNPermissions (from `../node_modules/react-native-permissions`) + - RNReanimated (from `../node_modules/react-native-reanimated`) + - RNScreens (from `../node_modules/react-native-screens`) + - RNSVG (from `../node_modules/react-native-svg`) + - RNVectorIcons (from `../node_modules/react-native-vector-icons`) + - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) + +SPEC REPOS: + trunk: + - AppAuth + - AppCenter + - AppCenterReactNativeShared + - boost-for-react-native + - CocoaAsyncSocket + - CocoaLibEvent + - CocoaLumberjack + - FBSDKCoreKit + - FBSDKLoginKit + - FBSDKShareKit + - Firebase + - FirebaseAnalytics + - FirebaseAnalyticsInterop + - FirebaseCore + - FirebaseCoreDiagnostics + - FirebaseCoreDiagnosticsInterop + - FirebaseInstanceID + - FirebaseMessaging + - Flipper + - Flipper-DoubleConversion + - Flipper-Folly + - Flipper-Glog + - Flipper-PeerTalk + - Flipper-RSocket + - FlipperKit + - GoogleAppMeasurement + - GoogleDataTransport + - GoogleDataTransportCCTSupport + - GoogleSignIn + - GoogleUtilities + - GTMAppAuth + - GTMSessionFetcher + - nanopb + - OpenSSL-Universal + - Protobuf + - YogaKit + +EXTERNAL SOURCES: + appcenter-analytics: + :path: "../node_modules/appcenter-analytics/ios" + appcenter-core: + :path: "../node_modules/appcenter/ios" + appcenter-crashes: + :path: "../node_modules/appcenter-crashes/ios" + DoubleConversion: + :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" + FBLazyVector: + :path: "../node_modules/react-native/Libraries/FBLazyVector" + FBReactNativeSpec: + :path: "../node_modules/react-native/Libraries/FBReactNativeSpec" + Folly: + :podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec" + glog: + :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" + Permission-LocationAlways: + :path: "../node_modules/react-native-permissions/ios/LocationAlways.podspec" + Permission-LocationWhenInUse: + :path: "../node_modules/react-native-permissions/ios/LocationWhenInUse.podspec" + Permission-Notifications: + :path: "../node_modules/react-native-permissions/ios/Notifications.podspec" + RCTRequired: + :path: "../node_modules/react-native/Libraries/RCTRequired" + RCTRestart: + :path: "../node_modules/react-native-restart" + RCTTypeSafety: + :path: "../node_modules/react-native/Libraries/TypeSafety" + React: + :path: "../node_modules/react-native/" + React-Core: + :path: "../node_modules/react-native/" + React-CoreModules: + :path: "../node_modules/react-native/React/CoreModules" + React-cxxreact: + :path: "../node_modules/react-native/ReactCommon/cxxreact" + React-jsi: + :path: "../node_modules/react-native/ReactCommon/jsi" + React-jsiexecutor: + :path: "../node_modules/react-native/ReactCommon/jsiexecutor" + React-jsinspector: + :path: "../node_modules/react-native/ReactCommon/jsinspector" + react-native-fbsdk: + :path: "../node_modules/react-native-fbsdk" + react-native-flipper: + :path: "../node_modules/react-native-flipper" + react-native-geolocation: + :path: "../node_modules/@react-native-community/geolocation" + react-native-safe-area-context: + :path: "../node_modules/react-native-safe-area-context" + React-RCTActionSheet: + :path: "../node_modules/react-native/Libraries/ActionSheetIOS" + React-RCTAnimation: + :path: "../node_modules/react-native/Libraries/NativeAnimation" + React-RCTBlob: + :path: "../node_modules/react-native/Libraries/Blob" + React-RCTImage: + :path: "../node_modules/react-native/Libraries/Image" + React-RCTLinking: + :path: "../node_modules/react-native/Libraries/LinkingIOS" + React-RCTNetwork: + :path: "../node_modules/react-native/Libraries/Network" + React-RCTSettings: + :path: "../node_modules/react-native/Libraries/Settings" + React-RCTText: + :path: "../node_modules/react-native/Libraries/Text" + React-RCTVibration: + :path: "../node_modules/react-native/Libraries/Vibration" + ReactCommon: + :path: "../node_modules/react-native/ReactCommon" + RNAppleAuthentication: + :path: "../node_modules/@invertase/react-native-apple-authentication" + RNBackgroundFetch: + :path: "../node_modules/react-native-background-fetch" + RNBackgroundGeolocation: + :path: "../node_modules/react-native-background-geolocation" + RNCAsyncStorage: + :path: "../node_modules/@react-native-community/async-storage" + RNCMaskedView: + :path: "../node_modules/@react-native-community/masked-view" + RNDeviceInfo: + :path: "../node_modules/react-native-device-info" + RNFBApp: + :path: "../node_modules/@react-native-firebase/app" + RNFBMessaging: + :path: "../node_modules/@react-native-firebase/messaging" + RNGestureHandler: + :path: "../node_modules/react-native-gesture-handler" + RNGoogleSignin: + :path: "../node_modules/@react-native-community/google-signin" + RNPermissions: + :path: "../node_modules/react-native-permissions" + RNReanimated: + :path: "../node_modules/react-native-reanimated" + RNScreens: + :path: "../node_modules/react-native-screens" + RNSVG: + :path: "../node_modules/react-native-svg" + RNVectorIcons: + :path: "../node_modules/react-native-vector-icons" + Yoga: + :path: "../node_modules/react-native/ReactCommon/yoga" + +SPEC CHECKSUMS: + AppAuth: 73574f3013a1e65b9601a3ddc8b3158cce68c09d + AppCenter: a1c30c47b7882a04a615ffa5ab26c007326436d8 + appcenter-analytics: 46b4bb2832834a198ba6c4058b4eb335386c1063 + appcenter-core: 765878f5c300907bb70dbb8e956c5a74df7ca23d + appcenter-crashes: 66b533f4e2a2278ddbd9369614fe18f0d7f58e47 + AppCenterReactNativeShared: a18a3da01dd569fbfbdd264c8c43491af6efa88d + boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c + CocoaAsyncSocket: 694058e7c0ed05a9e217d1b3c7ded962f4180845 + CocoaLibEvent: 2fab71b8bd46dd33ddb959f7928ec5909f838e3f + CocoaLumberjack: 2f44e60eb91c176d471fdba43b9e3eae6a721947 + DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2 + FBLazyVector: 4aab18c93cd9546e4bfed752b4084585eca8b245 + FBReactNativeSpec: 5465d51ccfeecb7faa12f9ae0024f2044ce4044e + FBSDKCoreKit: e7dcac0aabcfb09d0166998edd95fe3b05a0ce5d + FBSDKLoginKit: 1b0cf04df0370b37404213157b060d6666ede814 + FBSDKShareKit: abc29e1bb4f9f59f679adf1ae191006d68455f96 + Firebase: 458d109512200d1aca2e1b9b6cf7d68a869a4a46 + FirebaseAnalytics: 45f36d9c429fc91d206283900ab75390cd05ee8a + FirebaseAnalyticsInterop: 3f86269c38ae41f47afeb43ebf32a001f58fcdae + FirebaseCore: 307ea2508df730c5865334e41965bd9ea344b0e5 + FirebaseCoreDiagnostics: 13a6564cd6d5375066bbc8940cc1753af24497f3 + FirebaseCoreDiagnosticsInterop: 296e2c5f5314500a850ad0b83e9e7c10b011a850 + FirebaseInstanceID: ebd2ea79ee38db0cb5f5167b17a0d387e1cc7b6e + FirebaseMessaging: 089b7a4991425783384acc8bcefcd78c0af913bd + Flipper: 6c1f484f9a88d30ab3e272800d53688439e50f69 + Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 + Flipper-Folly: c12092ea368353b58e992843a990a3225d4533c3 + Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6 + Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 + Flipper-RSocket: 64e7431a55835eb953b0bf984ef3b90ae9fdddd7 + FlipperKit: 6dc9b8f4ef60d9e5ded7f0264db299c91f18832e + Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51 + glog: 1f3da668190260b06b429bb211bfbee5cd790c28 + GoogleAppMeasurement: dfe55efa543e899d906309eaaac6ca26d249862f + GoogleDataTransport: 6ffa4dd0b6d547f8d27b91bd92fa9e197a3f5f1f + GoogleDataTransportCCTSupport: 12f02e5c8f09c055615de90bcd5ba2c375546051 + GoogleSignIn: 7137d297ddc022a7e0aa4619c86d72c909fa7213 + GoogleUtilities: ad0f3b691c67909d03a3327cc205222ab8f42e0e + GTMAppAuth: 4deac854479704f348309e7b66189e604cf5e01e + GTMSessionFetcher: cea130bbfe5a7edc8d06d3f0d17288c32ffe9925 + nanopb: 18003b5e52dab79db540fe93fe9579f399bd1ccd + OpenSSL-Universal: 8b48cc0d10c1b2923617dfe5c178aa9ed2689355 + Permission-LocationAlways: 88ef003dd56cb9d136d884bcf20ebe2b34eed970 + Permission-LocationWhenInUse: ec0f1ad0b57c773b69ecf56a8fc15edeadb42a64 + Permission-Notifications: ce3c8648a2dd45af1d8daca246e37f141436b650 + Protobuf: 176220c526ad8bd09ab1fb40a978eac3fef665f7 + RCTRequired: cec6a34b3ac8a9915c37e7e4ad3aa74726ce4035 + RCTRestart: 3915cac548a37703970941ca33de79a304b8b247 + RCTTypeSafety: 93006131180074cffa227a1075802c89a49dd4ce + React: 29a8b1a02bd764fb7644ef04019270849b9a7ac3 + React-Core: b12bffb3f567fdf99510acb716ef1abd426e0e05 + React-CoreModules: 4a9b87bbe669d6c3173c0132c3328e3b000783d0 + React-cxxreact: e65f9c2ba0ac5be946f53548c1aaaee5873a8103 + React-jsi: b6dc94a6a12ff98e8877287a0b7620d365201161 + React-jsiexecutor: 1540d1c01bb493ae3124ed83351b1b6a155db7da + React-jsinspector: 512e560d0e985d0e8c479a54a4e5c147a9c83493 + react-native-fbsdk: c35d42169e64aaf66f01713c1e18d0674f7f6519 + react-native-flipper: 807ececa38ec7a1a66dff128b720bd3f53cc9d2d + react-native-geolocation: a7b94614afbd5fd8350e0233a2025c8228fc8041 + react-native-safe-area-context: e200d4433aba6b7e60b52da5f37af11f7a0b0392 + React-RCTActionSheet: f41ea8a811aac770e0cc6e0ad6b270c644ea8b7c + React-RCTAnimation: 49ab98b1c1ff4445148b72a3d61554138565bad0 + React-RCTBlob: a332773f0ebc413a0ce85942a55b064471587a71 + React-RCTImage: e70be9b9c74fe4e42d0005f42cace7981c994ac3 + React-RCTLinking: c1b9739a88d56ecbec23b7f63650e44672ab2ad2 + React-RCTNetwork: 73138b6f45e5a2768ad93f3d57873c2a18d14b44 + React-RCTSettings: 6e3738a87e21b39a8cb08d627e68c44acf1e325a + React-RCTText: fae545b10cfdb3d247c36c56f61a94cfd6dba41d + React-RCTVibration: 4356114dbcba4ce66991096e51a66e61eda51256 + ReactCommon: ed4e11d27609d571e7eee8b65548efc191116eb3 + RNAppleAuthentication: e875711ddda0361c2b7fca28fb6c64cdd94f7968 + RNBackgroundFetch: 388cf1595934d22fed275b8db9b48a28bb4eb7b6 + RNBackgroundGeolocation: 0064322f9b1aad51884ca10295297663631d3453 + RNCAsyncStorage: 453cd7c335ec9ba3b877e27d02238956b76f3268 + RNCMaskedView: 71fc32d971f03b7f03d6ab6b86b730c4ee64f5b6 + RNDeviceInfo: 6a3d16fce033f6979c4a6a41e62244d183e8c765 + RNFBApp: 69781cf10ce41f6f6db789e6264dd80119ef2fb7 + RNFBMessaging: 805710731a2b616030514f6f416e8787de521f41 + RNGestureHandler: 8f09cd560f8d533eb36da5a6c5a843af9f056b38 + RNGoogleSignin: 068788c1e83e5e05ef0bad090ba67fd8f963a2a3 + RNPermissions: 18cf517660d0247a4b66d21b6f85272fd1870cd2 + RNReanimated: 955cf4068714003d2f1a6e2bae3fb1118f359aff + RNScreens: b5c0e1b2b04512919e78bd3898e144a157ce2363 + RNSVG: ce9d996113475209013317e48b05c21ee988d42e + RNVectorIcons: 0bb4def82230be1333ddaeee9fcba45f0b288ed4 + Yoga: 3ebccbdd559724312790e7742142d062476b698e + YogaKit: f782866e155069a2cca2517aafea43200b01fd5a + +PODFILE CHECKSUM: d8ad2202487e68173ec804f07ed7f24b27c25052 + +COCOAPODS: 1.9.1 diff --git a/ios/contact19-Bridging-Header.h b/ios/contact19-Bridging-Header.h new file mode 100644 index 0000000..1b2cb5d --- /dev/null +++ b/ios/contact19-Bridging-Header.h @@ -0,0 +1,4 @@ +// +// Use this file to import your target's public headers that you would like to expose to Swift. +// + diff --git a/ios/contact19-tvOS/Info.plist b/ios/contact19-tvOS/Info.plist new file mode 100644 index 0000000..ecbd496 --- /dev/null +++ b/ios/contact19-tvOS/Info.plist @@ -0,0 +1,53 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSExceptionDomains + + localhost + + NSExceptionAllowsInsecureHTTPLoads + + + + + NSLocationWhenInUseUsageDescription + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/ios/contact19-tvOSTests/Info.plist b/ios/contact19-tvOSTests/Info.plist new file mode 100644 index 0000000..886825c --- /dev/null +++ b/ios/contact19-tvOSTests/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/ios/contact19.xcodeproj/project.pbxproj b/ios/contact19.xcodeproj/project.pbxproj new file mode 100644 index 0000000..1757f2f --- /dev/null +++ b/ios/contact19.xcodeproj/project.pbxproj @@ -0,0 +1,621 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 07EC8517C14A4CF6AFA830CF /* Montserrat-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 07B15D90561C40D8A3B63471 /* Montserrat-Bold.ttf */; }; + 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; + 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 5EB63C671F074C3D9603EFC9 /* Montserrat-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 60BB9563712646FD9EB64EF8 /* Montserrat-Regular.ttf */; }; + 69DBB54A08724CCBACDBB172 /* Montserrat-ExtraBold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = F3A8D93BFB3C4388AEB50380 /* Montserrat-ExtraBold.ttf */; }; + 9163E9F311FABA9D135B2208 /* libPods-contact19.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAB66A0F6488F7F92360653F /* libPods-contact19.a */; }; + C180FDE72437FE8400DA5F8A /* RNBackgroundFetch+AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C180FDE62437FE8400DA5F8A /* RNBackgroundFetch+AppDelegate.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; + 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 00E356F21AD99517003FC87E /* contact19Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = contact19Tests.m; sourceTree = ""; }; + 06D42DB9F87BD0BB04957066 /* Pods-contact19-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-contact19-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-contact19-tvOSTests/Pods-contact19-tvOSTests.debug.xcconfig"; sourceTree = ""; }; + 07B15D90561C40D8A3B63471 /* Montserrat-Bold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Montserrat-Bold.ttf"; path = "../Assets/Fonts/Montserrat-Bold.ttf"; sourceTree = ""; }; + 0C4B9408696F45BAA1142A07 /* FontAwesome5_Brands.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Brands.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf"; sourceTree = ""; }; + 13B07F961A680F5B00A75B9A /* Contact-19.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Contact-19.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = contact19/AppDelegate.h; sourceTree = ""; }; + 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = contact19/AppDelegate.m; sourceTree = ""; }; + 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = contact19/Images.xcassets; sourceTree = ""; }; + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = contact19/Info.plist; sourceTree = ""; }; + 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = contact19/main.m; sourceTree = ""; }; + 14614B0BA34845975B046AC2 /* Pods-contact19Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-contact19Tests.release.xcconfig"; path = "Target Support Files/Pods-contact19Tests/Pods-contact19Tests.release.xcconfig"; sourceTree = ""; }; + 381D16ED2A7707FC1E23DE5E /* Pods-contact19-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-contact19-tvOS.release.xcconfig"; path = "Target Support Files/Pods-contact19-tvOS/Pods-contact19-tvOS.release.xcconfig"; sourceTree = ""; }; + 3BB4A25705091B1914182A36 /* libPods-contact19-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-contact19-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 41C9F580EF014A14980EA763 /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; }; + 584755E4637F47E7846890F1 /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = ""; }; + 5A93918B40E841F89AEC24AA /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; }; + 60339017445A46AC8FF9C167 /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = ""; }; + 60BB9563712646FD9EB64EF8 /* Montserrat-Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Montserrat-Regular.ttf"; path = "../Assets/Fonts/Montserrat-Regular.ttf"; sourceTree = ""; }; + 6147E2F56BE84C95999DC2F7 /* FontAwesome5_Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Regular.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf"; sourceTree = ""; }; + 6887D284A7EC4997B4D8EDB7 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialCommunityIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = ""; }; + 757A5C380EBA4637857C1AFD /* Feather.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Feather.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Feather.ttf"; sourceTree = ""; }; + 764C65876D874BB783AD47BB /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = ""; }; + 77A8FA3813E27E1788898AD1 /* libPods-contact19Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-contact19Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 78949EF72AA0496982FD6523 /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; }; + 90A3FB01875C4C59A89E343C /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = ""; }; + 938578D14FE13CCCEFAC6811 /* libPods-contact19-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-contact19-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + A419A7054A984F0E93EB7F08 /* AntDesign.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = AntDesign.ttf; path = "../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf"; sourceTree = ""; }; + B7FEDAF2E2FD1E644BD2F6F7 /* Pods-contact19.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-contact19.release.xcconfig"; path = "Target Support Files/Pods-contact19/Pods-contact19.release.xcconfig"; sourceTree = ""; }; + C119F517242D7CAA003148D6 /* CONTACT-19.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = "CONTACT-19.entitlements"; path = "contact19/CONTACT-19.entitlements"; sourceTree = ""; }; + C13392AA2433F10100D3A1C5 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/LaunchScreen.strings; sourceTree = ""; }; + C180FDE62437FE8400DA5F8A /* RNBackgroundFetch+AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "RNBackgroundFetch+AppDelegate.m"; path = "../node_modules/react-native-background-fetch/ios/RNBackgroundFetch/RNBackgroundFetch+AppDelegate.m"; sourceTree = ""; }; + C1BA614B24412FAD008673D6 /* contact19-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "contact19-Bridging-Header.h"; sourceTree = ""; }; + C7EF24637B89AAE313E58AB8 /* Pods-contact19.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-contact19.debug.xcconfig"; path = "Target Support Files/Pods-contact19/Pods-contact19.debug.xcconfig"; sourceTree = ""; }; + D1CAD730791E4159A82F10A6 /* Fontisto.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Fontisto.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf"; sourceTree = ""; }; + D5301B56F3384A01977851C1 /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = ""; }; + D7B2534E36DE6366FC2727A9 /* Pods-contact19-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-contact19-tvOSTests.release.xcconfig"; path = "Target Support Files/Pods-contact19-tvOSTests/Pods-contact19-tvOSTests.release.xcconfig"; sourceTree = ""; }; + D998FDDB87F330B867BB5144 /* Pods-contact19Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-contact19Tests.debug.xcconfig"; path = "Target Support Files/Pods-contact19Tests/Pods-contact19Tests.debug.xcconfig"; sourceTree = ""; }; + DAB66A0F6488F7F92360653F /* libPods-contact19.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-contact19.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + E0BD91F0A0634E159021D317 /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = SimpleLineIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"; sourceTree = ""; }; + E9B1B33967E9A542CCFD5B19 /* Pods-contact19-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-contact19-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-contact19-tvOS/Pods-contact19-tvOS.debug.xcconfig"; sourceTree = ""; }; + ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; + ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; }; + F37D2E2CE6994AAA8282E7C8 /* FontAwesome5_Solid.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Solid.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf"; sourceTree = ""; }; + F3A8D93BFB3C4388AEB50380 /* Montserrat-ExtraBold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Montserrat-ExtraBold.ttf"; path = "../Assets/Fonts/Montserrat-ExtraBold.ttf"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9163E9F311FABA9D135B2208 /* libPods-contact19.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 00E356EF1AD99517003FC87E /* contact19Tests */ = { + isa = PBXGroup; + children = ( + 00E356F21AD99517003FC87E /* contact19Tests.m */, + 00E356F01AD99517003FC87E /* Supporting Files */, + ); + path = contact19Tests; + sourceTree = ""; + }; + 00E356F01AD99517003FC87E /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 00E356F11AD99517003FC87E /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 13B07FAE1A68108700A75B9A /* contact19 */ = { + isa = PBXGroup; + children = ( + C180FDE62437FE8400DA5F8A /* RNBackgroundFetch+AppDelegate.m */, + C119F517242D7CAA003148D6 /* CONTACT-19.entitlements */, + 008F07F21AC5B25A0029DE68 /* main.jsbundle */, + 13B07FAF1A68108700A75B9A /* AppDelegate.h */, + 13B07FB01A68108700A75B9A /* AppDelegate.m */, + 13B07FB51A68108700A75B9A /* Images.xcassets */, + 13B07FB61A68108700A75B9A /* Info.plist */, + 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, + 13B07FB71A68108700A75B9A /* main.m */, + C1BA614B24412FAD008673D6 /* contact19-Bridging-Header.h */, + ); + name = contact19; + sourceTree = ""; + }; + 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { + isa = PBXGroup; + children = ( + ED297162215061F000B7C4FE /* JavaScriptCore.framework */, + ED2971642150620600B7C4FE /* JavaScriptCore.framework */, + DAB66A0F6488F7F92360653F /* libPods-contact19.a */, + 938578D14FE13CCCEFAC6811 /* libPods-contact19-tvOS.a */, + 3BB4A25705091B1914182A36 /* libPods-contact19-tvOSTests.a */, + 77A8FA3813E27E1788898AD1 /* libPods-contact19Tests.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 313BA4E8E62445B78B0B1754 /* Resources */ = { + isa = PBXGroup; + children = ( + 07B15D90561C40D8A3B63471 /* Montserrat-Bold.ttf */, + F3A8D93BFB3C4388AEB50380 /* Montserrat-ExtraBold.ttf */, + 60BB9563712646FD9EB64EF8 /* Montserrat-Regular.ttf */, + A419A7054A984F0E93EB7F08 /* AntDesign.ttf */, + 764C65876D874BB783AD47BB /* Entypo.ttf */, + 584755E4637F47E7846890F1 /* EvilIcons.ttf */, + 757A5C380EBA4637857C1AFD /* Feather.ttf */, + 90A3FB01875C4C59A89E343C /* FontAwesome.ttf */, + 0C4B9408696F45BAA1142A07 /* FontAwesome5_Brands.ttf */, + 6147E2F56BE84C95999DC2F7 /* FontAwesome5_Regular.ttf */, + F37D2E2CE6994AAA8282E7C8 /* FontAwesome5_Solid.ttf */, + D1CAD730791E4159A82F10A6 /* Fontisto.ttf */, + 41C9F580EF014A14980EA763 /* Foundation.ttf */, + D5301B56F3384A01977851C1 /* Ionicons.ttf */, + 6887D284A7EC4997B4D8EDB7 /* MaterialCommunityIcons.ttf */, + 78949EF72AA0496982FD6523 /* MaterialIcons.ttf */, + 5A93918B40E841F89AEC24AA /* Octicons.ttf */, + E0BD91F0A0634E159021D317 /* SimpleLineIcons.ttf */, + 60339017445A46AC8FF9C167 /* Zocial.ttf */, + ); + name = Resources; + sourceTree = ""; + }; + 3533302E98B331218346361B /* Pods */ = { + isa = PBXGroup; + children = ( + C7EF24637B89AAE313E58AB8 /* Pods-contact19.debug.xcconfig */, + B7FEDAF2E2FD1E644BD2F6F7 /* Pods-contact19.release.xcconfig */, + E9B1B33967E9A542CCFD5B19 /* Pods-contact19-tvOS.debug.xcconfig */, + 381D16ED2A7707FC1E23DE5E /* Pods-contact19-tvOS.release.xcconfig */, + 06D42DB9F87BD0BB04957066 /* Pods-contact19-tvOSTests.debug.xcconfig */, + D7B2534E36DE6366FC2727A9 /* Pods-contact19-tvOSTests.release.xcconfig */, + D998FDDB87F330B867BB5144 /* Pods-contact19Tests.debug.xcconfig */, + 14614B0BA34845975B046AC2 /* Pods-contact19Tests.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + 832341AE1AAA6A7D00B99B32 /* Libraries */ = { + isa = PBXGroup; + children = ( + ); + name = Libraries; + sourceTree = ""; + }; + 83CBB9F61A601CBA00E9B192 = { + isa = PBXGroup; + children = ( + 13B07FAE1A68108700A75B9A /* contact19 */, + 832341AE1AAA6A7D00B99B32 /* Libraries */, + 00E356EF1AD99517003FC87E /* contact19Tests */, + 83CBBA001A601CBA00E9B192 /* Products */, + 2D16E6871FA4F8E400B85C8A /* Frameworks */, + 3533302E98B331218346361B /* Pods */, + 313BA4E8E62445B78B0B1754 /* Resources */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + usesTabs = 0; + }; + 83CBBA001A601CBA00E9B192 /* Products */ = { + isa = PBXGroup; + children = ( + 13B07F961A680F5B00A75B9A /* Contact-19.app */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 13B07F861A680F5B00A75B9A /* contact19 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "contact19" */; + buildPhases = ( + 8CC32F5E5D9FE6B4D5E4E833 /* [CP] Check Pods Manifest.lock */, + FD10A7F022414F080027D42C /* Start Packager */, + 13B07F871A680F5B00A75B9A /* Sources */, + 13B07F8C1A680F5B00A75B9A /* Frameworks */, + 13B07F8E1A680F5B00A75B9A /* Resources */, + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, + C6E4BA122162E71FAA9DACFC /* [CP] Copy Pods Resources */, + 46E60B543AB09805B68A2C04 /* [CP-User] [RNFB] Core Configuration */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = contact19; + productName = contact19; + productReference = 13B07F961A680F5B00A75B9A /* Contact-19.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 83CBB9F71A601CBA00E9B192 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1140; + ORGANIZATIONNAME = WeTheMakers; + TargetAttributes = { + 13B07F861A680F5B00A75B9A = { + DevelopmentTeam = DH3LQMHJA6; + LastSwiftMigration = 1140; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "contact19" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ar, + ); + mainGroup = 83CBB9F61A601CBA00E9B192; + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 13B07F861A680F5B00A75B9A /* contact19 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 13B07F8E1A680F5B00A75B9A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, + 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, + 07EC8517C14A4CF6AFA830CF /* Montserrat-Bold.ttf in Resources */, + 69DBB54A08724CCBACDBB172 /* Montserrat-ExtraBold.ttf in Resources */, + 5EB63C671F074C3D9603EFC9 /* Montserrat-Regular.ttf in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Bundle React Native code and images"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; + }; + 46E60B543AB09805B68A2C04 /* [CP-User] [RNFB] Core Configuration */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + name = "[CP-User] [RNFB] Core Configuration"; + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_JSON_ROOT=\"'react-native'\"\n_JSON_FILE_NAME='firebase.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getFirebaseJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> RNFB build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n _JSON_OUTPUT_BASE64=$(python -c 'import json,sys,base64;print(base64.b64encode(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"').read())['${_JSON_ROOT}'])))' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.messaging_auto_init_enabled\n _MESSAGING_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"messaging_auto_init_enabled\")\n if [[ $_MESSAGING_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseMessagingAutoInitEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_MESSAGING_AUTO_INIT\")\")\n fi\n\n # config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes usful\n _CRASHLYTICS_AUTO_DISABLE_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"crashlytics_disable_auto_disabler\")\n if [[ $_CRASHLYTICS_AUTO_DISABLE_ENABLED == \"true\" ]]; then\n echo \"Disabled Crashlytics auto disabler.\" # do nothing\n else\n _PLIST_ENTRY_KEYS+=(\"firebase_crashlytics_collection_enabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"NO\")\n fi\n\n # config.admob_delay_app_measurement_init\n _ADMOB_DELAY_APP_MEASUREMENT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"admob_delay_app_measurement_init\")\n if [[ $_ADMOB_DELAY_APP_MEASUREMENT == \"true\" ]]; then\n _PLIST_ENTRY_KEYS+=(\"GADDelayAppMeasurementInit\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"YES\")\n fi\n\n # config.admob_ios_app_id\n _ADMOB_IOS_APP_ID=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"admob_ios_app_id\")\n if [[ $_ADMOB_IOS_APP_ID ]]; then\n _PLIST_ENTRY_KEYS+=(\"GADApplicationIdentifier\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_ADMOB_IOS_APP_ID\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally \n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- RNFB build script finished\"\n\n"; + }; + 8CC32F5E5D9FE6B4D5E4E833 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-contact19-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + C6E4BA122162E71FAA9DACFC /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-contact19/Pods-contact19-resources.sh", + "${PODS_ROOT}/FBSDKCoreKit/FacebookSDKStrings.bundle", + "${PODS_ROOT}/GoogleSignIn/Resources/GoogleSignIn.bundle", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FacebookSDKStrings.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleSignIn.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-contact19/Pods-contact19-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + FD10A7F022414F080027D42C /* Start Packager */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Start Packager"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 13B07F871A680F5B00A75B9A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C180FDE72437FE8400DA5F8A /* RNBackgroundFetch+AppDelegate.m in Sources */, + 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, + 13B07FC11A68108700A75B9A /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { + isa = PBXVariantGroup; + children = ( + 13B07FB21A68108700A75B9A /* Base */, + C13392AA2433F10100D3A1C5 /* ar */, + ); + name = LaunchScreen.xib; + path = contact19; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 13B07F941A680F5B00A75B9A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C7EF24637B89AAE313E58AB8 /* Pods-contact19.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = "contact19/CONTACT-19.entitlements"; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Manual; + CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; + DEVELOPMENT_TEAM = DH3LQMHJA6; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = contact19/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) /usr/lib/swift @executable_path/Frameworks"; + MARKETING_VERSION = 1.0.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.contact19; + PRODUCT_NAME = "Contact-19"; + PROVISIONING_PROFILE_SPECIFIER = "match Development com.contact19"; + SWIFT_OBJC_BRIDGING_HEADER = "contact19-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 13B07F951A680F5B00A75B9A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B7FEDAF2E2FD1E644BD2F6F7 /* Pods-contact19.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = "contact19/CONTACT-19.entitlements"; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Manual; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = DH3LQMHJA6; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = contact19/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) /usr/lib/swift @executable_path/Frameworks"; + MARKETING_VERSION = 1.0.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.contact19; + PRODUCT_NAME = "Contact-19"; + PROVISIONING_PROFILE_SPECIFIER = "match Development com.contact19"; + SWIFT_OBJC_BRIDGING_HEADER = "contact19-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; + 83CBBA201A601CBA00E9B192 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LIBRARY_SEARCH_PATHS = ( + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 83CBBA211A601CBA00E9B192 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LIBRARY_SEARCH_PATHS = ( + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "contact19" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 13B07F941A680F5B00A75B9A /* Debug */, + 13B07F951A680F5B00A75B9A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "contact19" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83CBBA201A601CBA00E9B192 /* Debug */, + 83CBBA211A601CBA00E9B192 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; +} diff --git a/ios/contact19.xcworkspace/contents.xcworkspacedata b/ios/contact19.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..0f9847c --- /dev/null +++ b/ios/contact19.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/ios/contact19.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/contact19.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/contact19.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/contact19/AppDelegate.h b/ios/contact19/AppDelegate.h new file mode 100644 index 0000000..ef1de86 --- /dev/null +++ b/ios/contact19/AppDelegate.h @@ -0,0 +1,8 @@ +#import +#import + +@interface AppDelegate : UIResponder + +@property (nonatomic, strong) UIWindow *window; + +@end diff --git a/ios/contact19/AppDelegate.m b/ios/contact19/AppDelegate.m new file mode 100644 index 0000000..29f8453 --- /dev/null +++ b/ios/contact19/AppDelegate.m @@ -0,0 +1,61 @@ +#import "AppDelegate.h" + +#import +#import +#import +#import + +#import +#import +#import + +#import +#import +#import +#import + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + if ([FIRApp defaultApp] == nil) { + [FIRApp configure]; + } + + [[RCTI18nUtil sharedInstance] allowRTL:YES]; + + RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; + RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge + moduleName:@"contact19" + initialProperties:nil]; + + rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; + + self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; + UIViewController *rootViewController = [UIViewController new]; + rootViewController.view = rootView; + self.window.rootViewController = rootViewController; + [self.window makeKeyAndVisible]; + + [AppCenterReactNative register]; + [AppCenterReactNativeAnalytics registerWithInitiallyEnabled:true]; + [AppCenterReactNativeCrashes registerWithAutomaticProcessing]; + + [[FBSDKApplicationDelegate sharedInstance] application:application + didFinishLaunchingWithOptions:launchOptions]; + + [[TSBackgroundFetch sharedInstance] didFinishLaunching]; + + return YES; +} + +- (BOOL)application:(UIApplication *)application openURL:(nonnull NSURL *)url options:(nonnull NSDictionary *)options { + return [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url options:options] || [RNGoogleSignin application:application openURL:url options:options]; +} + +- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge +{ + return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; +} + +@end diff --git a/ios/contact19/Base.lproj/LaunchScreen.xib b/ios/contact19/Base.lproj/LaunchScreen.xib new file mode 100644 index 0000000..fa92403 --- /dev/null +++ b/ios/contact19/Base.lproj/LaunchScreen.xib @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/contact19/CONTACT-19.entitlements b/ios/contact19/CONTACT-19.entitlements new file mode 100644 index 0000000..80b5221 --- /dev/null +++ b/ios/contact19/CONTACT-19.entitlements @@ -0,0 +1,12 @@ + + + + + aps-environment + development + com.apple.developer.applesignin + + Default + + + diff --git a/ios/contact19/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/contact19/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..8121323 --- /dev/null +++ b/ios/contact19/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,53 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/contact19/Images.xcassets/Contents.json b/ios/contact19/Images.xcassets/Contents.json new file mode 100644 index 0000000..2d92bd5 --- /dev/null +++ b/ios/contact19/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/contact19/Info.plist b/ios/contact19/Info.plist new file mode 100644 index 0000000..4236113 --- /dev/null +++ b/ios/contact19/Info.plist @@ -0,0 +1,137 @@ + + + + + BGTaskSchedulerPermittedIdentifiers + + bundle + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + $(PRODUCT_NAME) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(MARKETING_VERSION) + CFBundleSignature + ???? + CFBundleURLTypes + + + CFBundleTypeRole + Editor + CFBundleURLSchemes + + URL + + + + CFBundleTypeRole + None + CFBundleURLSchemes + + fbAPPID + + + + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + FacebookAppID + APPID + FacebookDisplayName + APPNAME + LSApplicationQueriesSchemes + + fbapi + fbapi20130214 + fbapi20130410 + fbapi20130702 + fbapi20131010 + fbapi20131219 + fbapi20140410 + fbapi20140116 + fbapi20150313 + fbapi20150629 + fbapi20160328 + fbauth + fb-messenger-share-api + fbauth2 + fbshareextension + + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + NSExceptionDomains + + localhost + + NSExceptionAllowsInsecureHTTPLoads + + + + + NSLocationAlwaysAndWhenInUseUsageDescription + + NSLocationAlwaysUsageDescription + + NSLocationWhenInUseUsageDescription + + NSMotionUsageDescription + + UIAppFonts + + Montserrat-Bold.ttf + Montserrat-ExtraBold.ttf + Montserrat-Regular.ttf + AntDesign.ttf + Entypo.ttf + EvilIcons.ttf + Feather.ttf + FontAwesome.ttf + FontAwesome5_Brands.ttf + FontAwesome5_Regular.ttf + FontAwesome5_Solid.ttf + Fontisto.ttf + Foundation.ttf + Ionicons.ttf + MaterialCommunityIcons.ttf + MaterialIcons.ttf + Octicons.ttf + SimpleLineIcons.ttf + Zocial.ttf + + UIBackgroundModes + + fetch + location + processing + remote-notification + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UIStatusBarStyle + UIStatusBarStyleLightContent + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/ios/contact19/ar.lproj/LaunchScreen.strings b/ios/contact19/ar.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/contact19/ar.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/contact19/main.m b/ios/contact19/main.m new file mode 100644 index 0000000..b1df44b --- /dev/null +++ b/ios/contact19/main.m @@ -0,0 +1,9 @@ +#import + +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/ios/contact19Tests/Info.plist b/ios/contact19Tests/Info.plist new file mode 100644 index 0000000..ba72822 --- /dev/null +++ b/ios/contact19Tests/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/ios/contact19Tests/distance19Tests.m b/ios/contact19Tests/distance19Tests.m new file mode 100644 index 0000000..9759d7e --- /dev/null +++ b/ios/contact19Tests/distance19Tests.m @@ -0,0 +1,72 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#import +#import + +#import +#import + +#define TIMEOUT_SECONDS 600 +#define TEXT_TO_LOOK_FOR @"Welcome to React" + +@interface contact19Tests : XCTestCase + +@end + +@implementation contact19Tests + +- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test +{ + if (test(view)) { + return YES; + } + for (UIView *subview in [view subviews]) { + if ([self findSubviewInView:subview matching:test]) { + return YES; + } + } + return NO; +} + +- (void)testRendersWelcomeScreen +{ + UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; + NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; + BOOL foundElement = NO; + + __block NSString *redboxError = nil; +#ifdef DEBUG + RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { + if (level >= RCTLogLevelError) { + redboxError = message; + } + }); +#endif + + while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { + [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; + [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; + + foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) { + if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { + return YES; + } + return NO; + }]; + } + +#ifdef DEBUG + RCTSetLogFunction(RCTDefaultLogFunction); +#endif + + XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); + XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); +} + + +@end diff --git a/metro.config.js b/metro.config.js new file mode 100644 index 0000000..13a9642 --- /dev/null +++ b/metro.config.js @@ -0,0 +1,17 @@ +/** + * Metro configuration for React Native + * https://github.com/facebook/react-native + * + * @format + */ + +module.exports = { + transformer: { + getTransformOptions: async () => ({ + transform: { + experimentalImportSupport: false, + inlineRequires: false, + }, + }), + }, +}; diff --git a/package.json b/package.json new file mode 100644 index 0000000..0938121 --- /dev/null +++ b/package.json @@ -0,0 +1,125 @@ +{ + "name": "contact19", + "version": "1.0.0", + "scripts": { + "android": "react-native run-android", + "ios": "react-native run-ios", + "android:release": "react-native run-android --variant release", + "ios:release": "react-native run-ios --configuration Release", + "start": "react-native start", + "lint": "tslint 'src/**/*.{js,jsx,ts,tsx}' --fix", + "format": "prettier 'src/**/*.{js,jsx,ts,tsx,json,css,scss,md}' --write" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wethemakers-dev/contact-19-app.git", + "baseUrl": "https://github.com/wethemakers-dev/contact-19-app" + }, + "author": { + "name": "Ahmad Santarissy", + "email": "ahmad@wethemakers.dev" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/wethemakers-dev/contact-19-app/issues" + }, + "homepage": "https://github.com/wethemakers-dev/contact-19-app#readme", + "dependencies": { + "@invertase/react-native-apple-authentication": "^0.2.0", + "@react-native-community/async-storage": "^1.9.0", + "@react-native-community/google-signin": "^4.0.0", + "@react-native-community/masked-view": "^0.1.9", + "@react-native-firebase/app": "^6.4.0", + "@react-native-firebase/messaging": "^6.4.0", + "@react-navigation/native": "^5.1.5", + "@react-navigation/stack": "^5.2.10", + "appcenter": "^3.0.1", + "appcenter-analytics": "^3.0.1", + "appcenter-crashes": "^3.0.1", + "i18next": "^19.4.1", + "libphonenumber-js": "^1.7.50", + "lodash": "^4.17.15", + "moment": "^2.24.0", + "react": "16.11.0", + "react-i18next": "^11.3.4", + "react-native": "0.62.2", + "react-native-background-fetch": "^3.0.4", + "react-native-background-geolocation": "^3.6.2", + "react-native-confirmation-code-field": "^6.0.0", + "react-native-country-picker-modal": "^1.10.0", + "react-native-device-info": "^5.5.4", + "react-native-fbsdk": "^1.1.2", + "react-native-flipper": "^0.37.0", + "react-native-geolocation-service": "^4.0.0", + "react-native-gesture-handler": "^1.6.1", + "react-native-modal": "^11.5.6", + "react-native-permissions": "^2.1.1", + "react-native-picker-select": "^7.0.0", + "react-native-reanimated": "^1.8.0", + "react-native-restart": "^0.0.14", + "react-native-safe-area-context": "^0.7.3", + "react-native-screens": "^2.4.0", + "react-native-snap-carousel": "^3.9.0", + "react-native-svg": "^12.1.0", + "react-native-vector-icons": "^6.6.0", + "react-redux": "^7.2.0", + "redux": "^4.0.5", + "redux-persist": "^6.0.0", + "rn-redux-middleware-flipper": "^0.1.0" + }, + "devDependencies": { + "@babel/core": "^7.9.0", + "@babel/runtime": "^7.9.2", + "@types/jest": "^25.2.1", + "@types/lodash": "^4.14.149", + "@types/moment": "^2.13.0", + "@types/react-native": "^0.62.2", + "@types/react-native-fbsdk": "^1.1.0", + "@types/react-native-snap-carousel": "^3.8.1", + "@types/react-native-vector-icons": "^6.4.5", + "@types/react-redux": "^7.1.7", + "@types/react-test-renderer": "^16.9.2", + "babel-jest": "^25.3.0", + "husky": "^4.2.5", + "jest": "^25.3.0", + "lint-staged": "^10.1.3", + "metro-react-native-babel-preset": "^0.59.0", + "prettier": "^2.0.4", + "pretty-format": "^25.3.0", + "react-test-renderer": "16.11.0", + "tslint": "^6.1.1", + "tslint-config-prettier": "^1.18.0", + "tslint-config-standard": "^9.0.0", + "tslint-etc": "^1.10.0", + "tslint-plugin-prettier": "^2.3.0", + "tslint-react": "^4.2.0", + "tslint-react-hooks": "^2.2.2", + "tslint-react-native": "^0.0.7", + "typescript": "^3.7.3" + }, + "jest": { + "preset": "react-native", + "moduleFileExtensions": [ + "ts", + "tsx", + "js", + "jsx", + "json", + "node" + ] + }, + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "lint-staged": { + "src/**/*.{js,jsx,ts,tsx}": [ + "prettier --write", + "tslint --fix" + ], + "src/**/*.{js,jsx,ts,tsx,json,css,scss,md}": [ + "prettier --write" + ] + } +} diff --git a/react-native.config.js b/react-native.config.js new file mode 100644 index 0000000..a60e315 --- /dev/null +++ b/react-native.config.js @@ -0,0 +1,7 @@ +module.exports = { + project: { + ios: {}, + android: {}, + }, + assets: ['Assets/Fonts/'], +}; diff --git a/src/API/index.ts b/src/API/index.ts new file mode 100644 index 0000000..2ee7157 --- /dev/null +++ b/src/API/index.ts @@ -0,0 +1,95 @@ +import {Device} from '../Action/types'; + +export const createDevice = async (device: Device): Promise => { + return fetch(`SERVER_API`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(device), + }).then((res) => { + if (!res.ok) { + throw new Error(res.statusText); + } + + return res.json(); + }); +}; + +export const updateDevice = async ( + device: Device, + id?: string, +): Promise => { + return fetch(`SERVER_API`, { + method: 'PATCH', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(device), + }).then((res) => { + if (!res.ok) { + throw new Error(res.statusText); + } + + return res.json(); + }); +}; + +export const verifyCode = async ( + code: number, + device?: Device, +): Promise => { + return fetch(`SERVER_API`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({code}), + }).then((res) => { + if (!res.ok) { + throw new Error(res.statusText); + } + + return res.json(); + }); +}; + +export const getCountry = async (): Promise<{country: string; ip: string}> => { + const returnData = {country: '', ip: ''}; + + return fetch(`https://api.ipify.org`) + .then((res) => { + if (!res.ok) { + throw new Error(res.statusText); + } + + return res.text(); + }) + .then(async (ip) => { + returnData.ip = ip; + + return fetch(`https://geolocation-db.com/json/${ip}`); + }) + .then((res) => { + if (!res.ok) { + throw new Error(res.statusText); + } + + return res.json(); + }) + .then((data: {country_code: string}) => { + returnData.country = data.country_code; + + return returnData; + }); +}; + +export const getCountryStats = async (country?: string): Promise => { + return fetch(`https://corona-api.com/countries/${country}`).then((res) => { + if (!res.ok) { + throw new Error(res.statusText); + } + + return res.json(); + }); +}; diff --git a/src/Action/index.tsx b/src/Action/index.tsx new file mode 100644 index 0000000..b62eff9 --- /dev/null +++ b/src/Action/index.tsx @@ -0,0 +1,61 @@ +import {Language} from 'src/I18n/i18n'; +import { + CountryStats, + Device, + DeviceActionTypes, + LOGIN, + UPDATE_DEVICE, + UPDATE_DEVICE_DATA, + UPDATE_LANGUAGE, + UPDATE_STATS, + UPDATE_TOKEN, + VERIFY_DEVICE, +} from './types'; + +export const loginUser = (device: Device): DeviceActionTypes => ({ + type: LOGIN, + payload: device, +}); + +export const verifyDevice = (): DeviceActionTypes => ({ + type: VERIFY_DEVICE, +}); + +export const updateToken = ( + token: string, + deviceID: string, + device: Device, + country?: string, + ip?: string, +): DeviceActionTypes => ({ + type: UPDATE_TOKEN, + payload: {token, device, ip, country, deviceID}, +}); + +export const updateDeviceConfigs = ({ + sound, + vibrate, + alerts, +}: { + sound?: boolean; + vibrate?: boolean; + alerts?: boolean; +}): DeviceActionTypes => ({ + type: UPDATE_DEVICE, + payload: {sound, vibrate, alerts}, +}); + +export const updateDeviceData = (device: Device): DeviceActionTypes => ({ + type: UPDATE_DEVICE_DATA, + payload: device, +}); + +export const updateLanguage = (language: Language): DeviceActionTypes => ({ + type: UPDATE_LANGUAGE, + language, +}); + +export const updateStats = (countryStats: CountryStats): DeviceActionTypes => ({ + type: UPDATE_STATS, + payload: countryStats, +}); diff --git a/src/Action/types.ts b/src/Action/types.ts new file mode 100644 index 0000000..9dcf7ad --- /dev/null +++ b/src/Action/types.ts @@ -0,0 +1,142 @@ +import {Language} from '../I18n/i18n'; + +export const LOGIN = 'LOGIN'; +export const UPDATE_TOKEN = 'UPDATE_TOKEN'; +export const UPDATE_LANGUAGE = 'UPDATE_LANGUAGE'; +export const UPDATE_DEVICE = 'UPDATE_DEVICE'; +export const UPDATE_DEVICE_DATA = 'UPDATE_DEVICE_DATA'; +export const UPDATE_STATS = 'UPDATE_STATS'; +export const VERIFY_DEVICE = 'VERIFY_DEVICE'; + +export interface Device { + ip?: string; + platform?: string; + deviceID?: string; + _id?: string; + token?: string; + country?: string; + email?: string | null; + mobile?: string; + verified?: boolean; + language?: string; + name?: string | null; + fbID?: string; + googleID?: string; + appleID?: string; + sound?: boolean; + vibrate?: boolean; + alerts?: boolean; + infected?: boolean; + isolation?: boolean; +} + +export interface CountryStats { + coordinates: Coordinates; + name: string; + code: string; + population: number; + updated_at: string; + today: Today; + latest_data: LatestData; + timeline: Timeline[]; +} + +interface Timeline { + updated_at: string; + date: string; + deaths: number; + confirmed: number; + active: number; + recovered: number; + new_confirmed: number; + new_recovered: number; + new_deaths: number; + is_in_progress?: boolean; +} + +interface LatestData { + deaths: number; + confirmed: number; + recovered: number; + critical: number; + calculated: Calculated; +} + +interface Calculated { + death_rate: number; + recovery_rate: number; + recovered_vs_death_ratio: number; + cases_per_million_population: number; +} + +interface Today { + deaths: number; + confirmed: number; +} + +interface Coordinates { + latitude: number; + longitude: number; +} + +export interface Configs { + device?: Device; + stats?: CountryStats; + loggedIn: boolean; + token: string; + language: string; + isRtl: boolean; +} + +interface LoginAction { + type: typeof LOGIN; + payload: Device; +} + +interface VerifyDeviceAction { + type: typeof VERIFY_DEVICE; +} + +interface UpdateTokenAction { + type: typeof UPDATE_TOKEN; + payload: { + token: string; + deviceID: string; + device: Device; + country?: string; + ip?: string; + }; +} + +interface UpdateDeviceAction { + type: typeof UPDATE_DEVICE; + payload: { + sound?: boolean; + vibrate?: boolean; + alerts?: boolean; + }; +} + +interface UpdateDeviceDataAction { + type: typeof UPDATE_DEVICE_DATA; + payload: Device; +} + +interface UpdateLanguageAction { + type: typeof UPDATE_LANGUAGE; + language: Language; +} + +interface UpdateStatsAction { + type: typeof UPDATE_STATS; + payload: CountryStats; +} + +export type DeviceActionTypes = + | LoginAction + | UpdateTokenAction + | UpdateLanguageAction + | UpdateDeviceAction + | UpdateDeviceDataAction + | UpdateStatsAction + | VerifyDeviceAction; diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..ca4d74a --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,113 @@ +import {GoogleSignin} from '@react-native-community/google-signin'; +import messaging from '@react-native-firebase/messaging'; +import {NavigationContainer} from '@react-navigation/native'; +import {createStackNavigator} from '@react-navigation/stack'; +import React, {useEffect} from 'react'; +import {useTranslation} from 'react-i18next'; +import {Alert, StatusBar} from 'react-native'; +import BackgroundGeolocation from 'react-native-background-geolocation'; +import {Provider} from 'react-redux'; +import {compose, createStore, Store} from 'redux'; +import {persistStore} from 'redux-persist'; +import {PersistGate} from 'redux-persist/lib/integration/react'; + +import 'react-native-gesture-handler'; +import './I18n/i18n'; + +import Home from './Containers/Home'; +import Register from './Containers/Register'; +import Splash from './Containers/Splash'; +import Verify from './Containers/Verify'; +import {persistedReducer} from './Reducer'; + +// @ts-ignore +// tslint:disable-next-line: no-unsafe-any +const enhancedCompose = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; +// tslint:disable-next-line: no-unsafe-any +const store = createStore(persistedReducer, enhancedCompose()) as Store; +const persistor = persistStore(store); + +export type RootStackParamList = { + Splash: undefined; + Register: undefined; + Verify: undefined; + Home: undefined; +}; + +const Stack = createStackNavigator(); + +GoogleSignin.configure(); + +messaging().registerDeviceForRemoteMessages(); + +const App = () => { + const {t} = useTranslation(); + + useEffect(() => { + const configs = { + logLevel: BackgroundGeolocation.LOG_LEVEL_DEBUG, + desiredAccuracy: BackgroundGeolocation.DESIRED_ACCURACY_HIGH, + distanceFilter: 10, + allowIdenticalLocations: true, + stopOnTerminate: false, + startOnBoot: true, + autoSync: true, + autoSyncThreshold: 5, + batchSync: true, + preventSuspend: true, + foregroundService: true, + locationAuthorizationAlert: { + titleWhenOff: t('error'), + titleWhenNotEnabled: t('error'), + instructions: t('permission_error'), + settingsButton: t('settings'), + cancelButton: t('cancel'), + }, + notification: { + title: 'Contact-19', + text: t('location-services-activated'), + }, + }; + + BackgroundGeolocation.ready(configs); + + const unsubscribe = messaging().onMessage(async (remoteMessage) => { + if (remoteMessage.notification) { + Alert.alert( + remoteMessage.notification?.title || '', + remoteMessage.notification?.body, + [{text: t('done')}], + ); + } + }); + + return () => { + unsubscribe(); + BackgroundGeolocation.removeListeners(); + }; + }, []); + + return ( + + + + + + + + + + + + + + ); +}; + +export default App; diff --git a/src/Components/Button.tsx b/src/Components/Button.tsx new file mode 100644 index 0000000..76ceae9 --- /dev/null +++ b/src/Components/Button.tsx @@ -0,0 +1,50 @@ +import React from 'react'; +import {StyleSheet, Text, TouchableOpacity} from 'react-native'; +import Colors from '../Theme/Colors'; +import Fonts from '../Theme/Fonts'; + +export interface CustomButtonProps { + text?: string; + onPress?: () => void; + ButtonIcon?: React.FC; +} + +const CustomButton: React.FC = ({ + text, + onPress, + ButtonIcon, +}) => { + return ( + + {ButtonIcon && } + {text} + + ); +}; + +export default CustomButton; + +const styles = StyleSheet.create({ + button: { + borderWidth: 1, + borderColor: Colors.darkBlue, + backgroundColor: Colors.white, + height: 50, + alignItems: 'center', + justifyContent: 'space-between', + paddingHorizontal: 50, + flexDirection: 'row', + marginTop: 10, + borderRadius: 2, + }, + text: { + textAlign: 'center', + fontFamily: Fonts.regular, + fontSize: Fonts.sm, + color: Colors.black, + flex: 1, + }, +}); diff --git a/src/Components/Flag.tsx b/src/Components/Flag.tsx new file mode 100644 index 0000000..6c26270 --- /dev/null +++ b/src/Components/Flag.tsx @@ -0,0 +1,23 @@ +import React from 'react'; +import {ViewStyle} from 'react-native'; +import * as Flag from '../Components/flags'; + +export interface FlagProps { + value?: string; + style?: ViewStyle; + width: number; +} + +const FlagComponent: React.FC = ({value, width, style}) => { + // @ts-ignore + const CountryFlag = Flag[value] || null; + + return CountryFlag ? ( + + ) : null; +}; + +export default FlagComponent; diff --git a/src/Components/PhoneInput.tsx b/src/Components/PhoneInput.tsx new file mode 100644 index 0000000..0181742 --- /dev/null +++ b/src/Components/PhoneInput.tsx @@ -0,0 +1,125 @@ +import { + CountryCode, + getCountries, + getCountryCallingCode, +} from 'libphonenumber-js'; +import React, {useEffect, useState} from 'react'; +import {useTranslation} from 'react-i18next'; +import {StyleSheet, TextInput, TouchableOpacity, View} from 'react-native'; +import CountryPicker, { + CountryCode as PickerCountryCode, + Flag, +} from 'react-native-country-picker-modal'; + +import Colors from '../Theme/Colors'; +import Fonts from '../Theme/Fonts'; + +type PhoneInputProps = { + country: string; + isRtl: boolean; + changeFullMobileNumber: (value: string) => void; +}; + +export const PhoneInput: React.FC = ({ + isRtl, + country, + changeFullMobileNumber, +}) => { + const {t} = useTranslation(); + const [mobile, changeMobile] = useState(''); + const [countryCode, changeCountryCode] = useState(''); + const [countryModal, toggleCountryModal] = useState(false); + const [countryCallingCode, changeCallingCountryCode] = useState(''); + + useEffect(() => { + changeCallingCountryCode( + `+${getCountryCallingCode((country as CountryCode) || 'US')}`, + ); + changeCountryCode(country || 'US'); + }, [country]); + + return ( + + { + toggleCountryModal(true); + }} + style={{ + flexDirection: isRtl ? 'row-reverse' : 'row', + }}> + + + + + { + changeMobile(value); + changeFullMobileNumber(countryCallingCode + value); + }} + /> + + { + changeCallingCountryCode( + `+${getCountryCallingCode(value.cca2 as CountryCode)}`, + ); + + changeCountryCode(value.cca2); + + changeMobile(''); + changeFullMobileNumber(''); + }} + onClose={() => { + toggleCountryModal(false); + }} + containerButtonStyle={{display: 'none'}} + withFilter + withEmoji + countryCodes={getCountries() as PickerCountryCode[]} + visible={countryModal} + /> + + ); +}; + +const styles = StyleSheet.create({ + phoneInputContainer: { + flexDirection: 'row', + }, + countryCodeInput: { + color: Colors.blue, + fontFamily: Fonts.regular, + marginHorizontal: 10, + fontSize: Fonts.xsm, + }, + mobileInput: { + flex: 1, + color: Colors.darkBlue, + fontFamily: Fonts.regular, + textAlign: 'center', + fontSize: Fonts.xsm, + }, +}); diff --git a/src/Components/Switch.tsx b/src/Components/Switch.tsx new file mode 100644 index 0000000..c054884 --- /dev/null +++ b/src/Components/Switch.tsx @@ -0,0 +1,43 @@ +import React from 'react'; +import {StyleSheet, Switch, View} from 'react-native'; +import Colors from '../Theme/Colors'; + +export interface SwitchProps { + value?: boolean; + disabled?: boolean; + toggleSwitch?: (value: boolean) => void; + align?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'; +} + +const SwitchComponent: React.FC = ({ + value, + toggleSwitch, + align, + disabled = false, +}) => { + return ( + <> + + + + + ); +}; + +export default SwitchComponent; + +const styles = StyleSheet.create({ + container: { + width: '100%', + }, +}); diff --git a/src/Components/Text.tsx b/src/Components/Text.tsx new file mode 100644 index 0000000..237b740 --- /dev/null +++ b/src/Components/Text.tsx @@ -0,0 +1,53 @@ +import React from 'react'; +import {StyleSheet, Text} from 'react-native'; +import Colors from '../Theme/Colors'; +import Fonts from '../Theme/Fonts'; + +export interface CustomTextProps { + text: string | number | undefined | null | object; + color?: string; + size?: number; + align?: string; + fontFamily?: string; + style?: object; +} + +const CustomText: React.FC = ({ + text, + color, + size, + align, + fontFamily, + style, +}) => ( + + {text} + +); + +export default CustomText; + +const styles = StyleSheet.create({ + subTitle: { + fontFamily: Fonts.regular, + fontSize: Fonts.xsm, + color: Colors.white, + }, +}); diff --git a/src/Components/flags/Ad.js b/src/Components/flags/Ad.js new file mode 100644 index 0000000..92af6fa --- /dev/null +++ b/src/Components/flags/Ad.js @@ -0,0 +1,355 @@ +import * as React from 'react'; +import Svg, {G, Path, Use} from 'react-native-svg'; + +function SvgAd(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgAd; diff --git a/src/Components/flags/Ae.js b/src/Components/flags/Ae.js new file mode 100644 index 0000000..dacd9a4 --- /dev/null +++ b/src/Components/flags/Ae.js @@ -0,0 +1,15 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgAe(props) { + return ( + + + + + + + ); +} + +export default SvgAe; diff --git a/src/Components/flags/Af.js b/src/Components/flags/Af.js new file mode 100644 index 0000000..64b8529 --- /dev/null +++ b/src/Components/flags/Af.js @@ -0,0 +1,142 @@ +import * as React from 'react'; +import Svg, {G, Path, Use} from 'react-native-svg'; + +function SvgAf(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgAf; diff --git a/src/Components/flags/Ag.js b/src/Components/flags/Ag.js new file mode 100644 index 0000000..d5c0063 --- /dev/null +++ b/src/Components/flags/Ag.js @@ -0,0 +1,32 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgAg(props) { + return ( + + + + + + + + + + + + + + + ); +} + +export default SvgAg; diff --git a/src/Components/flags/Ai.js b/src/Components/flags/Ai.js new file mode 100644 index 0000000..3109fa0 --- /dev/null +++ b/src/Components/flags/Ai.js @@ -0,0 +1,803 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgAi(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgAi; diff --git a/src/Components/flags/Al.js b/src/Components/flags/Al.js new file mode 100644 index 0000000..f0e7218 --- /dev/null +++ b/src/Components/flags/Al.js @@ -0,0 +1,22 @@ +import * as React from 'react'; +import Svg, {Path, Use} from 'react-native-svg'; + +function SvgAl(props) { + return ( + + + + + + ); +} + +export default SvgAl; diff --git a/src/Components/flags/Am.js b/src/Components/flags/Am.js new file mode 100644 index 0000000..85bcbcf --- /dev/null +++ b/src/Components/flags/Am.js @@ -0,0 +1,14 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgAm(props) { + return ( + + + + + + ); +} + +export default SvgAm; diff --git a/src/Components/flags/Ao.js b/src/Components/flags/Ao.js new file mode 100644 index 0000000..1d3ae19 --- /dev/null +++ b/src/Components/flags/Ao.js @@ -0,0 +1,50 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgAo(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgAo; diff --git a/src/Components/flags/Aq.js b/src/Components/flags/Aq.js new file mode 100644 index 0000000..8acdea8 --- /dev/null +++ b/src/Components/flags/Aq.js @@ -0,0 +1,20 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgAq(props) { + return ( + + + + + + ); +} + +export default SvgAq; diff --git a/src/Components/flags/Ar.js b/src/Components/flags/Ar.js new file mode 100644 index 0000000..7dff01e --- /dev/null +++ b/src/Components/flags/Ar.js @@ -0,0 +1,152 @@ +import * as React from 'react'; +import Svg, {Circle, G, Path, Use} from 'react-native-svg'; + +function SvgAr(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgAr; diff --git a/src/Components/flags/As.js b/src/Components/flags/As.js new file mode 100644 index 0000000..e06397f --- /dev/null +++ b/src/Components/flags/As.js @@ -0,0 +1,133 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgAs(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgAs; diff --git a/src/Components/flags/At.js b/src/Components/flags/At.js new file mode 100644 index 0000000..23e0d57 --- /dev/null +++ b/src/Components/flags/At.js @@ -0,0 +1,15 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgAt(props) { + return ( + + + + + + + ); +} + +export default SvgAt; diff --git a/src/Components/flags/Au.js b/src/Components/flags/Au.js new file mode 100644 index 0000000..198bb0f --- /dev/null +++ b/src/Components/flags/Au.js @@ -0,0 +1,28 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgAu(props) { + return ( + + + + + + + + + + ); +} + +export default SvgAu; diff --git a/src/Components/flags/Aw.js b/src/Components/flags/Aw.js new file mode 100644 index 0000000..cfdd8fa --- /dev/null +++ b/src/Components/flags/Aw.js @@ -0,0 +1,203 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgAw(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgAw; diff --git a/src/Components/flags/Ax.js b/src/Components/flags/Ax.js new file mode 100644 index 0000000..4b2835f --- /dev/null +++ b/src/Components/flags/Ax.js @@ -0,0 +1,29 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgAx(props) { + return ( + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgAx; diff --git a/src/Components/flags/Az.js b/src/Components/flags/Az.js new file mode 100644 index 0000000..a954ca0 --- /dev/null +++ b/src/Components/flags/Az.js @@ -0,0 +1,20 @@ +import * as React from 'react'; +import Svg, {Circle, Path} from 'react-native-svg'; + +function SvgAz(props) { + return ( + + + + + + + + + ); +} + +export default SvgAz; diff --git a/src/Components/flags/Ba.js b/src/Components/flags/Ba.js new file mode 100644 index 0000000..cc6e0d0 --- /dev/null +++ b/src/Components/flags/Ba.js @@ -0,0 +1,27 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgBa(props) { + return ( + + + + + + + + + + + + + ); +} + +export default SvgBa; diff --git a/src/Components/flags/Bb.js b/src/Components/flags/Bb.js new file mode 100644 index 0000000..3554447 --- /dev/null +++ b/src/Components/flags/Bb.js @@ -0,0 +1,23 @@ +import * as React from 'react'; +import Svg, {Path, Use} from 'react-native-svg'; + +function SvgBb(props) { + return ( + + + + + + + ); +} + +export default SvgBb; diff --git a/src/Components/flags/Bd.js b/src/Components/flags/Bd.js new file mode 100644 index 0000000..537039a --- /dev/null +++ b/src/Components/flags/Bd.js @@ -0,0 +1,13 @@ +import * as React from 'react'; +import Svg, {Circle, Path} from 'react-native-svg'; + +function SvgBd(props) { + return ( + + + + + ); +} + +export default SvgBd; diff --git a/src/Components/flags/Be.js b/src/Components/flags/Be.js new file mode 100644 index 0000000..1cf5717 --- /dev/null +++ b/src/Components/flags/Be.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgBe(props) { + return ( + + + + + + + + ); +} + +export default SvgBe; diff --git a/src/Components/flags/Bf.js b/src/Components/flags/Bf.js new file mode 100644 index 0000000..663df63 --- /dev/null +++ b/src/Components/flags/Bf.js @@ -0,0 +1,19 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgBf(props) { + return ( + + + + + + + + ); +} + +export default SvgBf; diff --git a/src/Components/flags/Bg.js b/src/Components/flags/Bg.js new file mode 100644 index 0000000..27be6a5 --- /dev/null +++ b/src/Components/flags/Bg.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgBg(props) { + return ( + + + + + + + + ); +} + +export default SvgBg; diff --git a/src/Components/flags/Bh.js b/src/Components/flags/Bh.js new file mode 100644 index 0000000..2391a10 --- /dev/null +++ b/src/Components/flags/Bh.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgBh(props) { + return ( + + + + + ); +} + +export default SvgBh; diff --git a/src/Components/flags/Bi.js b/src/Components/flags/Bi.js new file mode 100644 index 0000000..bdc7ba5 --- /dev/null +++ b/src/Components/flags/Bi.js @@ -0,0 +1,41 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgBi(props) { + return ( + + + + + + + + + + + + + + + + ); +} + +export default SvgBi; diff --git a/src/Components/flags/Bj.js b/src/Components/flags/Bj.js new file mode 100644 index 0000000..3de437a --- /dev/null +++ b/src/Components/flags/Bj.js @@ -0,0 +1,23 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgBj(props) { + return ( + + + + + + + + + + + + + + + ); +} + +export default SvgBj; diff --git a/src/Components/flags/Bl.js b/src/Components/flags/Bl.js new file mode 100644 index 0000000..9473fbf --- /dev/null +++ b/src/Components/flags/Bl.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgBl(props) { + return ( + + + + + + + + ); +} + +export default SvgBl; diff --git a/src/Components/flags/Bm.js b/src/Components/flags/Bm.js new file mode 100644 index 0000000..7542850 --- /dev/null +++ b/src/Components/flags/Bm.js @@ -0,0 +1,528 @@ +import * as React from 'react'; +import Svg, {Ellipse, Path} from 'react-native-svg'; + +function SvgBm(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgBm; diff --git a/src/Components/flags/Bn.js b/src/Components/flags/Bn.js new file mode 100644 index 0000000..12542f2 --- /dev/null +++ b/src/Components/flags/Bn.js @@ -0,0 +1,50 @@ +import * as React from 'react'; +import Svg, {G, Path, Use} from 'react-native-svg'; + +function SvgBn(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgBn; diff --git a/src/Components/flags/Bo.js b/src/Components/flags/Bo.js new file mode 100644 index 0000000..c4aa2f5 --- /dev/null +++ b/src/Components/flags/Bo.js @@ -0,0 +1,3410 @@ +import * as React from 'react'; +import Svg, {Circle, Path, Use} from 'react-native-svg'; + +function SvgBo(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgBo; diff --git a/src/Components/flags/Bq.js b/src/Components/flags/Bq.js new file mode 100644 index 0000000..30f2171 --- /dev/null +++ b/src/Components/flags/Bq.js @@ -0,0 +1,14 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgBq(props) { + return ( + + + + + + ); +} + +export default SvgBq; diff --git a/src/Components/flags/Br.js b/src/Components/flags/Br.js new file mode 100644 index 0000000..ba47646 --- /dev/null +++ b/src/Components/flags/Br.js @@ -0,0 +1,132 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgBr(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgBr; diff --git a/src/Components/flags/Bs.js b/src/Components/flags/Bs.js new file mode 100644 index 0000000..82cc90b --- /dev/null +++ b/src/Components/flags/Bs.js @@ -0,0 +1,28 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgBs(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgBs; diff --git a/src/Components/flags/Bt.js b/src/Components/flags/Bt.js new file mode 100644 index 0000000..1c52f51 --- /dev/null +++ b/src/Components/flags/Bt.js @@ -0,0 +1,125 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgBt(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgBt; diff --git a/src/Components/flags/Bv.js b/src/Components/flags/Bv.js new file mode 100644 index 0000000..df12f12 --- /dev/null +++ b/src/Components/flags/Bv.js @@ -0,0 +1,25 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgBv(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgBv; diff --git a/src/Components/flags/Bw.js b/src/Components/flags/Bw.js new file mode 100644 index 0000000..97e046c --- /dev/null +++ b/src/Components/flags/Bw.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgBw(props) { + return ( + + + + + + + + ); +} + +export default SvgBw; diff --git a/src/Components/flags/By.js b/src/Components/flags/By.js new file mode 100644 index 0000000..683490f --- /dev/null +++ b/src/Components/flags/By.js @@ -0,0 +1,32 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgBy(props) { + return ( + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgBy; diff --git a/src/Components/flags/Bz.js b/src/Components/flags/Bz.js new file mode 100644 index 0000000..0a3d5f4 --- /dev/null +++ b/src/Components/flags/Bz.js @@ -0,0 +1,409 @@ +import * as React from 'react'; +import Svg, { + Circle, + Defs, + G, + Path, + RadialGradient, + Stop, + Use, +} from 'react-native-svg'; + +function SvgBz(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgBz; diff --git a/src/Components/flags/Ca.js b/src/Components/flags/Ca.js new file mode 100644 index 0000000..2240905 --- /dev/null +++ b/src/Components/flags/Ca.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgCa(props) { + return ( + + + + + ); +} + +export default SvgCa; diff --git a/src/Components/flags/Cc.js b/src/Components/flags/Cc.js new file mode 100644 index 0000000..cb58bba --- /dev/null +++ b/src/Components/flags/Cc.js @@ -0,0 +1,72 @@ +import * as React from 'react'; +import Svg, {Circle, Defs, G, Path, Use} from 'react-native-svg'; + +function SvgCc(props) { + return ( + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgCc; diff --git a/src/Components/flags/Cd.js b/src/Components/flags/Cd.js new file mode 100644 index 0000000..9546e04 --- /dev/null +++ b/src/Components/flags/Cd.js @@ -0,0 +1,17 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgCd(props) { + return ( + + + + + + ); +} + +export default SvgCd; diff --git a/src/Components/flags/Cf.js b/src/Components/flags/Cf.js new file mode 100644 index 0000000..89d3e42 --- /dev/null +++ b/src/Components/flags/Cf.js @@ -0,0 +1,30 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgCf(props) { + return ( + + + + + + + + + + + + + + + + ); +} + +export default SvgCf; diff --git a/src/Components/flags/Cg.js b/src/Components/flags/Cg.js new file mode 100644 index 0000000..bb0aaa2 --- /dev/null +++ b/src/Components/flags/Cg.js @@ -0,0 +1,25 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgCg(props) { + return ( + + + + + + + + + + + + + ); +} + +export default SvgCg; diff --git a/src/Components/flags/Ch.js b/src/Components/flags/Ch.js new file mode 100644 index 0000000..0496037 --- /dev/null +++ b/src/Components/flags/Ch.js @@ -0,0 +1,18 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgCh(props) { + return ( + + + + + + + + + + ); +} + +export default SvgCh; diff --git a/src/Components/flags/Ci.js b/src/Components/flags/Ci.js new file mode 100644 index 0000000..8672cc9 --- /dev/null +++ b/src/Components/flags/Ci.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgCi(props) { + return ( + + + + + + + + ); +} + +export default SvgCi; diff --git a/src/Components/flags/Ck.js b/src/Components/flags/Ck.js new file mode 100644 index 0000000..fad6947 --- /dev/null +++ b/src/Components/flags/Ck.js @@ -0,0 +1,28 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgCk(props) { + return ( + + + + + + + + + + ); +} + +export default SvgCk; diff --git a/src/Components/flags/Cl.js b/src/Components/flags/Cl.js new file mode 100644 index 0000000..336219b --- /dev/null +++ b/src/Components/flags/Cl.js @@ -0,0 +1,25 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgCl(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgCl; diff --git a/src/Components/flags/Cm.js b/src/Components/flags/Cm.js new file mode 100644 index 0000000..88a7a2b --- /dev/null +++ b/src/Components/flags/Cm.js @@ -0,0 +1,49 @@ +import * as React from 'react'; +import Svg, {G, Path, Use} from 'react-native-svg'; + +function SvgCm(props) { + return ( + + + + + + + + + + + + + + + + ); +} + +export default SvgCm; diff --git a/src/Components/flags/Cn.js b/src/Components/flags/Cn.js new file mode 100644 index 0000000..30fcf1c --- /dev/null +++ b/src/Components/flags/Cn.js @@ -0,0 +1,45 @@ +import * as React from 'react'; +import Svg, {Defs, Path, Use} from 'react-native-svg'; + +function SvgCn(props) { + return ( + + + + + + + + + + + + ); +} + +export default SvgCn; diff --git a/src/Components/flags/Co.js b/src/Components/flags/Co.js new file mode 100644 index 0000000..1f92d7a --- /dev/null +++ b/src/Components/flags/Co.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgCo(props) { + return ( + + + + + + + + ); +} + +export default SvgCo; diff --git a/src/Components/flags/Cr.js b/src/Components/flags/Cr.js new file mode 100644 index 0000000..b83e6a0 --- /dev/null +++ b/src/Components/flags/Cr.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgCr(props) { + return ( + + + + + + + + ); +} + +export default SvgCr; diff --git a/src/Components/flags/Cu.js b/src/Components/flags/Cu.js new file mode 100644 index 0000000..7f62df4 --- /dev/null +++ b/src/Components/flags/Cu.js @@ -0,0 +1,31 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgCu(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgCu; diff --git a/src/Components/flags/Cv.js b/src/Components/flags/Cv.js new file mode 100644 index 0000000..6f59bb6 --- /dev/null +++ b/src/Components/flags/Cv.js @@ -0,0 +1,31 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgCv(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgCv; diff --git a/src/Components/flags/Cw.js b/src/Components/flags/Cw.js new file mode 100644 index 0000000..afa8b92 --- /dev/null +++ b/src/Components/flags/Cw.js @@ -0,0 +1,42 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path, Use} from 'react-native-svg'; + +function SvgCw(props) { + return ( + + + + + + + + + + + + + + + ); +} + +export default SvgCw; diff --git a/src/Components/flags/Cx.js b/src/Components/flags/Cx.js new file mode 100644 index 0000000..0d7f336 --- /dev/null +++ b/src/Components/flags/Cx.js @@ -0,0 +1,54 @@ +import * as React from 'react'; +import Svg, {Circle, G, Path, Use} from 'react-native-svg'; + +function SvgCx(props) { + return ( + + + + + + + + + + + + + + + + ); +} + +export default SvgCx; diff --git a/src/Components/flags/Cy.js b/src/Components/flags/Cy.js new file mode 100644 index 0000000..7708aa3 --- /dev/null +++ b/src/Components/flags/Cy.js @@ -0,0 +1,27 @@ +import * as React from 'react'; +import Svg, {Path, Use} from 'react-native-svg'; + +function SvgCy(props) { + return ( + + + + + + + ); +} + +export default SvgCy; diff --git a/src/Components/flags/Cz.js b/src/Components/flags/Cz.js new file mode 100644 index 0000000..3f4924a --- /dev/null +++ b/src/Components/flags/Cz.js @@ -0,0 +1,14 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgCz(props) { + return ( + + + + + + ); +} + +export default SvgCz; diff --git a/src/Components/flags/De.js b/src/Components/flags/De.js new file mode 100644 index 0000000..08423cf --- /dev/null +++ b/src/Components/flags/De.js @@ -0,0 +1,14 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgDe(props) { + return ( + + + + + + ); +} + +export default SvgDe; diff --git a/src/Components/flags/Dj.js b/src/Components/flags/Dj.js new file mode 100644 index 0000000..ffcc397 --- /dev/null +++ b/src/Components/flags/Dj.js @@ -0,0 +1,28 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgDj(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgDj; diff --git a/src/Components/flags/Dk.js b/src/Components/flags/Dk.js new file mode 100644 index 0000000..976fb52 --- /dev/null +++ b/src/Components/flags/Dk.js @@ -0,0 +1,14 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgDk(props) { + return ( + + + + + + ); +} + +export default SvgDk; diff --git a/src/Components/flags/Dm.js b/src/Components/flags/Dm.js new file mode 100644 index 0000000..4b33d9b --- /dev/null +++ b/src/Components/flags/Dm.js @@ -0,0 +1,653 @@ +import * as React from 'react'; +import Svg, { + Circle, + ClipPath, + Defs, + Ellipse, + G, + Path, + Rect, +} from 'react-native-svg'; + +function SvgDm(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgDm; diff --git a/src/Components/flags/Do.js b/src/Components/flags/Do.js new file mode 100644 index 0000000..dfe8856 --- /dev/null +++ b/src/Components/flags/Do.js @@ -0,0 +1,7131 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgDo(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgDo; diff --git a/src/Components/flags/Dz.js b/src/Components/flags/Dz.js new file mode 100644 index 0000000..a82c820 --- /dev/null +++ b/src/Components/flags/Dz.js @@ -0,0 +1,17 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgDz(props) { + return ( + + + + + + ); +} + +export default SvgDz; diff --git a/src/Components/flags/Ec.js b/src/Components/flags/Ec.js new file mode 100644 index 0000000..b682eef --- /dev/null +++ b/src/Components/flags/Ec.js @@ -0,0 +1,712 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgEc(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgEc; diff --git a/src/Components/flags/Ee.js b/src/Components/flags/Ee.js new file mode 100644 index 0000000..1346d45 --- /dev/null +++ b/src/Components/flags/Ee.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path, Rect} from 'react-native-svg'; + +function SvgEe(props) { + return ( + + + + + + + + ); +} + +export default SvgEe; diff --git a/src/Components/flags/Eg.js b/src/Components/flags/Eg.js new file mode 100644 index 0000000..f832f01 --- /dev/null +++ b/src/Components/flags/Eg.js @@ -0,0 +1,104 @@ +import * as React from 'react'; +import Svg, {Circle, G, Path, Use} from 'react-native-svg'; + +function SvgEg(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgEg; diff --git a/src/Components/flags/Eh.js b/src/Components/flags/Eh.js new file mode 100644 index 0000000..ada1927 --- /dev/null +++ b/src/Components/flags/Eh.js @@ -0,0 +1,36 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgEh(props) { + return ( + + + + + + + + + + + + + + + + ); +} + +export default SvgEh; diff --git a/src/Components/flags/Er.js b/src/Components/flags/Er.js new file mode 100644 index 0000000..632131e --- /dev/null +++ b/src/Components/flags/Er.js @@ -0,0 +1,20 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgEr(props) { + return ( + + + + + + + + + ); +} + +export default SvgEr; diff --git a/src/Components/flags/Es.js b/src/Components/flags/Es.js new file mode 100644 index 0000000..f6f9718 --- /dev/null +++ b/src/Components/flags/Es.js @@ -0,0 +1,2590 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgEs(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgEs; diff --git a/src/Components/flags/EsCa.js b/src/Components/flags/EsCa.js new file mode 100644 index 0000000..509fa44 --- /dev/null +++ b/src/Components/flags/EsCa.js @@ -0,0 +1,18 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgEsCa(props) { + return ( + + + + + ); +} + +export default SvgEsCa; diff --git a/src/Components/flags/Et.js b/src/Components/flags/Et.js new file mode 100644 index 0000000..127f0fc --- /dev/null +++ b/src/Components/flags/Et.js @@ -0,0 +1,36 @@ +import * as React from 'react'; +import Svg, {Circle, ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgEt(props) { + return ( + + + + + + + + + + + + + + + ); +} + +export default SvgEt; diff --git a/src/Components/flags/Eu.js b/src/Components/flags/Eu.js new file mode 100644 index 0000000..4eca3e2 --- /dev/null +++ b/src/Components/flags/Eu.js @@ -0,0 +1,62 @@ +import * as React from 'react'; +import Svg, {Defs, G, Path, Use} from 'react-native-svg'; + +function SvgEu(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgEu; diff --git a/src/Components/flags/Fi.js b/src/Components/flags/Fi.js new file mode 100644 index 0000000..ba2eedd --- /dev/null +++ b/src/Components/flags/Fi.js @@ -0,0 +1,14 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgFi(props) { + return ( + + + + + + ); +} + +export default SvgFi; diff --git a/src/Components/flags/Fj.js b/src/Components/flags/Fj.js new file mode 100644 index 0000000..b8bf9e7 --- /dev/null +++ b/src/Components/flags/Fj.js @@ -0,0 +1,268 @@ +import * as React from 'react'; +import Svg, {Circle, Ellipse, G, Path} from 'react-native-svg'; + +function SvgFj(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgFj; diff --git a/src/Components/flags/Fk.js b/src/Components/flags/Fk.js new file mode 100644 index 0000000..2ddc304 --- /dev/null +++ b/src/Components/flags/Fk.js @@ -0,0 +1,532 @@ +import * as React from 'react'; +import Svg, {Defs, G, LinearGradient, Path, Stop, Use} from 'react-native-svg'; + +function SvgFk(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgFk; diff --git a/src/Components/flags/Fm.js b/src/Components/flags/Fm.js new file mode 100644 index 0000000..5b436da --- /dev/null +++ b/src/Components/flags/Fm.js @@ -0,0 +1,27 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgFm(props) { + return ( + + + + + + + + + + + + ); +} + +export default SvgFm; diff --git a/src/Components/flags/Fo.js b/src/Components/flags/Fo.js new file mode 100644 index 0000000..73b2cf8 --- /dev/null +++ b/src/Components/flags/Fo.js @@ -0,0 +1,31 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgFo(props) { + return ( + + + + + + + + + + + + + ); +} + +export default SvgFo; diff --git a/src/Components/flags/Fr.js b/src/Components/flags/Fr.js new file mode 100644 index 0000000..2a9625d --- /dev/null +++ b/src/Components/flags/Fr.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgFr(props) { + return ( + + + + + + + + ); +} + +export default SvgFr; diff --git a/src/Components/flags/Ga.js b/src/Components/flags/Ga.js new file mode 100644 index 0000000..df7c573 --- /dev/null +++ b/src/Components/flags/Ga.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgGa(props) { + return ( + + + + + + + + ); +} + +export default SvgGa; diff --git a/src/Components/flags/Gb.js b/src/Components/flags/Gb.js new file mode 100644 index 0000000..58aca4a --- /dev/null +++ b/src/Components/flags/Gb.js @@ -0,0 +1,22 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgGb(props) { + return ( + + + + + + + + ); +} + +export default SvgGb; diff --git a/src/Components/flags/GbEng.js b/src/Components/flags/GbEng.js new file mode 100644 index 0000000..c2e486c --- /dev/null +++ b/src/Components/flags/GbEng.js @@ -0,0 +1,14 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgGbEng(props) { + return ( + + + + + + ); +} + +export default SvgGbEng; diff --git a/src/Components/flags/GbNir.js b/src/Components/flags/GbNir.js new file mode 100644 index 0000000..e3a8033 --- /dev/null +++ b/src/Components/flags/GbNir.js @@ -0,0 +1,648 @@ +import * as React from 'react'; +import Svg, {G, Path, Rect, Use} from 'react-native-svg'; + +function SvgGbNir(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgGbNir; diff --git a/src/Components/flags/GbSct.js b/src/Components/flags/GbSct.js new file mode 100644 index 0000000..56749fa --- /dev/null +++ b/src/Components/flags/GbSct.js @@ -0,0 +1,18 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgGbSct(props) { + return ( + + + + + ); +} + +export default SvgGbSct; diff --git a/src/Components/flags/GbWls.js b/src/Components/flags/GbWls.js new file mode 100644 index 0000000..ae0ce6f --- /dev/null +++ b/src/Components/flags/GbWls.js @@ -0,0 +1,28 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgGbWls(props) { + return ( + + + + + + + + + + ); +} + +export default SvgGbWls; diff --git a/src/Components/flags/Gd.js b/src/Components/flags/Gd.js new file mode 100644 index 0000000..1ff90ef --- /dev/null +++ b/src/Components/flags/Gd.js @@ -0,0 +1,87 @@ +import * as React from 'react'; +import Svg, {Circle, Defs, G, Path, Use} from 'react-native-svg'; + +function SvgGd(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgGd; diff --git a/src/Components/flags/Ge.js b/src/Components/flags/Ge.js new file mode 100644 index 0000000..ca0cfa1 --- /dev/null +++ b/src/Components/flags/Ge.js @@ -0,0 +1,22 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgGe(props) { + return ( + + + + + + + ); +} + +export default SvgGe; diff --git a/src/Components/flags/Gf.js b/src/Components/flags/Gf.js new file mode 100644 index 0000000..8efe99c --- /dev/null +++ b/src/Components/flags/Gf.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgGf(props) { + return ( + + + + + + + + ); +} + +export default SvgGf; diff --git a/src/Components/flags/Gg.js b/src/Components/flags/Gg.js new file mode 100644 index 0000000..5cace6d --- /dev/null +++ b/src/Components/flags/Gg.js @@ -0,0 +1,37 @@ +import * as React from 'react'; +import Svg, {Path, Use} from 'react-native-svg'; + +function SvgGg(props) { + return ( + + + + + + + + + + ); +} + +export default SvgGg; diff --git a/src/Components/flags/Gh.js b/src/Components/flags/Gh.js new file mode 100644 index 0000000..f2de2f7 --- /dev/null +++ b/src/Components/flags/Gh.js @@ -0,0 +1,15 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgGh(props) { + return ( + + + + + + + ); +} + +export default SvgGh; diff --git a/src/Components/flags/Gi.js b/src/Components/flags/Gi.js new file mode 100644 index 0000000..1cd4ea3 --- /dev/null +++ b/src/Components/flags/Gi.js @@ -0,0 +1,55 @@ +import * as React from 'react'; +import Svg, {G, Path, Use} from 'react-native-svg'; + +function SvgGi(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgGi; diff --git a/src/Components/flags/Gl.js b/src/Components/flags/Gl.js new file mode 100644 index 0000000..3ecee97 --- /dev/null +++ b/src/Components/flags/Gl.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgGl(props) { + return ( + + + + + ); +} + +export default SvgGl; diff --git a/src/Components/flags/Gm.js b/src/Components/flags/Gm.js new file mode 100644 index 0000000..8c5dfa0 --- /dev/null +++ b/src/Components/flags/Gm.js @@ -0,0 +1,27 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgGm(props) { + return ( + + + + + + + + + + + + + + + ); +} + +export default SvgGm; diff --git a/src/Components/flags/Gn.js b/src/Components/flags/Gn.js new file mode 100644 index 0000000..d5025eb --- /dev/null +++ b/src/Components/flags/Gn.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgGn(props) { + return ( + + + + + + + + ); +} + +export default SvgGn; diff --git a/src/Components/flags/Gp.js b/src/Components/flags/Gp.js new file mode 100644 index 0000000..847c9df --- /dev/null +++ b/src/Components/flags/Gp.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgGp(props) { + return ( + + + + + + + + ); +} + +export default SvgGp; diff --git a/src/Components/flags/Gq.js b/src/Components/flags/Gq.js new file mode 100644 index 0000000..0747e6a --- /dev/null +++ b/src/Components/flags/Gq.js @@ -0,0 +1,66 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgGq(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgGq; diff --git a/src/Components/flags/Gr.js b/src/Components/flags/Gr.js new file mode 100644 index 0000000..e824376 --- /dev/null +++ b/src/Components/flags/Gr.js @@ -0,0 +1,25 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgGr(props) { + return ( + + + + + + + + + + + + + + + + + ); +} + +export default SvgGr; diff --git a/src/Components/flags/Gs.js b/src/Components/flags/Gs.js new file mode 100644 index 0000000..f33318c --- /dev/null +++ b/src/Components/flags/Gs.js @@ -0,0 +1,1048 @@ +import * as React from 'react'; +import Svg, { + Defs, + G, + LinearGradient, + Path, + Stop, + Text, + TSpan, +} from 'react-native-svg'; + +function SvgGs(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {'L'} + + + + + {'E'} + + + + + {'O'} + + + + + {'T'} + + + + + {'E'} + + + + + {'R'} + + + + + {'R'} + + + + + {'R'} + + + + + {'R'} + + + + + {'R'} + + + + + {'E'} + + + + + {'O'} + + + + + {'O'} + + + + + {'A'} + + + + + {'A'} + + + + + {'A'} + + + + + {'M'} + + + + + {'P'} + + + + + {'P'} + + + + + {'P'} + + + + + {'I'} + + + + + {'T'} + + + + + {'T'} + + + + + {'M'} + + + + + {'G'} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgGs; diff --git a/src/Components/flags/Gt.js b/src/Components/flags/Gt.js new file mode 100644 index 0000000..20b3b49 --- /dev/null +++ b/src/Components/flags/Gt.js @@ -0,0 +1,472 @@ +import * as React from 'react'; +import Svg, { + Circle, + Defs, + G, + LinearGradient, + Path, + RadialGradient, + Stop, + Use, +} from 'react-native-svg'; + +function SvgGt(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgGt; diff --git a/src/Components/flags/Gu.js b/src/Components/flags/Gu.js new file mode 100644 index 0000000..c84adf6 --- /dev/null +++ b/src/Components/flags/Gu.js @@ -0,0 +1,148 @@ +import * as React from 'react'; +import Svg, {Path, Text, TSpan} from 'react-native-svg'; + +function SvgGu(props) { + return ( + + + + + + + + + + + {'G'} + + + {'U'} + + + {'A'} + + + {'M'} + + + + + + + + {'G'} + + + {'U'} + + + {'A'} + + + {'M'} + + + ); +} + +export default SvgGu; diff --git a/src/Components/flags/Gw.js b/src/Components/flags/Gw.js new file mode 100644 index 0000000..5a93741 --- /dev/null +++ b/src/Components/flags/Gw.js @@ -0,0 +1,47 @@ +import * as React from 'react'; +import Svg, {G, Path, Use} from 'react-native-svg'; + +function SvgGw(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgGw; diff --git a/src/Components/flags/Gy.js b/src/Components/flags/Gy.js new file mode 100644 index 0000000..43d0676 --- /dev/null +++ b/src/Components/flags/Gy.js @@ -0,0 +1,27 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgGy(props) { + return ( + + + + + + + + + + ); +} + +export default SvgGy; diff --git a/src/Components/flags/Hk.js b/src/Components/flags/Hk.js new file mode 100644 index 0000000..b3faa71 --- /dev/null +++ b/src/Components/flags/Hk.js @@ -0,0 +1,134 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgHk(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgHk; diff --git a/src/Components/flags/Hm.js b/src/Components/flags/Hm.js new file mode 100644 index 0000000..7c49d93 --- /dev/null +++ b/src/Components/flags/Hm.js @@ -0,0 +1,31 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgHm(props) { + return ( + + + + + + + + + + ); +} + +export default SvgHm; diff --git a/src/Components/flags/Hn.js b/src/Components/flags/Hn.js new file mode 100644 index 0000000..9f16831 --- /dev/null +++ b/src/Components/flags/Hn.js @@ -0,0 +1,75 @@ +import * as React from 'react'; +import Svg, {G, Path, Use} from 'react-native-svg'; + +function SvgHn(props) { + return ( + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgHn; diff --git a/src/Components/flags/Hr.js b/src/Components/flags/Hr.js new file mode 100644 index 0000000..6ff0e4f --- /dev/null +++ b/src/Components/flags/Hr.js @@ -0,0 +1,130 @@ +import * as React from 'react'; +import Svg, {G, Path, Use} from 'react-native-svg'; + +function SvgHr(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgHr; diff --git a/src/Components/flags/Ht.js b/src/Components/flags/Ht.js new file mode 100644 index 0000000..87e775f --- /dev/null +++ b/src/Components/flags/Ht.js @@ -0,0 +1,288 @@ +import * as React from 'react'; +import Svg, {Circle, Ellipse, G, Path, Use} from 'react-native-svg'; + +function SvgHt(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgHt; diff --git a/src/Components/flags/Hu.js b/src/Components/flags/Hu.js new file mode 100644 index 0000000..94662d9 --- /dev/null +++ b/src/Components/flags/Hu.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgHu(props) { + return ( + + + + + + + + ); +} + +export default SvgHu; diff --git a/src/Components/flags/Id.js b/src/Components/flags/Id.js new file mode 100644 index 0000000..78d0bd4 --- /dev/null +++ b/src/Components/flags/Id.js @@ -0,0 +1,15 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgId(props) { + return ( + + + + + + + ); +} + +export default SvgId; diff --git a/src/Components/flags/Ie.js b/src/Components/flags/Ie.js new file mode 100644 index 0000000..2b60714 --- /dev/null +++ b/src/Components/flags/Ie.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgIe(props) { + return ( + + + + + + + + ); +} + +export default SvgIe; diff --git a/src/Components/flags/Il.js b/src/Components/flags/Il.js new file mode 100644 index 0000000..d350414 --- /dev/null +++ b/src/Components/flags/Il.js @@ -0,0 +1,32 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgIl(props) { + return ( + + + + + + + + + + + + + + + ); +} + +export default SvgIl; diff --git a/src/Components/flags/Im.js b/src/Components/flags/Im.js new file mode 100644 index 0000000..576e98d --- /dev/null +++ b/src/Components/flags/Im.js @@ -0,0 +1,182 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgIm(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgIm; diff --git a/src/Components/flags/In.js b/src/Components/flags/In.js new file mode 100644 index 0000000..3ecbbb3 --- /dev/null +++ b/src/Components/flags/In.js @@ -0,0 +1,59 @@ +import * as React from 'react'; +import Svg, {Circle, G, Path, Use} from 'react-native-svg'; + +function SvgIn(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgIn; diff --git a/src/Components/flags/Io.js b/src/Components/flags/Io.js new file mode 100644 index 0000000..f1a7a50 --- /dev/null +++ b/src/Components/flags/Io.js @@ -0,0 +1,818 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgIo(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgIo; diff --git a/src/Components/flags/Iq.js b/src/Components/flags/Iq.js new file mode 100644 index 0000000..ebe91c5 --- /dev/null +++ b/src/Components/flags/Iq.js @@ -0,0 +1,19 @@ +import * as React from 'react'; +import Svg, {Circle, G, Path} from 'react-native-svg'; + +function SvgIq(props) { + return ( + + + + + + + + + + + ); +} + +export default SvgIq; diff --git a/src/Components/flags/Ir.js b/src/Components/flags/Ir.js new file mode 100644 index 0000000..363ff47 --- /dev/null +++ b/src/Components/flags/Ir.js @@ -0,0 +1,237 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgIr(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgIr; diff --git a/src/Components/flags/Is.js b/src/Components/flags/Is.js new file mode 100644 index 0000000..20af843 --- /dev/null +++ b/src/Components/flags/Is.js @@ -0,0 +1,27 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgIs(props) { + return ( + + + + + + + + + + + + + ); +} + +export default SvgIs; diff --git a/src/Components/flags/It.js b/src/Components/flags/It.js new file mode 100644 index 0000000..0b1f73f --- /dev/null +++ b/src/Components/flags/It.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgIt(props) { + return ( + + + + + + + + ); +} + +export default SvgIt; diff --git a/src/Components/flags/Je.js b/src/Components/flags/Je.js new file mode 100644 index 0000000..23b448c --- /dev/null +++ b/src/Components/flags/Je.js @@ -0,0 +1,77 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path, Use} from 'react-native-svg'; + +function SvgJe(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgJe; diff --git a/src/Components/flags/Jm.js b/src/Components/flags/Jm.js new file mode 100644 index 0000000..8a483de --- /dev/null +++ b/src/Components/flags/Jm.js @@ -0,0 +1,17 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgJm(props) { + return ( + + + + + + + + + ); +} + +export default SvgJm; diff --git a/src/Components/flags/Jo.js b/src/Components/flags/Jo.js new file mode 100644 index 0000000..3878616 --- /dev/null +++ b/src/Components/flags/Jo.js @@ -0,0 +1,28 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgJo(props) { + return ( + + + + + + + + + + + + + + + + + ); +} + +export default SvgJo; diff --git a/src/Components/flags/Jp.js b/src/Components/flags/Jp.js new file mode 100644 index 0000000..933e88e --- /dev/null +++ b/src/Components/flags/Jp.js @@ -0,0 +1,30 @@ +import * as React from 'react'; +import Svg, {Circle, ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgJp(props) { + return ( + + + + + + + + + + + + ); +} + +export default SvgJp; diff --git a/src/Components/flags/Ke.js b/src/Components/flags/Ke.js new file mode 100644 index 0000000..92b1b5e --- /dev/null +++ b/src/Components/flags/Ke.js @@ -0,0 +1,67 @@ +import * as React from 'react'; +import Svg, {Defs, Ellipse, G, Path, Use} from 'react-native-svg'; + +function SvgKe(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgKe; diff --git a/src/Components/flags/Kg.js b/src/Components/flags/Kg.js new file mode 100644 index 0000000..f91f12a --- /dev/null +++ b/src/Components/flags/Kg.js @@ -0,0 +1,42 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgKg(props) { + return ( + + + + + + + + + + + + + + + + ); +} + +export default SvgKg; diff --git a/src/Components/flags/Kh.js b/src/Components/flags/Kh.js new file mode 100644 index 0000000..5c81740 --- /dev/null +++ b/src/Components/flags/Kh.js @@ -0,0 +1,102 @@ +import * as React from 'react'; +import Svg, {G, Path, Use} from 'react-native-svg'; + +function SvgKh(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgKh; diff --git a/src/Components/flags/Ki.js b/src/Components/flags/Ki.js new file mode 100644 index 0000000..858b6f7 --- /dev/null +++ b/src/Components/flags/Ki.js @@ -0,0 +1,200 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgKi(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgKi; diff --git a/src/Components/flags/Km.js b/src/Components/flags/Km.js new file mode 100644 index 0000000..99ed501 --- /dev/null +++ b/src/Components/flags/Km.js @@ -0,0 +1,31 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgKm(props) { + return ( + + + + + + + + + + + + + + + + + ); +} + +export default SvgKm; diff --git a/src/Components/flags/Kn.js b/src/Components/flags/Kn.js new file mode 100644 index 0000000..e900226 --- /dev/null +++ b/src/Components/flags/Kn.js @@ -0,0 +1,29 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgKn(props) { + return ( + + + + + + + + + + + + + + + ); +} + +export default SvgKn; diff --git a/src/Components/flags/Kp.js b/src/Components/flags/Kp.js new file mode 100644 index 0000000..ab7951d --- /dev/null +++ b/src/Components/flags/Kp.js @@ -0,0 +1,33 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgKp(props) { + return ( + + + + + + + + + + + + + + + + ); +} + +export default SvgKp; diff --git a/src/Components/flags/Kr.js b/src/Components/flags/Kr.js new file mode 100644 index 0000000..30447d1 --- /dev/null +++ b/src/Components/flags/Kr.js @@ -0,0 +1,48 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgKr(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgKr; diff --git a/src/Components/flags/Kw.js b/src/Components/flags/Kw.js new file mode 100644 index 0000000..754f009 --- /dev/null +++ b/src/Components/flags/Kw.js @@ -0,0 +1,26 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgKw(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgKw; diff --git a/src/Components/flags/Ky.js b/src/Components/flags/Ky.js new file mode 100644 index 0000000..1980ca3 --- /dev/null +++ b/src/Components/flags/Ky.js @@ -0,0 +1,309 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgKy(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgKy; diff --git a/src/Components/flags/Kz.js b/src/Components/flags/Kz.js new file mode 100644 index 0000000..32d37f6 --- /dev/null +++ b/src/Components/flags/Kz.js @@ -0,0 +1,46 @@ +import * as React from 'react'; +import Svg, {G, Path, Rect} from 'react-native-svg'; + +function SvgKz(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgKz; diff --git a/src/Components/flags/La.js b/src/Components/flags/La.js new file mode 100644 index 0000000..06db443 --- /dev/null +++ b/src/Components/flags/La.js @@ -0,0 +1,24 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgLa(props) { + return ( + + + + + + + + + + + + + ); +} + +export default SvgLa; diff --git a/src/Components/flags/Lb.js b/src/Components/flags/Lb.js new file mode 100644 index 0000000..a1d362b --- /dev/null +++ b/src/Components/flags/Lb.js @@ -0,0 +1,35 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgLb(props) { + return ( + + + + + + + + + + + + + + + + ); +} + +export default SvgLb; diff --git a/src/Components/flags/Lc.js b/src/Components/flags/Lc.js new file mode 100644 index 0000000..677582a --- /dev/null +++ b/src/Components/flags/Lc.js @@ -0,0 +1,20 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgLc(props) { + return ( + + + + + + + + + ); +} + +export default SvgLc; diff --git a/src/Components/flags/Li.js b/src/Components/flags/Li.js new file mode 100644 index 0000000..694db6f --- /dev/null +++ b/src/Components/flags/Li.js @@ -0,0 +1,80 @@ +import * as React from 'react'; +import Svg, {Circle, G, Path, Use} from 'react-native-svg'; + +function SvgLi(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgLi; diff --git a/src/Components/flags/Lk.js b/src/Components/flags/Lk.js new file mode 100644 index 0000000..30b3000 --- /dev/null +++ b/src/Components/flags/Lk.js @@ -0,0 +1,64 @@ +import * as React from 'react'; +import Svg, {G, Path, Use} from 'react-native-svg'; + +function SvgLk(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgLk; diff --git a/src/Components/flags/Lr.js b/src/Components/flags/Lr.js new file mode 100644 index 0000000..a9f6821 --- /dev/null +++ b/src/Components/flags/Lr.js @@ -0,0 +1,29 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgLr(props) { + return ( + + + + + + + + + + + + + + + ); +} + +export default SvgLr; diff --git a/src/Components/flags/Ls.js b/src/Components/flags/Ls.js new file mode 100644 index 0000000..f7fa467 --- /dev/null +++ b/src/Components/flags/Ls.js @@ -0,0 +1,29 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgLs(props) { + return ( + + + + + + + + + ); +} + +export default SvgLs; diff --git a/src/Components/flags/Lt.js b/src/Components/flags/Lt.js new file mode 100644 index 0000000..5104979 --- /dev/null +++ b/src/Components/flags/Lt.js @@ -0,0 +1,31 @@ +import * as React from 'react'; +import Svg, {G, Path, Rect} from 'react-native-svg'; + +function SvgLt(props) { + return ( + + + + + + + + ); +} + +export default SvgLt; diff --git a/src/Components/flags/Lu.js b/src/Components/flags/Lu.js new file mode 100644 index 0000000..64aaac9 --- /dev/null +++ b/src/Components/flags/Lu.js @@ -0,0 +1,14 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgLu(props) { + return ( + + + + + + ); +} + +export default SvgLu; diff --git a/src/Components/flags/Lv.js b/src/Components/flags/Lv.js new file mode 100644 index 0000000..b9e45df --- /dev/null +++ b/src/Components/flags/Lv.js @@ -0,0 +1,15 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgLv(props) { + return ( + + + + + + + ); +} + +export default SvgLv; diff --git a/src/Components/flags/Ly.js b/src/Components/flags/Ly.js new file mode 100644 index 0000000..f328a5b --- /dev/null +++ b/src/Components/flags/Ly.js @@ -0,0 +1,25 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgLy(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgLy; diff --git a/src/Components/flags/Ma.js b/src/Components/flags/Ma.js new file mode 100644 index 0000000..517b67c --- /dev/null +++ b/src/Components/flags/Ma.js @@ -0,0 +1,18 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgMa(props) { + return ( + + + + + ); +} + +export default SvgMa; diff --git a/src/Components/flags/Mc.js b/src/Components/flags/Mc.js new file mode 100644 index 0000000..2cbe4be --- /dev/null +++ b/src/Components/flags/Mc.js @@ -0,0 +1,15 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgMc(props) { + return ( + + + + + + + ); +} + +export default SvgMc; diff --git a/src/Components/flags/Md.js b/src/Components/flags/Md.js new file mode 100644 index 0000000..b010bc1 --- /dev/null +++ b/src/Components/flags/Md.js @@ -0,0 +1,342 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgMd(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgMd; diff --git a/src/Components/flags/Me.js b/src/Components/flags/Me.js new file mode 100644 index 0000000..ca5409a --- /dev/null +++ b/src/Components/flags/Me.js @@ -0,0 +1,400 @@ +import * as React from 'react'; +import Svg, {Circle, Ellipse, Path} from 'react-native-svg'; + +function SvgMe(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgMe; diff --git a/src/Components/flags/Mf.js b/src/Components/flags/Mf.js new file mode 100644 index 0000000..22e5c4f --- /dev/null +++ b/src/Components/flags/Mf.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgMf(props) { + return ( + + + + + + + + ); +} + +export default SvgMf; diff --git a/src/Components/flags/Mg.js b/src/Components/flags/Mg.js new file mode 100644 index 0000000..f8cc4a2 --- /dev/null +++ b/src/Components/flags/Mg.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgMg(props) { + return ( + + + + + + + + ); +} + +export default SvgMg; diff --git a/src/Components/flags/Mh.js b/src/Components/flags/Mh.js new file mode 100644 index 0000000..0965c19 --- /dev/null +++ b/src/Components/flags/Mh.js @@ -0,0 +1,19 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgMh(props) { + return ( + + + + + + + + ); +} + +export default SvgMh; diff --git a/src/Components/flags/Mk.js b/src/Components/flags/Mk.js new file mode 100644 index 0000000..0651053 --- /dev/null +++ b/src/Components/flags/Mk.js @@ -0,0 +1,24 @@ +import * as React from 'react'; +import Svg, {Circle, Path} from 'react-native-svg'; + +function SvgMk(props) { + return ( + + + + + + ); +} + +export default SvgMk; diff --git a/src/Components/flags/Ml.js b/src/Components/flags/Ml.js new file mode 100644 index 0000000..3342e09 --- /dev/null +++ b/src/Components/flags/Ml.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgMl(props) { + return ( + + + + + + + + ); +} + +export default SvgMl; diff --git a/src/Components/flags/Mm.js b/src/Components/flags/Mm.js new file mode 100644 index 0000000..3451ea3 --- /dev/null +++ b/src/Components/flags/Mm.js @@ -0,0 +1,57 @@ +import * as React from 'react'; +import Svg, {Defs, G, Path, Use} from 'react-native-svg'; + +function SvgMm(props) { + return ( + + + + + + + + + + + + + + + + + ); +} + +export default SvgMm; diff --git a/src/Components/flags/Mn.js b/src/Components/flags/Mn.js new file mode 100644 index 0000000..e63a056 --- /dev/null +++ b/src/Components/flags/Mn.js @@ -0,0 +1,41 @@ +import * as React from 'react'; +import Svg, {Circle, Path} from 'react-native-svg'; + +function SvgMn(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgMn; diff --git a/src/Components/flags/Mo.js b/src/Components/flags/Mo.js new file mode 100644 index 0000000..9881e71 --- /dev/null +++ b/src/Components/flags/Mo.js @@ -0,0 +1,32 @@ +import * as React from 'react'; +import Svg, {G, Path, Use} from 'react-native-svg'; + +function SvgMo(props) { + return ( + + + + + + + + + + ); +} + +export default SvgMo; diff --git a/src/Components/flags/Mp.js b/src/Components/flags/Mp.js new file mode 100644 index 0000000..44d2126 --- /dev/null +++ b/src/Components/flags/Mp.js @@ -0,0 +1,424 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgMp(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgMp; diff --git a/src/Components/flags/Mq.js b/src/Components/flags/Mq.js new file mode 100644 index 0000000..74ca938 --- /dev/null +++ b/src/Components/flags/Mq.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgMq(props) { + return ( + + + + + + + + ); +} + +export default SvgMq; diff --git a/src/Components/flags/Mr.js b/src/Components/flags/Mr.js new file mode 100644 index 0000000..d9712c8 --- /dev/null +++ b/src/Components/flags/Mr.js @@ -0,0 +1,22 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgMr(props) { + return ( + + + + + + + ); +} + +export default SvgMr; diff --git a/src/Components/flags/Ms.js b/src/Components/flags/Ms.js new file mode 100644 index 0000000..9fae8f6 --- /dev/null +++ b/src/Components/flags/Ms.js @@ -0,0 +1,93 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgMs(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgMs; diff --git a/src/Components/flags/Mt.js b/src/Components/flags/Mt.js new file mode 100644 index 0000000..d24a46d --- /dev/null +++ b/src/Components/flags/Mt.js @@ -0,0 +1,186 @@ +import * as React from 'react'; +import Svg, {G, Path, Rect} from 'react-native-svg'; + +function SvgMt(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgMt; diff --git a/src/Components/flags/Mu.js b/src/Components/flags/Mu.js new file mode 100644 index 0000000..49609b8 --- /dev/null +++ b/src/Components/flags/Mu.js @@ -0,0 +1,17 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgMu(props) { + return ( + + + + + + + + + ); +} + +export default SvgMu; diff --git a/src/Components/flags/Mv.js b/src/Components/flags/Mv.js new file mode 100644 index 0000000..3380b10 --- /dev/null +++ b/src/Components/flags/Mv.js @@ -0,0 +1,15 @@ +import * as React from 'react'; +import Svg, {Circle, Path} from 'react-native-svg'; + +function SvgMv(props) { + return ( + + + + + + + ); +} + +export default SvgMv; diff --git a/src/Components/flags/Mw.js b/src/Components/flags/Mw.js new file mode 100644 index 0000000..ffd6478 --- /dev/null +++ b/src/Components/flags/Mw.js @@ -0,0 +1,25 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgMw(props) { + return ( + + + + + + + + + + + ); +} + +export default SvgMw; diff --git a/src/Components/flags/Mx.js b/src/Components/flags/Mx.js new file mode 100644 index 0000000..b8d7cd4 --- /dev/null +++ b/src/Components/flags/Mx.js @@ -0,0 +1,1662 @@ +import * as React from 'react'; +import Svg, { + Circle, + Defs, + Ellipse, + LinearGradient, + Path, + RadialGradient, + Stop, +} from 'react-native-svg'; + +function SvgMx(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgMx; diff --git a/src/Components/flags/My.js b/src/Components/flags/My.js new file mode 100644 index 0000000..9a74dbc --- /dev/null +++ b/src/Components/flags/My.js @@ -0,0 +1,54 @@ +import * as React from 'react'; +import Svg, {G, Path, Use} from 'react-native-svg'; + +function SvgMy(props) { + return ( + + + + + + + + + + + + + + + + ); +} + +export default SvgMy; diff --git a/src/Components/flags/Mz.js b/src/Components/flags/Mz.js new file mode 100644 index 0000000..2a6440b --- /dev/null +++ b/src/Components/flags/Mz.js @@ -0,0 +1,68 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgMz(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgMz; diff --git a/src/Components/flags/Na.js b/src/Components/flags/Na.js new file mode 100644 index 0000000..09a07dc --- /dev/null +++ b/src/Components/flags/Na.js @@ -0,0 +1,37 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgNa(props) { + return ( + + + + + + + + + + + + + + + + + ); +} + +export default SvgNa; diff --git a/src/Components/flags/Nc.js b/src/Components/flags/Nc.js new file mode 100644 index 0000000..7d28a9a --- /dev/null +++ b/src/Components/flags/Nc.js @@ -0,0 +1,38 @@ +import * as React from 'react'; +import Svg, {Circle, Ellipse, Path, Use} from 'react-native-svg'; + +function SvgNc(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgNc; diff --git a/src/Components/flags/Ne.js b/src/Components/flags/Ne.js new file mode 100644 index 0000000..0f6830b --- /dev/null +++ b/src/Components/flags/Ne.js @@ -0,0 +1,15 @@ +import * as React from 'react'; +import Svg, {Circle, Path} from 'react-native-svg'; + +function SvgNe(props) { + return ( + + + + + + + ); +} + +export default SvgNe; diff --git a/src/Components/flags/Nf.js b/src/Components/flags/Nf.js new file mode 100644 index 0000000..ef44609 --- /dev/null +++ b/src/Components/flags/Nf.js @@ -0,0 +1,38 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgNf(props) { + return ( + + + + + + + + + + ); +} + +export default SvgNf; diff --git a/src/Components/flags/Ng.js b/src/Components/flags/Ng.js new file mode 100644 index 0000000..04b7d89 --- /dev/null +++ b/src/Components/flags/Ng.js @@ -0,0 +1,15 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgNg(props) { + return ( + + + + + + + ); +} + +export default SvgNg; diff --git a/src/Components/flags/Ni.js b/src/Components/flags/Ni.js new file mode 100644 index 0000000..025785b --- /dev/null +++ b/src/Components/flags/Ni.js @@ -0,0 +1,496 @@ +import * as React from 'react'; +import Svg, { + ClipPath, + Defs, + G, + LinearGradient, + Path, + Stop, + Use, +} from 'react-native-svg'; + +function SvgNi(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgNi; diff --git a/src/Components/flags/Nl.js b/src/Components/flags/Nl.js new file mode 100644 index 0000000..7d84859 --- /dev/null +++ b/src/Components/flags/Nl.js @@ -0,0 +1,14 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgNl(props) { + return ( + + + + + + ); +} + +export default SvgNl; diff --git a/src/Components/flags/No.js b/src/Components/flags/No.js new file mode 100644 index 0000000..050acb6 --- /dev/null +++ b/src/Components/flags/No.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgNo(props) { + return ( + + + + + + + + ); +} + +export default SvgNo; diff --git a/src/Components/flags/Np.js b/src/Components/flags/Np.js new file mode 100644 index 0000000..9bfcbba --- /dev/null +++ b/src/Components/flags/Np.js @@ -0,0 +1,31 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgNp(props) { + return ( + + + + + + + + + + + + + + + ); +} + +export default SvgNp; diff --git a/src/Components/flags/Nr.js b/src/Components/flags/Nr.js new file mode 100644 index 0000000..69f579b --- /dev/null +++ b/src/Components/flags/Nr.js @@ -0,0 +1,28 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgNr(props) { + return ( + + + + + + + + + + + + + ); +} + +export default SvgNr; diff --git a/src/Components/flags/Nu.js b/src/Components/flags/Nu.js new file mode 100644 index 0000000..dac3816 --- /dev/null +++ b/src/Components/flags/Nu.js @@ -0,0 +1,50 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgNu(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgNu; diff --git a/src/Components/flags/Nz.js b/src/Components/flags/Nz.js new file mode 100644 index 0000000..d276e69 --- /dev/null +++ b/src/Components/flags/Nz.js @@ -0,0 +1,149 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path, Use} from 'react-native-svg'; + +function SvgNz(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgNz; diff --git a/src/Components/flags/Om.js b/src/Components/flags/Om.js new file mode 100644 index 0000000..e5ec812 --- /dev/null +++ b/src/Components/flags/Om.js @@ -0,0 +1,630 @@ +import * as React from 'react'; +import Svg, { + Circle, + ClipPath, + Defs, + Ellipse, + G, + Path, + Rect, +} from 'react-native-svg'; + +function SvgOm(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgOm; diff --git a/src/Components/flags/Pa.js b/src/Components/flags/Pa.js new file mode 100644 index 0000000..fc81c65 --- /dev/null +++ b/src/Components/flags/Pa.js @@ -0,0 +1,31 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgPa(props) { + return ( + + + + + + + + + + + + + + + ); +} + +export default SvgPa; diff --git a/src/Components/flags/Pe.js b/src/Components/flags/Pe.js new file mode 100644 index 0000000..3c0d69e --- /dev/null +++ b/src/Components/flags/Pe.js @@ -0,0 +1,700 @@ +import * as React from 'react'; +import Svg, {G, Path, Use} from 'react-native-svg'; + +function SvgPe(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgPe; diff --git a/src/Components/flags/Pf.js b/src/Components/flags/Pf.js new file mode 100644 index 0000000..f5c4762 --- /dev/null +++ b/src/Components/flags/Pf.js @@ -0,0 +1,75 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgPf(props) { + return ( + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgPf; diff --git a/src/Components/flags/Pg.js b/src/Components/flags/Pg.js new file mode 100644 index 0000000..4040616 --- /dev/null +++ b/src/Components/flags/Pg.js @@ -0,0 +1,35 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgPg(props) { + return ( + + + + + + + + + + ); +} + +export default SvgPg; diff --git a/src/Components/flags/Ph.js b/src/Components/flags/Ph.js new file mode 100644 index 0000000..952d603 --- /dev/null +++ b/src/Components/flags/Ph.js @@ -0,0 +1,17 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgPh(props) { + return ( + + + + + + + + + ); +} + +export default SvgPh; diff --git a/src/Components/flags/Pk.js b/src/Components/flags/Pk.js new file mode 100644 index 0000000..b0e6bb4 --- /dev/null +++ b/src/Components/flags/Pk.js @@ -0,0 +1,28 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgPk(props) { + return ( + + + + + + + + + + + + + + + + ); +} + +export default SvgPk; diff --git a/src/Components/flags/Pl.js b/src/Components/flags/Pl.js new file mode 100644 index 0000000..664172d --- /dev/null +++ b/src/Components/flags/Pl.js @@ -0,0 +1,15 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgPl(props) { + return ( + + + + + + + ); +} + +export default SvgPl; diff --git a/src/Components/flags/Pm.js b/src/Components/flags/Pm.js new file mode 100644 index 0000000..657a7cd --- /dev/null +++ b/src/Components/flags/Pm.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgPm(props) { + return ( + + + + + + + + ); +} + +export default SvgPm; diff --git a/src/Components/flags/Pn.js b/src/Components/flags/Pn.js new file mode 100644 index 0000000..c91f48e --- /dev/null +++ b/src/Components/flags/Pn.js @@ -0,0 +1,234 @@ +import * as React from 'react'; +import Svg, {Circle, ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgPn(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgPn; diff --git a/src/Components/flags/Pr.js b/src/Components/flags/Pr.js new file mode 100644 index 0000000..6bda8b0 --- /dev/null +++ b/src/Components/flags/Pr.js @@ -0,0 +1,31 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgPr(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgPr; diff --git a/src/Components/flags/Ps.js b/src/Components/flags/Ps.js new file mode 100644 index 0000000..dffef9d --- /dev/null +++ b/src/Components/flags/Ps.js @@ -0,0 +1,24 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgPs(props) { + return ( + + + + + + + + + + + + + + + + ); +} + +export default SvgPs; diff --git a/src/Components/flags/Pt.js b/src/Components/flags/Pt.js new file mode 100644 index 0000000..7afea1f --- /dev/null +++ b/src/Components/flags/Pt.js @@ -0,0 +1,110 @@ +import * as React from 'react'; +import Svg, {Circle, G, Path, Use} from 'react-native-svg'; + +function SvgPt(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgPt; diff --git a/src/Components/flags/Pw.js b/src/Components/flags/Pw.js new file mode 100644 index 0000000..f643ebd --- /dev/null +++ b/src/Components/flags/Pw.js @@ -0,0 +1,27 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgPw(props) { + return ( + + + + + + + + + + + + ); +} + +export default SvgPw; diff --git a/src/Components/flags/Py.js b/src/Components/flags/Py.js new file mode 100644 index 0000000..d0e48ad --- /dev/null +++ b/src/Components/flags/Py.js @@ -0,0 +1,171 @@ +import * as React from 'react'; +import Svg, {Circle, G, Path} from 'react-native-svg'; + +function SvgPy(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgPy; diff --git a/src/Components/flags/Qa.js b/src/Components/flags/Qa.js new file mode 100644 index 0000000..33e3094 --- /dev/null +++ b/src/Components/flags/Qa.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgQa(props) { + return ( + + + + + ); +} + +export default SvgQa; diff --git a/src/Components/flags/Re.js b/src/Components/flags/Re.js new file mode 100644 index 0000000..5f0e136 --- /dev/null +++ b/src/Components/flags/Re.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgRe(props) { + return ( + + + + + + + + ); +} + +export default SvgRe; diff --git a/src/Components/flags/Ro.js b/src/Components/flags/Ro.js new file mode 100644 index 0000000..08fc26c --- /dev/null +++ b/src/Components/flags/Ro.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgRo(props) { + return ( + + + + + + + + ); +} + +export default SvgRo; diff --git a/src/Components/flags/Rs.js b/src/Components/flags/Rs.js new file mode 100644 index 0000000..d8bc752 --- /dev/null +++ b/src/Components/flags/Rs.js @@ -0,0 +1,1072 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path, Use} from 'react-native-svg'; + +function SvgRs(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgRs; diff --git a/src/Components/flags/Ru.js b/src/Components/flags/Ru.js new file mode 100644 index 0000000..16a1210 --- /dev/null +++ b/src/Components/flags/Ru.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgRu(props) { + return ( + + + + + + + + ); +} + +export default SvgRu; diff --git a/src/Components/flags/Rw.js b/src/Components/flags/Rw.js new file mode 100644 index 0000000..be124bb --- /dev/null +++ b/src/Components/flags/Rw.js @@ -0,0 +1,36 @@ +import * as React from 'react'; +import Svg, {Circle, G, Path, Use} from 'react-native-svg'; + +function SvgRw(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgRw; diff --git a/src/Components/flags/Sa.js b/src/Components/flags/Sa.js new file mode 100644 index 0000000..be88838 --- /dev/null +++ b/src/Components/flags/Sa.js @@ -0,0 +1,86 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgSa(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgSa; diff --git a/src/Components/flags/Sb.js b/src/Components/flags/Sb.js new file mode 100644 index 0000000..693162e --- /dev/null +++ b/src/Components/flags/Sb.js @@ -0,0 +1,29 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgSb(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgSb; diff --git a/src/Components/flags/Sc.js b/src/Components/flags/Sc.js new file mode 100644 index 0000000..39dce06 --- /dev/null +++ b/src/Components/flags/Sc.js @@ -0,0 +1,27 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgSc(props) { + return ( + + + + + + + + + + + + + + + ); +} + +export default SvgSc; diff --git a/src/Components/flags/Sd.js b/src/Components/flags/Sd.js new file mode 100644 index 0000000..cd79a8a --- /dev/null +++ b/src/Components/flags/Sd.js @@ -0,0 +1,26 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgSd(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgSd; diff --git a/src/Components/flags/Se.js b/src/Components/flags/Se.js new file mode 100644 index 0000000..bc82c72 --- /dev/null +++ b/src/Components/flags/Se.js @@ -0,0 +1,14 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgSe(props) { + return ( + + + + + + ); +} + +export default SvgSe; diff --git a/src/Components/flags/Sg.js b/src/Components/flags/Sg.js new file mode 100644 index 0000000..5aec643 --- /dev/null +++ b/src/Components/flags/Sg.js @@ -0,0 +1,28 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgSg(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgSg; diff --git a/src/Components/flags/Sh.js b/src/Components/flags/Sh.js new file mode 100644 index 0000000..d69cecc --- /dev/null +++ b/src/Components/flags/Sh.js @@ -0,0 +1,305 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgSh(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgSh; diff --git a/src/Components/flags/Si.js b/src/Components/flags/Si.js new file mode 100644 index 0000000..dcec4dd --- /dev/null +++ b/src/Components/flags/Si.js @@ -0,0 +1,49 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgSi(props) { + return ( + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgSi; diff --git a/src/Components/flags/Sj.js b/src/Components/flags/Sj.js new file mode 100644 index 0000000..e08dfdd --- /dev/null +++ b/src/Components/flags/Sj.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgSj(props) { + return ( + + + + + + + + ); +} + +export default SvgSj; diff --git a/src/Components/flags/Sk.js b/src/Components/flags/Sk.js new file mode 100644 index 0000000..86d6770 --- /dev/null +++ b/src/Components/flags/Sk.js @@ -0,0 +1,30 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgSk(props) { + return ( + + + + + + + + + + ); +} + +export default SvgSk; diff --git a/src/Components/flags/Sl.js b/src/Components/flags/Sl.js new file mode 100644 index 0000000..15c88ec --- /dev/null +++ b/src/Components/flags/Sl.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgSl(props) { + return ( + + + + + + + + ); +} + +export default SvgSl; diff --git a/src/Components/flags/Sm.js b/src/Components/flags/Sm.js new file mode 100644 index 0000000..5ee231a --- /dev/null +++ b/src/Components/flags/Sm.js @@ -0,0 +1,383 @@ +import * as React from 'react'; +import Svg, {G, Path, Text, TSpan} from 'react-native-svg'; + +function SvgSm(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {'L'} + + + + + {'I'} + + + + + {'B'} + + + + + {'E'} + + + + + {'R'} + + + + + {'T'} + + + + + {'A'} + + + + + {'S'} + + + + + + ); +} + +export default SvgSm; diff --git a/src/Components/flags/Sn.js b/src/Components/flags/Sn.js new file mode 100644 index 0000000..6f73a7c --- /dev/null +++ b/src/Components/flags/Sn.js @@ -0,0 +1,20 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgSn(props) { + return ( + + + + + + + + + ); +} + +export default SvgSn; diff --git a/src/Components/flags/So.js b/src/Components/flags/So.js new file mode 100644 index 0000000..39299cf --- /dev/null +++ b/src/Components/flags/So.js @@ -0,0 +1,26 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgSo(props) { + return ( + + + + + + + + + + + + ); +} + +export default SvgSo; diff --git a/src/Components/flags/Sr.js b/src/Components/flags/Sr.js new file mode 100644 index 0000000..cda649c --- /dev/null +++ b/src/Components/flags/Sr.js @@ -0,0 +1,18 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgSr(props) { + return ( + + + + + + + ); +} + +export default SvgSr; diff --git a/src/Components/flags/Ss.js b/src/Components/flags/Ss.js new file mode 100644 index 0000000..b4b3658 --- /dev/null +++ b/src/Components/flags/Ss.js @@ -0,0 +1,17 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgSs(props) { + return ( + + + + + + + + + ); +} + +export default SvgSs; diff --git a/src/Components/flags/St.js b/src/Components/flags/St.js new file mode 100644 index 0000000..962e4c5 --- /dev/null +++ b/src/Components/flags/St.js @@ -0,0 +1,56 @@ +import * as React from 'react'; +import Svg, {G, Path, Use} from 'react-native-svg'; + +function SvgSt(props) { + return ( + + + + + + + + + + + + + + + + + ); +} + +export default SvgSt; diff --git a/src/Components/flags/Sv.js b/src/Components/flags/Sv.js new file mode 100644 index 0000000..5e86b00 --- /dev/null +++ b/src/Components/flags/Sv.js @@ -0,0 +1,2052 @@ +import * as React from 'react'; +import Svg, {G, Path, Use} from 'react-native-svg'; + +function SvgSv(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgSv; diff --git a/src/Components/flags/Sx.js b/src/Components/flags/Sx.js new file mode 100644 index 0000000..26f9be3 --- /dev/null +++ b/src/Components/flags/Sx.js @@ -0,0 +1,246 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgSx(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgSx; diff --git a/src/Components/flags/Sy.js b/src/Components/flags/Sy.js new file mode 100644 index 0000000..6430f92 --- /dev/null +++ b/src/Components/flags/Sy.js @@ -0,0 +1,27 @@ +import * as React from 'react'; +import Svg, {Path, Rect} from 'react-native-svg'; + +function SvgSy(props) { + return ( + + + + + + + ); +} + +export default SvgSy; diff --git a/src/Components/flags/Sz.js b/src/Components/flags/Sz.js new file mode 100644 index 0000000..43e2497 --- /dev/null +++ b/src/Components/flags/Sz.js @@ -0,0 +1,167 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path, Rect} from 'react-native-svg'; + +function SvgSz(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgSz; diff --git a/src/Components/flags/Tc.js b/src/Components/flags/Tc.js new file mode 100644 index 0000000..50bd212 --- /dev/null +++ b/src/Components/flags/Tc.js @@ -0,0 +1,330 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgTc(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgTc; diff --git a/src/Components/flags/Td.js b/src/Components/flags/Td.js new file mode 100644 index 0000000..9bd77ee --- /dev/null +++ b/src/Components/flags/Td.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgTd(props) { + return ( + + + + + + + + ); +} + +export default SvgTd; diff --git a/src/Components/flags/Tf.js b/src/Components/flags/Tf.js new file mode 100644 index 0000000..3ab0fb1 --- /dev/null +++ b/src/Components/flags/Tf.js @@ -0,0 +1,66 @@ +import * as React from 'react'; +import Svg, {Defs, Path, Use} from 'react-native-svg'; + +function SvgTf(props) { + return ( + + + + + + + + + + + + + + + + ); +} + +export default SvgTf; diff --git a/src/Components/flags/Tg.js b/src/Components/flags/Tg.js new file mode 100644 index 0000000..2040aff --- /dev/null +++ b/src/Components/flags/Tg.js @@ -0,0 +1,26 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgTg(props) { + return ( + + + + + + + + + + + + + + + ); +} + +export default SvgTg; diff --git a/src/Components/flags/Th.js b/src/Components/flags/Th.js new file mode 100644 index 0000000..18ed542 --- /dev/null +++ b/src/Components/flags/Th.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgTh(props) { + return ( + + + + + + + + ); +} + +export default SvgTh; diff --git a/src/Components/flags/Tj.js b/src/Components/flags/Tj.js new file mode 100644 index 0000000..e50f7fa --- /dev/null +++ b/src/Components/flags/Tj.js @@ -0,0 +1,96 @@ +import * as React from 'react'; +import Svg, {G, Path, Use} from 'react-native-svg'; + +function SvgTj(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgTj; diff --git a/src/Components/flags/Tk.js b/src/Components/flags/Tk.js new file mode 100644 index 0000000..17cb60c --- /dev/null +++ b/src/Components/flags/Tk.js @@ -0,0 +1,20 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgTk(props) { + return ( + + + + + + ); +} + +export default SvgTk; diff --git a/src/Components/flags/Tl.js b/src/Components/flags/Tl.js new file mode 100644 index 0000000..5140cb5 --- /dev/null +++ b/src/Components/flags/Tl.js @@ -0,0 +1,25 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgTl(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgTl; diff --git a/src/Components/flags/Tm.js b/src/Components/flags/Tm.js new file mode 100644 index 0000000..cf48ce8 --- /dev/null +++ b/src/Components/flags/Tm.js @@ -0,0 +1,853 @@ +import * as React from 'react'; +import Svg, {Circle, ClipPath, Defs, Ellipse, G, Path} from 'react-native-svg'; + +function SvgTm(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgTm; diff --git a/src/Components/flags/Tn.js b/src/Components/flags/Tn.js new file mode 100644 index 0000000..8b0cb63 --- /dev/null +++ b/src/Components/flags/Tn.js @@ -0,0 +1,34 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgTn(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgTn; diff --git a/src/Components/flags/To.js b/src/Components/flags/To.js new file mode 100644 index 0000000..1b479b8 --- /dev/null +++ b/src/Components/flags/To.js @@ -0,0 +1,19 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgTo(props) { + return ( + + + + + + + + + + + ); +} + +export default SvgTo; diff --git a/src/Components/flags/Tr.js b/src/Components/flags/Tr.js new file mode 100644 index 0000000..06a1c71 --- /dev/null +++ b/src/Components/flags/Tr.js @@ -0,0 +1,26 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgTr(props) { + return ( + + + + + + + + + ); +} + +export default SvgTr; diff --git a/src/Components/flags/Tt.js b/src/Components/flags/Tt.js new file mode 100644 index 0000000..1156f23 --- /dev/null +++ b/src/Components/flags/Tt.js @@ -0,0 +1,18 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgTt(props) { + return ( + + + + + + ); +} + +export default SvgTt; diff --git a/src/Components/flags/Tv.js b/src/Components/flags/Tv.js new file mode 100644 index 0000000..db9acad --- /dev/null +++ b/src/Components/flags/Tv.js @@ -0,0 +1,28 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgTv(props) { + return ( + + + + + + + + + + ); +} + +export default SvgTv; diff --git a/src/Components/flags/Tw.js b/src/Components/flags/Tw.js new file mode 100644 index 0000000..4f08a68 --- /dev/null +++ b/src/Components/flags/Tw.js @@ -0,0 +1,36 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgTw(props) { + return ( + + + + + + + + + + + + + + + ); +} + +export default SvgTw; diff --git a/src/Components/flags/Tz.js b/src/Components/flags/Tz.js new file mode 100644 index 0000000..8b127e6 --- /dev/null +++ b/src/Components/flags/Tz.js @@ -0,0 +1,29 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgTz(props) { + return ( + + + + + + + + + + + + + + ); +} + +export default SvgTz; diff --git a/src/Components/flags/Ua.js b/src/Components/flags/Ua.js new file mode 100644 index 0000000..63c7cdd --- /dev/null +++ b/src/Components/flags/Ua.js @@ -0,0 +1,15 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgUa(props) { + return ( + + + + + + + ); +} + +export default SvgUa; diff --git a/src/Components/flags/Ug.js b/src/Components/flags/Ug.js new file mode 100644 index 0000000..a913e9f --- /dev/null +++ b/src/Components/flags/Ug.js @@ -0,0 +1,134 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgUg(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgUg; diff --git a/src/Components/flags/Um.js b/src/Components/flags/Um.js new file mode 100644 index 0000000..939d7db --- /dev/null +++ b/src/Components/flags/Um.js @@ -0,0 +1,33 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgUm(props) { + return ( + + + + + + + + + + + + + + + + ); +} + +export default SvgUm; diff --git a/src/Components/flags/Un.js b/src/Components/flags/Un.js new file mode 100644 index 0000000..4545d3f --- /dev/null +++ b/src/Components/flags/Un.js @@ -0,0 +1,55 @@ +import * as React from 'react'; +import Svg, {Circle, G, Path, Use} from 'react-native-svg'; + +function SvgUn(props) { + return ( + + + + + + + + + + + + + + + + + ); +} + +export default SvgUn; diff --git a/src/Components/flags/Us.js b/src/Components/flags/Us.js new file mode 100644 index 0000000..eabc271 --- /dev/null +++ b/src/Components/flags/Us.js @@ -0,0 +1,28 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgUs(props) { + return ( + + + + + + + + + + + ); +} + +export default SvgUs; diff --git a/src/Components/flags/Uy.js b/src/Components/flags/Uy.js new file mode 100644 index 0000000..0d43e55 --- /dev/null +++ b/src/Components/flags/Uy.js @@ -0,0 +1,73 @@ +import * as React from 'react'; +import Svg, {Circle, G, Path, Use} from 'react-native-svg'; + +function SvgUy(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgUy; diff --git a/src/Components/flags/Uz.js b/src/Components/flags/Uz.js new file mode 100644 index 0000000..ea37279 --- /dev/null +++ b/src/Components/flags/Uz.js @@ -0,0 +1,65 @@ +import * as React from 'react'; +import Svg, {Circle, G, Path, Use} from 'react-native-svg'; + +function SvgUz(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgUz; diff --git a/src/Components/flags/Va.js b/src/Components/flags/Va.js new file mode 100644 index 0000000..2611bf3 --- /dev/null +++ b/src/Components/flags/Va.js @@ -0,0 +1,2159 @@ +import * as React from 'react'; +import Svg, {Circle, Ellipse, G, Path} from 'react-native-svg'; + +function SvgVa(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgVa; diff --git a/src/Components/flags/Vc.js b/src/Components/flags/Vc.js new file mode 100644 index 0000000..3991ba5 --- /dev/null +++ b/src/Components/flags/Vc.js @@ -0,0 +1,20 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgVc(props) { + return ( + + + + + + + + + ); +} + +export default SvgVc; diff --git a/src/Components/flags/Ve.js b/src/Components/flags/Ve.js new file mode 100644 index 0000000..6208339 --- /dev/null +++ b/src/Components/flags/Ve.js @@ -0,0 +1,75 @@ +import * as React from 'react'; +import Svg, {Defs, G, Path, Use} from 'react-native-svg'; + +function SvgVe(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgVe; diff --git a/src/Components/flags/Vg.js b/src/Components/flags/Vg.js new file mode 100644 index 0000000..e6357b5 --- /dev/null +++ b/src/Components/flags/Vg.js @@ -0,0 +1,773 @@ +import * as React from 'react'; +import Svg, { + ClipPath, + Defs, + G, + LinearGradient, + Path, + Stop, +} from 'react-native-svg'; + +function SvgVg(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgVg; diff --git a/src/Components/flags/Vi.js b/src/Components/flags/Vi.js new file mode 100644 index 0000000..94cf015 --- /dev/null +++ b/src/Components/flags/Vi.js @@ -0,0 +1,115 @@ +import * as React from 'react'; +import Svg, {Ellipse, G, Path, Use} from 'react-native-svg'; + +function SvgVi(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgVi; diff --git a/src/Components/flags/Vn.js b/src/Components/flags/Vn.js new file mode 100644 index 0000000..6c4d9db --- /dev/null +++ b/src/Components/flags/Vn.js @@ -0,0 +1,26 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgVn(props) { + return ( + + + + + + + + + + + + ); +} + +export default SvgVn; diff --git a/src/Components/flags/Vu.js b/src/Components/flags/Vu.js new file mode 100644 index 0000000..7d2dc2b --- /dev/null +++ b/src/Components/flags/Vu.js @@ -0,0 +1,39 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgVu(props) { + return ( + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgVu; diff --git a/src/Components/flags/Wf.js b/src/Components/flags/Wf.js new file mode 100644 index 0000000..da8ef33 --- /dev/null +++ b/src/Components/flags/Wf.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgWf(props) { + return ( + + + + + + + + ); +} + +export default SvgWf; diff --git a/src/Components/flags/Ws.js b/src/Components/flags/Ws.js new file mode 100644 index 0000000..b419bd9 --- /dev/null +++ b/src/Components/flags/Ws.js @@ -0,0 +1,19 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgWs(props) { + return ( + + + + + + + + ); +} + +export default SvgWs; diff --git a/src/Components/flags/Xk.js b/src/Components/flags/Xk.js new file mode 100644 index 0000000..4570ce7 --- /dev/null +++ b/src/Components/flags/Xk.js @@ -0,0 +1,23 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgXk(props) { + return ( + + + + + + + + + ); +} + +export default SvgXk; diff --git a/src/Components/flags/Ye.js b/src/Components/flags/Ye.js new file mode 100644 index 0000000..03a8990 --- /dev/null +++ b/src/Components/flags/Ye.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgYe(props) { + return ( + + + + + + + + ); +} + +export default SvgYe; diff --git a/src/Components/flags/Yt.js b/src/Components/flags/Yt.js new file mode 100644 index 0000000..278651a --- /dev/null +++ b/src/Components/flags/Yt.js @@ -0,0 +1,16 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgYt(props) { + return ( + + + + + + + + ); +} + +export default SvgYt; diff --git a/src/Components/flags/Za.js b/src/Components/flags/Za.js new file mode 100644 index 0000000..b0e0381 --- /dev/null +++ b/src/Components/flags/Za.js @@ -0,0 +1,35 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgZa(props) { + return ( + + + + + + + + + + + + + + + + + + ); +} + +export default SvgZa; diff --git a/src/Components/flags/Zm.js b/src/Components/flags/Zm.js new file mode 100644 index 0000000..713d00e --- /dev/null +++ b/src/Components/flags/Zm.js @@ -0,0 +1,87 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgZm(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgZm; diff --git a/src/Components/flags/Zw.js b/src/Components/flags/Zw.js new file mode 100644 index 0000000..7d09b41 --- /dev/null +++ b/src/Components/flags/Zw.js @@ -0,0 +1,55 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path, Rect, Use} from 'react-native-svg'; + +function SvgZw(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgZw; diff --git a/src/Components/flags/index.js b/src/Components/flags/index.js new file mode 100644 index 0000000..2686ccc --- /dev/null +++ b/src/Components/flags/index.js @@ -0,0 +1,517 @@ +import AD from './Ad'; +import AE from './Ae'; +import AF from './Af'; +import AG from './Ag'; +import AI from './Ai'; +import AL from './Al'; +import AM from './Am'; +import AO from './Ao'; +import AQ from './Aq'; +import AR from './Ar'; +import AS from './As'; +import AT from './At'; +import AU from './Au'; +import AW from './Aw'; +import AX from './Ax'; +import AZ from './Az'; +import BA from './Ba'; +import BB from './Bb'; +import BD from './Bd'; +import BE from './Be'; +import BF from './Bf'; +import BG from './Bg'; +import BH from './Bh'; +import BI from './Bi'; +import BJ from './Bj'; +import BL from './Bl'; +import BM from './Bm'; +import BN from './Bn'; +import BO from './Bo'; +import BQ from './Bq'; +import BR from './Br'; +import BS from './Bs'; +import BT from './Bt'; +import BV from './Bv'; +import BW from './Bw'; +import BY from './By'; +import BZ from './Bz'; +import CA from './Ca'; +import CC from './Cc'; +import CD from './Cd'; +import CF from './Cf'; +import CG from './Cg'; +import CH from './Ch'; +import CI from './Ci'; +import CK from './Ck'; +import CL from './Cl'; +import CM from './Cm'; +import CN from './Cn'; +import CO from './Co'; +import CR from './Cr'; +import CU from './Cu'; +import CV from './Cv'; +import CW from './Cw'; +import CX from './Cx'; +import CY from './Cy'; +import CZ from './Cz'; +import DE from './De'; +import DJ from './Dj'; +import DK from './Dk'; +import DM from './Dm'; +import DO from './Do'; +import DZ from './Dz'; +import EC from './Ec'; +import EE from './Ee'; +import EG from './Eg'; +import EH from './Eh'; +import ER from './Er'; +import ES from './Es'; +import ESCA from './EsCa'; +import ET from './Et'; +import EU from './Eu'; +import FI from './Fi'; +import FJ from './Fj'; +import FK from './Fk'; +import FM from './Fm'; +import FO from './Fo'; +import FR from './Fr'; +import GA from './Ga'; +import GB from './Gb'; +import GBENG from './GbEng'; +import GBNIR from './GbNir'; +import GBSCT from './GbSct'; +import GBWLS from './GbWls'; +import GD from './Gd'; +import GE from './Ge'; +import GF from './Gf'; +import GG from './Gg'; +import GH from './Gh'; +import GI from './Gi'; +import GL from './Gl'; +import GM from './Gm'; +import GN from './Gn'; +import GP from './Gp'; +import GQ from './Gq'; +import GR from './Gr'; +import GS from './Gs'; +import GT from './Gt'; +import GU from './Gu'; +import GW from './Gw'; +import GY from './Gy'; +import HK from './Hk'; +import HM from './Hm'; +import HN from './Hn'; +import HR from './Hr'; +import HT from './Ht'; +import HU from './Hu'; +import ID from './Id'; +import IE from './Ie'; +import IL from './Il'; +import IM from './Im'; +import IN from './In'; +import IO from './Io'; +import IQ from './Iq'; +import IR from './Ir'; +import IS from './Is'; +import IT from './It'; +import JE from './Je'; +import JM from './Jm'; +import JO from './Jo'; +import JP from './Jp'; +import KE from './Ke'; +import KG from './Kg'; +import KH from './Kh'; +import KI from './Ki'; +import KM from './Km'; +import KN from './Kn'; +import KP from './Kp'; +import KR from './Kr'; +import KW from './Kw'; +import KY from './Ky'; +import KZ from './Kz'; +import LA from './La'; +import LB from './Lb'; +import LC from './Lc'; +import LI from './Li'; +import LK from './Lk'; +import LR from './Lr'; +import LS from './Ls'; +import LT from './Lt'; +import LU from './Lu'; +import LV from './Lv'; +import LY from './Ly'; +import MA from './Ma'; +import MC from './Mc'; +import MD from './Md'; +import ME from './Me'; +import MF from './Mf'; +import MG from './Mg'; +import MH from './Mh'; +import MK from './Mk'; +import ML from './Ml'; +import MM from './Mm'; +import MN from './Mn'; +import MO from './Mo'; +import MP from './Mp'; +import MQ from './Mq'; +import MR from './Mr'; +import MS from './Ms'; +import MT from './Mt'; +import MU from './Mu'; +import MV from './Mv'; +import MW from './Mw'; +import MX from './Mx'; +import MY from './My'; +import MZ from './Mz'; +import NA from './Na'; +import NC from './Nc'; +import NE from './Ne'; +import NF from './Nf'; +import NG from './Ng'; +import NI from './Ni'; +import NL from './Nl'; +import NO from './No'; +import NP from './Np'; +import NR from './Nr'; +import NU from './Nu'; +import NZ from './Nz'; +import OM from './Om'; +import PA from './Pa'; +import PE from './Pe'; +import PF from './Pf'; +import PG from './Pg'; +import PH from './Ph'; +import PK from './Pk'; +import PL from './Pl'; +import PM from './Pm'; +import PN from './Pn'; +import PR from './Pr'; +import PS from './Ps'; +import PT from './Pt'; +import PW from './Pw'; +import PY from './Py'; +import QA from './Qa'; +import RE from './Re'; +import RO from './Ro'; +import RS from './Rs'; +import RU from './Ru'; +import RW from './Rw'; +import SA from './Sa'; +import SB from './Sb'; +import SC from './Sc'; +import SD from './Sd'; +import SE from './Se'; +import SG from './Sg'; +import SH from './Sh'; +import SI from './Si'; +import SJ from './Sj'; +import SK from './Sk'; +import SL from './Sl'; +import SM from './Sm'; +import SN from './Sn'; +import SO from './So'; +import SR from './Sr'; +import SS from './Ss'; +import ST from './St'; +import SV from './Sv'; +import SX from './Sx'; +import SY from './Sy'; +import SZ from './Sz'; +import TC from './Tc'; +import TD from './Td'; +import TF from './Tf'; +import TG from './Tg'; +import TH from './Th'; +import TJ from './Tj'; +import TK from './Tk'; +import TL from './Tl'; +import TM from './Tm'; +import TN from './Tn'; +import TO from './To'; +import TR from './Tr'; +import TT from './Tt'; +import TV from './Tv'; +import TW from './Tw'; +import TZ from './Tz'; +import UA from './Ua'; +import UG from './Ug'; +import UM from './Um'; +import UN from './Un'; +import US from './Us'; +import UY from './Uy'; +import UZ from './Uz'; +import VA from './Va'; +import VC from './Vc'; +import VE from './Ve'; +import VG from './Vg'; +import VI from './Vi'; +import VN from './Vn'; +import VU from './Vu'; +import WF from './Wf'; +import WS from './Ws'; +import XK from './Xk'; +import YE from './Ye'; +import YT from './Yt'; +import ZA from './Za'; +import ZM from './Zm'; +import ZW from './Zw'; + +export { + AD, + AE, + AF, + AG, + AI, + AL, + AM, + AO, + AQ, + AR, + AS, + AT, + AU, + AW, + AX, + AZ, + BA, + BB, + BD, + BE, + BF, + BG, + BH, + BI, + BJ, + BL, + BM, + BN, + BO, + BQ, + BR, + BS, + BT, + BV, + BW, + BY, + BZ, + CA, + CC, + CD, + CF, + CG, + CH, + CI, + CK, + CL, + CM, + CN, + CO, + CR, + CU, + CV, + CW, + CX, + CY, + CZ, + DE, + DJ, + DK, + DM, + DO, + DZ, + EC, + EE, + EG, + EH, + ER, + ESCA, + ES, + ET, + EU, + FI, + FJ, + FK, + FM, + FO, + FR, + GA, + GBENG, + GBNIR, + GBSCT, + GBWLS, + GB, + GD, + GE, + GF, + GG, + GH, + GI, + GL, + GM, + GN, + GP, + GQ, + GR, + GS, + GT, + GU, + GW, + GY, + HK, + HM, + HN, + HR, + HT, + HU, + ID, + IE, + IL, + IM, + IN, + IO, + IQ, + IR, + IS, + IT, + JE, + JM, + JO, + JP, + KE, + KG, + KH, + KI, + KM, + KN, + KP, + KR, + KW, + KY, + KZ, + LA, + LB, + LC, + LI, + LK, + LR, + LS, + LT, + LU, + LV, + LY, + MA, + MC, + MD, + ME, + MF, + MG, + MH, + MK, + ML, + MM, + MN, + MO, + MP, + MQ, + MR, + MS, + MT, + MU, + MV, + MW, + MX, + MY, + MZ, + NA, + NC, + NE, + NF, + NG, + NI, + NL, + NO, + NP, + NR, + NU, + NZ, + OM, + PA, + PE, + PF, + PG, + PH, + PK, + PL, + PM, + PN, + PR, + PS, + PT, + PW, + PY, + QA, + RE, + RO, + RS, + RU, + RW, + SA, + SB, + SC, + SD, + SE, + SG, + SH, + SI, + SJ, + SK, + SL, + SM, + SN, + SO, + SR, + SS, + ST, + SV, + SX, + SY, + SZ, + TC, + TD, + TF, + TG, + TH, + TJ, + TK, + TL, + TM, + TN, + TO, + TR, + TT, + TV, + TW, + TZ, + UA, + UG, + UM, + UN, + US, + UY, + UZ, + VA, + VC, + VE, + VG, + VI, + VN, + VU, + WF, + WS, + XK, + YE, + YT, + ZA, + ZM, + ZW, +}; diff --git a/src/Components/icons/apple.js b/src/Components/icons/apple.js new file mode 100644 index 0000000..24b02f5 --- /dev/null +++ b/src/Components/icons/apple.js @@ -0,0 +1,12 @@ +import * as React from 'react'; +import Svg, {Path} from 'react-native-svg'; + +function SvgComponent(props) { + return ( + + + + ); +} + +export default SvgComponent; diff --git a/src/Components/icons/cover.js b/src/Components/icons/cover.js new file mode 100644 index 0000000..285c7ab --- /dev/null +++ b/src/Components/icons/cover.js @@ -0,0 +1,29 @@ +import * as React from 'react'; +import Svg, {Defs, G, Path} from 'react-native-svg'; +/* SVGR has dropped some elements not supported by react-native-svg: style, title */ + +function SvgComponent(props) { + return ( + + + + + + + + + + + ); +} + +export default SvgComponent; diff --git a/src/Components/icons/distance.js b/src/Components/icons/distance.js new file mode 100644 index 0000000..6b82755 --- /dev/null +++ b/src/Components/icons/distance.js @@ -0,0 +1,25 @@ +import * as React from 'react'; +import Svg, {Defs, G, Path} from 'react-native-svg'; +/* SVGR has dropped some elements not supported by react-native-svg: style, title */ + +function SvgComponent(props) { + return ( + + + + + + + + + + ); +} + +export default SvgComponent; diff --git a/src/Components/icons/facebook.js b/src/Components/icons/facebook.js new file mode 100644 index 0000000..808413f --- /dev/null +++ b/src/Components/icons/facebook.js @@ -0,0 +1,23 @@ +import * as React from 'react'; +import Svg, {G, Path} from 'react-native-svg'; + +function SvgComponent(props) { + return ( + + + + + + + + + ); +} + +export default SvgComponent; diff --git a/src/Components/icons/google.js b/src/Components/icons/google.js new file mode 100644 index 0000000..f655824 --- /dev/null +++ b/src/Components/icons/google.js @@ -0,0 +1,43 @@ +import * as React from 'react'; +import Svg, {ClipPath, Defs, G, Path} from 'react-native-svg'; + +function SvgComponent(props) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default SvgComponent; diff --git a/src/Components/icons/home.js b/src/Components/icons/home.js new file mode 100644 index 0000000..af1a730 --- /dev/null +++ b/src/Components/icons/home.js @@ -0,0 +1,25 @@ +import * as React from 'react'; +import Svg, {Defs, G, Path} from 'react-native-svg'; +/* SVGR has dropped some elements not supported by react-native-svg: style, title */ + +function SvgComponent(props) { + return ( + + + + + + + + + + ); +} + +export default SvgComponent; diff --git a/src/Components/icons/wash.js b/src/Components/icons/wash.js new file mode 100644 index 0000000..27d4889 --- /dev/null +++ b/src/Components/icons/wash.js @@ -0,0 +1,27 @@ +import * as React from 'react'; +import Svg, {Defs, G, Path} from 'react-native-svg'; +/* SVGR has dropped some elements not supported by react-native-svg: style, title */ + +function SvgComponent(props) { + return ( + + + + + + + + + + + + ); +} + +export default SvgComponent; diff --git a/src/Configs.ts b/src/Configs.ts new file mode 100644 index 0000000..e717acf --- /dev/null +++ b/src/Configs.ts @@ -0,0 +1,2 @@ +export const API_URL = 'SERVER_API_URL'; +export const API_KEY = 'SERVER_API_KEY'; diff --git a/src/Containers/Home.tsx b/src/Containers/Home.tsx new file mode 100644 index 0000000..7ff65d4 --- /dev/null +++ b/src/Containers/Home.tsx @@ -0,0 +1,549 @@ +import {StackNavigationProp} from '@react-navigation/stack'; +import _ from 'lodash'; +import React, {useEffect, useState} from 'react'; +import {useTranslation} from 'react-i18next'; +import { + Alert, + AppState, + AppStateStatus, + I18nManager, + Image, + Linking, + Platform, + ScrollView, + StatusBar, + StyleSheet, + TouchableOpacity, + View, +} from 'react-native'; +import Modal from 'react-native-modal'; +import RNPickerSelect from 'react-native-picker-select'; +import ReactNativeRestart from 'react-native-restart'; +import EIcon from 'react-native-vector-icons/Entypo'; +import FAIcon from 'react-native-vector-icons/FontAwesome'; +import Icon from 'react-native-vector-icons/Ionicons'; +import {connect, ConnectedProps, useDispatch} from 'react-redux'; + +import {corona} from '../../Assets/Images'; +import {updateLanguage, updateStats} from '../Action'; +import {CountryStats} from '../Action/types'; +import {getCountryStats} from '../API'; +import {RootStackParamList} from '../App'; +import Flag from '../Components/Flag'; +import CoverIcon from '../Components/icons/cover'; +import ContactIcon from '../Components/icons/distance'; +import HomeIcon from '../Components/icons/home'; +import WashIcon from '../Components/icons/wash'; +import CustomText from '../Components/Text'; +import {Language, languages} from '../I18n/i18n'; +import {RootState} from '../Reducer'; +import Colors from '../Theme/Colors'; +import Fonts from '../Theme/Fonts'; +import HowToModal from './Modals/HowToModal'; + +const mapState = (state: RootState) => ({ + configs: state.Configs, +}); + +const connector = connect(mapState); + +type PropsFromRedux = ConnectedProps; + +type HomeProps = PropsFromRedux & { + navigation: StackNavigationProp; +}; + +const Home: React.FC = ({ + configs: {isRtl, device, token, stats, language}, +}) => { + const dispatch = useDispatch(); + const {t, i18n} = useTranslation(); + const [modalHelpVisible, setShowHelpModal] = useState(false); + const [appState, setAppState] = useState(AppState.currentState); + + const ThrowError = () => { + Alert.alert(t('error'), t('error-msg'), [ + { + text: t('done'), + style: 'destructive', + }, + ]); + }; + + useEffect(() => { + AppState.addEventListener('change', _handleAppStateChange); + + return () => { + AppState.removeEventListener('change', _handleAppStateChange); + }; + }, [appState]); + + const _handleAppStateChange = (nextAppState: AppStateStatus) => { + if (appState.match(/inactive|background/) && nextAppState === 'active') { + getCountryStats<{data: CountryStats}>(device?.country) + .then((newStats) => { + dispatch(updateStats(newStats.data)); + }) + .catch(ThrowError); + } + + setAppState(nextAppState); + }; + + return ( + + + + + + + + + + } + useNativeAndroidPickerStyle={false} + doneText={t('done')} + placeholder={{ + label: t('select-language'), + value: null, + color: 'gray', + }} + onValueChange={async (value: string) => { + if (value) { + const currentLanguage = _.find( + languages, + (lang) => lang.value === language, + ) as Language; + + const selectedLanguage = _.find( + languages, + (lang) => lang.value === value, + ) as Language; + + dispatch(updateLanguage(selectedLanguage)); + + i18n.changeLanguage(selectedLanguage.value); + I18nManager.forceRTL( + !I18nManager.isRTL && selectedLanguage.isRtl, + ); + + if ( + (!I18nManager.isRTL && selectedLanguage.isRtl) || + (I18nManager.isRTL && !selectedLanguage.isRtl) + ) { + Alert.alert(t('change-language'), undefined, [ + { + onPress: () => { + setTimeout(ReactNativeRestart.Restart, 500); + }, + text: t('restart'), + style: 'cancel', + }, + { + onPress: () => { + dispatch(updateLanguage(currentLanguage)); + i18n.changeLanguage(currentLanguage.value); + I18nManager.forceRTL( + !I18nManager.isRTL && currentLanguage.isRtl, + ); + }, + text: t('cancel'), + }, + ]); + } + } + }} + items={languages} + style={{ + inputIOSContainer: styles.pickerContainer, + inputAndroidContainer: styles.pickerContainer, + inputIOS: { + ...styles.pickerInput, + textAlign: isRtl ? 'right' : 'left', + }, + inputAndroid: { + ...styles.pickerInput, + textAlign: isRtl ? 'right' : 'left', + }, + chevron: { + display: 'none', + }, + }} + Icon={() => null} + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { + let phoneNumber = ''; + if (Platform.OS === 'android') { + phoneNumber = 'tel:911'; + } else { + phoneNumber = 'telprompt:911'; + } + Linking.openURL(phoneNumber); + }}> + {isRtl && } + {!isRtl && ( + + )} + + + + + + + + + + + + + + + + + + + + + + + + + + + + setShowHelpModal(true)}> + + + + + + setShowHelpModal(false)} + onBackdropPress={() => setShowHelpModal(false)} + propagateSwipe + backdropColor={Colors.white} + backdropOpacity={1}> + + setShowHelpModal(false)}> + + + + + + + + ); +}; + +const styles = StyleSheet.create({ + container: { + flex: 1, + backgroundColor: Colors.white, + }, + content: { + flex: 1, + paddingHorizontal: 10, + }, + scrollView: { + minHeight: '100%', + justifyContent: 'space-evenly', + paddingTop: 50, + paddingHorizontal: 10, + }, + topSection: { + flexDirection: 'row', + flexWrap: 'wrap', + alignItems: 'center', + }, + topButtons: { + flexDirection: 'row', + justifyContent: 'flex-end', + flexGrow: 0.1, + }, + topButton: { + backgroundColor: Colors.white, + borderColor: Colors.blue, + borderWidth: 2, + marginHorizontal: 10, + width: 40, + height: 40, + borderRadius: 500, + alignItems: 'center', + justifyContent: 'center', + }, + pickerContainer: { + backgroundColor: Colors.white, + borderColor: Colors.blue, + borderWidth: 2, + marginHorizontal: 10, + width: 40, + height: 40, + borderRadius: 500, + alignItems: 'center', + justifyContent: 'center', + }, + pickerInput: { + padding: 0, + fontFamily: Fonts.regular, + color: Colors.darkBlue, + }, + borderBottom: { + borderBottomWidth: 3, + width: '15%', + marginTop: 15, + }, + helpContent: { + backgroundColor: Colors.gray, + padding: 25, + width: '100%', + }, + helpContentContainer: { + flexDirection: 'row', + justifyContent: 'space-between', + flexWrap: 'wrap', + }, + quesContainer: { + backgroundColor: Colors.darkBlue, + width: 40, + height: 40, + borderRadius: 50, + alignItems: 'center', + justifyContent: 'center', + }, + modalView: { + width: '90%', + alignSelf: 'center', + backgroundColor: Colors.white, + borderRadius: 30, + padding: 20, + shadowColor: Colors.black, + shadowOffset: { + width: 0, + height: 0, + }, + shadowOpacity: 0.25, + shadowRadius: 3.84, + elevation: 5, + }, + settingsModalView: { + width: '100%', + height: '100%', + backgroundColor: Colors.white, + paddingVertical: 30, + justifyContent: 'center', + }, + flagContainer: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', + alignSelf: 'center', + marginBottom: 10, + }, + topStats: { + flexDirection: 'row', + borderBottomWidth: 0.5, + borderBottomColor: '#F2F2F2', + paddingVertical: 10, + }, + preventionContainer: { + flexDirection: 'row', + width: '90%', + paddingVertical: 10, + marginVertical: 5, + borderWidth: 1, + borderColor: Colors.darkBlue, + alignItems: 'center', + borderRadius: 5, + paddingHorizontal: 50, + }, + callButton: { + flexDirection: 'row', + marginHorizontal: 10, + backgroundColor: Colors.darkBlue, + alignItems: 'center', + padding: 10, + borderRadius: 5, + }, +}); + +export default connector(Home); diff --git a/src/Containers/Modals/HowToModal.tsx b/src/Containers/Modals/HowToModal.tsx new file mode 100644 index 0000000..e199eeb --- /dev/null +++ b/src/Containers/Modals/HowToModal.tsx @@ -0,0 +1,96 @@ +import React, {useState} from 'react'; +import {useTranslation} from 'react-i18next'; +import {Dimensions, I18nManager, Image, Platform, View} from 'react-native'; +import Carousel, {Pagination} from 'react-native-snap-carousel'; +import CustomText from '../../Components/Text'; +import Colors from '../../Theme/Colors'; +import Fonts from '../../Theme/Fonts'; +import {Slides} from './Slides'; + +type HowToModalProps = {}; + +const {width} = Dimensions.get('window'); + +const HowToModal: React.FC = () => { + const [slide, setSlide] = useState(0); + const {t} = useTranslation(); + + return ( + + ( + + + {item.soon && ( + + )} + + + + )} + /> + + + + ); +}; + +export default HowToModal; diff --git a/src/Containers/Modals/Slides.ts b/src/Containers/Modals/Slides.ts new file mode 100644 index 0000000..3307d55 --- /dev/null +++ b/src/Containers/Modals/Slides.ts @@ -0,0 +1,23 @@ +import {ImageRequireSource} from 'react-native'; + +export const Slides: SlidesData = [ + { + title: 'pop-title-1', + image: require('../../../Assets/Images/walkthrough1.png') as ImageRequireSource, + subtitle: 'pop-text-1', + }, + { + title: 'pop-title-2', + image: require('../../../Assets/Images/walkthrough2.png') as ImageRequireSource, + subtitle: 'pop-text-2', + }, +]; + +export type Slide = { + title: string; + image: ImageRequireSource; + subtitle: string; + soon?: boolean; +}; + +export type SlidesData = Slide[]; diff --git a/src/Containers/Register.tsx b/src/Containers/Register.tsx new file mode 100644 index 0000000..58c1bc6 --- /dev/null +++ b/src/Containers/Register.tsx @@ -0,0 +1,527 @@ +import {StackNavigationProp} from '@react-navigation/stack'; +import {isValidNumber} from 'libphonenumber-js'; +import _ from 'lodash'; +import React, {useState} from 'react'; +import {useTranslation} from 'react-i18next'; +import { + Alert, + I18nManager, + ImageBackground, + Platform, + SafeAreaView, + ScrollView, + StatusBar, + StyleSheet, + TouchableOpacity, + View, +} from 'react-native'; +import Modal from 'react-native-modal'; +import RNPickerSelect from 'react-native-picker-select'; +import RNRestart from 'react-native-restart'; +import EIcon from 'react-native-vector-icons/EvilIcons'; +import Icon from 'react-native-vector-icons/FontAwesome'; +import IIcon from 'react-native-vector-icons/Ionicons'; +import {connect, ConnectedProps, useDispatch} from 'react-redux'; + +import appleAuth, { + AppleAuthCredentialState, + AppleAuthRequestOperation, + AppleAuthRequestScope, +} from '@invertase/react-native-apple-authentication'; +import {GoogleSignin, statusCodes} from '@react-native-community/google-signin'; +import { + AccessToken, + GraphRequest, + GraphRequestManager, + LoginManager, +} from 'react-native-fbsdk'; + +import {HalfCircle} from '../../Assets/Images'; +import {loginUser, updateLanguage} from '../Action'; +import {Device} from '../Action/types'; +import {RootStackParamList} from '../App'; +import Button from '../Components/Button'; +import Flag from '../Components/Flag'; +import AppleIcon from '../Components/icons/apple'; +import FacebookIcon from '../Components/icons/facebook'; +import GoogleIcon from '../Components/icons/google'; +import {PhoneInput} from '../Components/PhoneInput'; +import CustomText from '../Components/Text'; +import {useKeyboard} from '../Hooks/Keyboard'; +import {Language, languages} from '../I18n/i18n'; +import {RootState} from '../Reducer'; +import Colors from '../Theme/Colors'; +import Fonts from '../Theme/Fonts'; +import HowToModal from './Modals/HowToModal'; + +const mapState = (state: RootState) => ({ + configs: state.Configs, +}); + +const connector = connect(mapState); + +type PropsFromRedux = ConnectedProps; + +type RegisterProps = PropsFromRedux & { + navigation: StackNavigationProp; +}; + +const Register: React.FC = ({ + navigation: {navigate, replace}, + configs: {language, isRtl, device, stats}, +}) => { + const dispatch = useDispatch(); + const {t, i18n} = useTranslation(); + const [fullMobileNumber, changeFullMobileNumber] = useState(''); + const [modalVisible, setShowModal] = useState(false); + const [keyboardHeight] = useKeyboard(); + + const LoginWithFacebook = async () => { + try { + return LoginManager.logInWithPermissions([ + 'public_profile', + 'email', + ]).then(async ({isCancelled}) => { + if (!isCancelled) { + await AccessToken.getCurrentAccessToken().then( + async (accessToken) => { + const infoRequest = new GraphRequest( + '/me?fields=id,email,name', + {accessToken: accessToken?.accessToken}, + (error, result) => { + if (error) { + ThrowError(); + } else { + Login({ + // @ts-ignore + name: result?.name, + // @ts-ignore + email: result?.email, + // @ts-ignore + fbID: result?.id, + }); + } + }, + ); + new GraphRequestManager().addRequest(infoRequest).start(); + }, + ); + } + }, ThrowError); + } catch (error) { + ThrowError(); + } + }; + + const LoginWithApple = async () => { + try { + const appleAuthRequestResponse = await appleAuth.performRequest({ + requestedOperation: AppleAuthRequestOperation.LOGIN, + requestedScopes: [ + AppleAuthRequestScope.EMAIL, + AppleAuthRequestScope.FULL_NAME, + ], + }); + + const credentialState = await appleAuth.getCredentialStateForUser( + appleAuthRequestResponse.user, + ); + + if (credentialState === AppleAuthCredentialState.AUTHORIZED) { + Login({ + name: + device?.name ?? + `${appleAuthRequestResponse.fullName?.givenName} ${appleAuthRequestResponse.fullName?.familyName}`, + email: device?.email ?? appleAuthRequestResponse.email, + appleID: appleAuthRequestResponse.user, + }); + } + } catch (error) { + // + } + }; + + const LoginWithGoogle = async () => { + try { + await GoogleSignin.hasPlayServices(); + const {user} = await GoogleSignin.signIn(); + + Login({ + name: user.name, + email: user.email, + googleID: user.id, + }); + } catch (error) { + if (error.code === statusCodes.SIGN_IN_CANCELLED) { + // cancelled + } else if (error.code === statusCodes.IN_PROGRESS) { + // in progress + } else if (error.code === statusCodes.PLAY_SERVICES_NOT_AVAILABLE) { + ThrowError(); + } else { + ThrowError(); + } + } + }; + + const Login = async (user?: Device) => { + if (!user) { + return ThrowError(); + } + + try { + const deviceVerifiedNumber = + device?.verified && fullMobileNumber === device?.mobile; + + dispatch( + loginUser( + deviceVerifiedNumber + ? { + ...user, + } + : { + ...user, + mobile: fullMobileNumber, + verified: false, + }, + ), + ); + + return deviceVerifiedNumber ? replace('Home') : navigate('Verify'); + } catch (error) { + ThrowError(); + } + }; + + const ThrowError = (mobile = false) => { + Alert.alert( + t(mobile ? 'invalid-mobile' : 'error'), + t(mobile ? 'invalid-mobile-msg' : 'error-msg'), + [ + { + text: t('done'), + style: 'destructive', + }, + ], + ); + }; + + return ( + + + + + + + + } + useNativeAndroidPickerStyle={false} + doneText={t('done')} + placeholder={{ + label: t('select-language'), + value: null, + color: 'gray', + }} + onValueChange={async (value: string) => { + if (value) { + const currentLanguage = _.find( + languages, + (lang) => lang.value === language, + ) as Language; + + const selectedLanguage = _.find( + languages, + (lang) => lang.value === value, + ) as Language; + + dispatch(updateLanguage(selectedLanguage)); + + i18n.changeLanguage(selectedLanguage.value); + I18nManager.forceRTL( + !I18nManager.isRTL && selectedLanguage.isRtl, + ); + + if ( + (!I18nManager.isRTL && selectedLanguage.isRtl) || + (I18nManager.isRTL && !selectedLanguage.isRtl) + ) { + Alert.alert(t('change-language'), undefined, [ + { + onPress: () => { + setTimeout(RNRestart.Restart, 500); + }, + text: t('restart'), + style: 'cancel', + }, + { + onPress: () => { + dispatch(updateLanguage(currentLanguage)); + i18n.changeLanguage(currentLanguage.value); + I18nManager.forceRTL( + !I18nManager.isRTL && currentLanguage.isRtl, + ); + }, + text: t('cancel'), + }, + ]); + } + } + }} + items={languages} + style={{ + inputIOSContainer: styles.langPickerContainer, + inputAndroidContainer: styles.langPickerContainer, + inputIOS: { + ...styles.pickerInput, + textAlign: isRtl ? 'right' : 'left', + }, + inputAndroid: { + ...styles.pickerInput, + textAlign: isRtl ? 'right' : 'left', + }, + chevron: { + display: 'none', + }, + }} + Icon={() => null} + /> + + + + + + + + + + + { + setShowModal(true); + }} + style={{ + flexDirection: 'row', + alignItems: 'center', + marginVertical: 20, + alignSelf: 'flex-start', + }}> + + + + + + + + + +