Commit 90712a05 by Giang Tran

Merge branch 'splash' into 08_April

parents 057c8d4e b20a248d
import React from 'react'; import React, {useEffect, useRef, useState} from 'react';
import {Animated, Dimensions, StyleSheet, Text, View} from 'react-native';
import BootSplash from 'react-native-bootsplash';
import {Provider} from 'react-redux'; import {Provider} from 'react-redux';
import {createStore, applyMiddleware} from 'redux'; import {createStore, applyMiddleware} from 'redux';
import rootReducer from './src/Reducers/index'; import rootReducer from './src/Reducers/index';
...@@ -7,16 +8,58 @@ import RootView from './src/RootView'; ...@@ -7,16 +8,58 @@ import RootView from './src/RootView';
import createSagaMiddleware from 'redux-saga'; import createSagaMiddleware from 'redux-saga';
import rootSaga from './src/Saga/rootSaga'; import rootSaga from './src/Saga/rootSaga';
let bootSplashLogo = require('./src/assets/images/iconSplash.png');
let fakeApiCallWithoutBadNetwork = (ms) =>
new Promise((resolve) => setTimeout(resolve, ms));
const sagaMiddleware = createSagaMiddleware(); const sagaMiddleware = createSagaMiddleware();
let store = createStore(rootReducer, applyMiddleware(sagaMiddleware)); let store = createStore(rootReducer, applyMiddleware(sagaMiddleware));
sagaMiddleware.run(rootSaga); sagaMiddleware.run(rootSaga);
const App = () => {
let App = () => {
let init = async () => {
await fakeApiCallWithoutBadNetwork(1000);
await BootSplash.hide();
};
useEffect(() => {
init();
}, []);
return ( return (
<Provider store={store}> <View style={styles.container}>
<RootView /> <Provider store={store}>
</Provider> <RootView />
</Provider>
</View>
); );
}; };
const styles = StyleSheet.create({
container: {
flex: 1,
},
text: {
fontSize: 24,
fontWeight: '700',
margin: 20,
lineHeight: 30,
color: '#333',
textAlign: 'center',
},
bootsplash: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#1C6AF6',
},
logo: {
width: 250,
height: 80,
resizeMode: 'contain',
},
});
export default App; export default App;
...@@ -193,9 +193,10 @@ dependencies { ...@@ -193,9 +193,10 @@ dependencies {
//noinspection GradleDynamicVersion //noinspection GradleDynamicVersion
implementation "com.facebook.react:react-native:+" // From node_modules implementation "com.facebook.react:react-native:+" // From node_modules
implementation project(':react-native-bootsplash')
implementation 'androidx.appcompat:appcompat:1.1.0-rc01' implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02'
implementation 'com.google.firebase:firebase-messaging:17.3.4'
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") { debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
......
...@@ -20,13 +20,21 @@ ...@@ -20,13 +20,21 @@
android:name=".MainActivity" android:name=".MainActivity"
android:label="@string/app_name" android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:launchMode="singleTop" android:exported="true"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize"> android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> </activity>
<activity
android:name="com.zoontek.rnbootsplash.RNBootSplashActivity"
android:theme="@style/BootTheme"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application> </application>
......
package com.invest; package com.invest;
import android.os.Bundle;
import com.facebook.react.ReactActivity; import com.facebook.react.ReactActivity;
import com.zoontek.rnbootsplash.RNBootSplash;
public class MainActivity extends ReactActivity { public class MainActivity extends ReactActivity {
...@@ -12,4 +15,10 @@ public class MainActivity extends ReactActivity { ...@@ -12,4 +15,10 @@ public class MainActivity extends ReactActivity {
protected String getMainComponentName() { protected String getMainComponentName() {
return "Invest"; return "Invest";
} }
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RNBootSplash.init(R.drawable.bootsplash, MainActivity.this); // <- display the generated bootsplash.xml drawable over our MainActivity
}
} }
...@@ -14,6 +14,9 @@ import com.facebook.soloader.SoLoader; ...@@ -14,6 +14,9 @@ import com.facebook.soloader.SoLoader;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.List; import java.util.List;
import com.facebook.react.ReactApplication; //<- Dòng này import com.facebook.react.ReactApplication; //<- Dòng này
import io.invertase.firebase.messaging.RNFirebaseMessagingPackage;//<- Dòng này
import io.invertase.firebase.notifications.RNFirebaseNotificationsPackage;//<- Dòng này
import com.zoontek.rnbootsplash.RNBootSplashPackage;
public class MainApplication extends Application implements ReactApplication { public class MainApplication extends Application implements ReactApplication {
...@@ -30,6 +33,9 @@ public class MainApplication extends Application implements ReactApplication { ...@@ -30,6 +33,9 @@ public class MainApplication extends Application implements ReactApplication {
List<ReactPackage> packages = new PackageList(this).getPackages(); List<ReactPackage> packages = new PackageList(this).getPackages();
// Packages that cannot be autolinked yet can be added manually here, for example: // Packages that cannot be autolinked yet can be added manually here, for example:
// packages.add(new MyReactNativePackage()); // packages.add(new MyReactNativePackage());
packages.add(new RNFirebaseMessagingPackage());//<- Dòng này
packages.add(new RNFirebaseNotificationsPackage());//<- Dòng này
// packages.add(new RNBootSplashPackage());
return packages; return packages;
} }
...@@ -49,6 +55,7 @@ public class MainApplication extends Application implements ReactApplication { ...@@ -49,6 +55,7 @@ public class MainApplication extends Application implements ReactApplication {
super.onCreate(); super.onCreate();
SoLoader.init(this, /* native exopackage */ false); SoLoader.init(this, /* native exopackage */ false);
initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
// RNBootSplash.init(R.drawable.bootsplash, MainActivity.this);
} }
/** /**
......
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
<item android:drawable="@color/bootsplash_background" />
<item>
<bitmap android:src="@mipmap/bootsplash_logo" android:gravity="center" />
</item>
</layer-list>
<resources>
<color name="bootsplash_background">#1C6AF6</color>
</resources>
...@@ -5,5 +5,8 @@ ...@@ -5,5 +5,8 @@
<!-- Customize your theme here. --> <!-- Customize your theme here. -->
<item name="android:textColor">#000000</item> <item name="android:textColor">#000000</item>
</style> </style>
<style name="BootTheme" parent="AppTheme">
<!-- set the generated bootsplash.xml drawable as activity background -->
<item name="android:background">@drawable/bootsplash</item>
</style>
</resources> </resources>
rootProject.name = 'Invest' rootProject.name = 'Invest'
include ':react-native-bootsplash'
project(':react-native-bootsplash').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-bootsplash/android')
include ':react-native-linear-gradient' include ':react-native-linear-gradient'
project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android') project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android')
include ':react-native-vector-icons' include ':react-native-vector-icons'
include ':react-native-bootsplash'
project(':react-native-bootsplash').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-bootsplash/android')
project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android') project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')
include ':react-native-vector-icons' include ':react-native-vector-icons'
project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android') project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')
......
...@@ -19,6 +19,13 @@ ...@@ -19,6 +19,13 @@
2DCD954D1E0B4F2C00145EB5 /* InvestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* InvestTests.m */; }; 2DCD954D1E0B4F2C00145EB5 /* InvestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* InvestTests.m */; };
2FCC6749524E697FC9323F22 /* libPods-Invest-InvestTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ABCEBFE5646F1EF68E7C87AB /* libPods-Invest-InvestTests.a */; }; 2FCC6749524E697FC9323F22 /* libPods-Invest-InvestTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ABCEBFE5646F1EF68E7C87AB /* libPods-Invest-InvestTests.a */; };
48E6A9A75AE9C55476F21D2D /* libPods-Invest-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4ECD31835B4784D2DC719E76 /* libPods-Invest-tvOSTests.a */; }; 48E6A9A75AE9C55476F21D2D /* libPods-Invest-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4ECD31835B4784D2DC719E76 /* libPods-Invest-tvOSTests.a */; };
<<<<<<< HEAD
=======
52B7A0A425F722CF00CEDA09 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 52B7A0A325F722CF00CEDA09 /* GoogleService-Info.plist */; };
52B7A0A525F722CF00CEDA09 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 52B7A0A325F722CF00CEDA09 /* GoogleService-Info.plist */; };
52FB2B09262400D400DD7983 /* BootSplash.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 52FB2B08262400D400DD7983 /* BootSplash.storyboard */; };
52FB2B0A262400D400DD7983 /* BootSplash.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 52FB2B08262400D400DD7983 /* BootSplash.storyboard */; };
>>>>>>> splash
BEE4F63E354049C2D225330D /* libPods-Invest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5F96EA7789D1E36A43479651 /* libPods-Invest.a */; }; BEE4F63E354049C2D225330D /* libPods-Invest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5F96EA7789D1E36A43479651 /* libPods-Invest.a */; };
C58809ADB943708AF0E7E27E /* libPods-Invest-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FC653233E0AC368FCB03B57C /* libPods-Invest-tvOS.a */; }; C58809ADB943708AF0E7E27E /* libPods-Invest-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FC653233E0AC368FCB03B57C /* libPods-Invest-tvOS.a */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
...@@ -59,6 +66,7 @@ ...@@ -59,6 +66,7 @@
2D02E4901E0B4A5D006451C7 /* Invest-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Invest-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 2D02E4901E0B4A5D006451C7 /* Invest-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Invest-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
4ECD31835B4784D2DC719E76 /* libPods-Invest-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Invest-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 4ECD31835B4784D2DC719E76 /* libPods-Invest-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Invest-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
52E1A15225F1255E00EA970D /* Invest.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = Invest.entitlements; path = Invest/Invest.entitlements; sourceTree = "<group>"; }; 52E1A15225F1255E00EA970D /* Invest.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = Invest.entitlements; path = Invest/Invest.entitlements; sourceTree = "<group>"; };
52FB2B08262400D400DD7983 /* BootSplash.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = BootSplash.storyboard; path = Invest/BootSplash.storyboard; sourceTree = "<group>"; };
5F96EA7789D1E36A43479651 /* libPods-Invest.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Invest.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 5F96EA7789D1E36A43479651 /* libPods-Invest.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Invest.a"; sourceTree = BUILT_PRODUCTS_DIR; };
72B39130AB01DE9359CED049 /* Pods-Invest-InvestTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Invest-InvestTests.release.xcconfig"; path = "Target Support Files/Pods-Invest-InvestTests/Pods-Invest-InvestTests.release.xcconfig"; sourceTree = "<group>"; }; 72B39130AB01DE9359CED049 /* Pods-Invest-InvestTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Invest-InvestTests.release.xcconfig"; path = "Target Support Files/Pods-Invest-InvestTests/Pods-Invest-InvestTests.release.xcconfig"; sourceTree = "<group>"; };
7A8D76C2B302272AF1BB9AE1 /* Pods-Invest-InvestTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Invest-InvestTests.debug.xcconfig"; path = "Target Support Files/Pods-Invest-InvestTests/Pods-Invest-InvestTests.debug.xcconfig"; sourceTree = "<group>"; }; 7A8D76C2B302272AF1BB9AE1 /* Pods-Invest-InvestTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Invest-InvestTests.debug.xcconfig"; path = "Target Support Files/Pods-Invest-InvestTests/Pods-Invest-InvestTests.debug.xcconfig"; sourceTree = "<group>"; };
...@@ -144,6 +152,7 @@ ...@@ -144,6 +152,7 @@
13B07FAE1A68108700A75B9A /* Invest */ = { 13B07FAE1A68108700A75B9A /* Invest */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
52FB2B08262400D400DD7983 /* BootSplash.storyboard */,
9345F6C125FF213F006B5233 /* Fonts */, 9345F6C125FF213F006B5233 /* Fonts */,
52E1A15225F1255E00EA970D /* Invest.entitlements */, 52E1A15225F1255E00EA970D /* Invest.entitlements */,
008F07F21AC5B25A0029DE68 /* main.jsbundle */, 008F07F21AC5B25A0029DE68 /* main.jsbundle */,
...@@ -400,7 +409,12 @@ ...@@ -400,7 +409,12 @@
files = ( files = (
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */,
<<<<<<< HEAD
13869AC326244FB000412A7A /* GoogleService-Info.plist in Resources */, 13869AC326244FB000412A7A /* GoogleService-Info.plist in Resources */,
=======
52B7A0A425F722CF00CEDA09 /* GoogleService-Info.plist in Resources */,
52FB2B09262400D400DD7983 /* BootSplash.storyboard in Resources */,
>>>>>>> splash
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
...@@ -408,6 +422,7 @@ ...@@ -408,6 +422,7 @@
isa = PBXResourcesBuildPhase; isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
52FB2B0A262400D400DD7983 /* BootSplash.storyboard in Resources */,
2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */, 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
...@@ -895,7 +910,7 @@ ...@@ -895,7 +910,7 @@
CODE_SIGN_ENTITLEMENTS = Invest/Invest.entitlements; CODE_SIGN_ENTITLEMENTS = Invest/Invest.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 16; CURRENT_PROJECT_VERSION = 17;
DEVELOPMENT_TEAM = MXZ24GRH48; DEVELOPMENT_TEAM = MXZ24GRH48;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
GCC_PREPROCESSOR_DEFINITIONS = ( GCC_PREPROCESSOR_DEFINITIONS = (
...@@ -928,7 +943,7 @@ ...@@ -928,7 +943,7 @@
CODE_SIGN_ENTITLEMENTS = Invest/Invest.entitlements; CODE_SIGN_ENTITLEMENTS = Invest/Invest.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 16; CURRENT_PROJECT_VERSION = 17;
DEVELOPMENT_TEAM = MXZ24GRH48; DEVELOPMENT_TEAM = MXZ24GRH48;
INFOPLIST_FILE = Invest/Info.plist; INFOPLIST_FILE = Invest/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
@import Firebase; @import Firebase;
#import <AVFoundation/AVFoundation.h> #import <AVFoundation/AVFoundation.h>
#import "RNBootSplash.h"
#if DEBUG #if DEBUG
#import <FlipperKit/FlipperClient.h> #import <FlipperKit/FlipperClient.h>
#import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h> #import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h>
...@@ -50,7 +50,7 @@ static void InitializeFlipper(UIApplication *application) { ...@@ -50,7 +50,7 @@ static void InitializeFlipper(UIApplication *application) {
rootViewController.view = rootView; rootViewController.view = rootView;
self.window.rootViewController = rootViewController; self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible]; [self.window makeKeyAndVisible];
[RNBootSplash initWithStoryboard:@"BootSplash" rootView:rootView];
// [CallAppInterface setHomeViewController:rootViewController]; // [CallAppInterface setHomeViewController:rootViewController];
return YES; return YES;
} }
......
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17147" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina4_7" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17120"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<view key="view" autoresizesSubviews="NO" userInteractionEnabled="NO" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView autoresizesSubviews="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="BootSplashLogo" translatesAutoresizingMaskIntoConstraints="NO" id="3lX-Ut-9ad">
<rect key="frame" x="77.5" y="296.5" width="220" height="74"/>
<accessibility key="accessibilityConfiguration">
<accessibilityTraits key="traits" image="YES" notEnabled="YES"/>
</accessibility>
</imageView>
</subviews>
<viewLayoutGuide key="safeArea" id="Bcu-3y-fUS"/>
<color key="backgroundColor" red="0.109803921568627" green="0.415686274509804" blue="0.964705882352941" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<accessibility key="accessibilityConfiguration">
<accessibilityTraits key="traits" notEnabled="YES"/>
</accessibility>
<constraints>
<constraint firstItem="3lX-Ut-9ad" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="Fh9-Fy-1nT"/>
<constraint firstItem="3lX-Ut-9ad" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="nvB-Ic-PnI"/>
</constraints>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="0.0" y="0.0"/>
</scene>
</scenes>
<resources>
<image name="BootSplashLogo" width="220" height="74"/>
</resources>
</document>
{
"images": [
{
"idiom": "universal",
"filename": "bootsplash_logo.png",
"scale": "1x"
},
{
"idiom": "universal",
"filename": "bootsplash_logo@2x.png",
"scale": "2x"
},
{
"idiom": "universal",
"filename": "bootsplash_logo@3x.png",
"scale": "3x"
}
],
"info": {
"version": 1,
"author": "xcode"
}
}
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
<string>remote-notification</string> <string>remote-notification</string>
</array> </array>
<key>UILaunchStoryboardName</key> <key>UILaunchStoryboardName</key>
<string>LaunchScreen</string> <string>BootSplash</string>
<key>UIRequiredDeviceCapabilities</key> <key>UIRequiredDeviceCapabilities</key>
<array> <array>
<string>armv7</string> <string>armv7</string>
......
...@@ -80,6 +80,7 @@ target 'Invest' do ...@@ -80,6 +80,7 @@ target 'Invest' do
pod 'RNFBMessaging', :path => '../node_modules/@react-native-firebase/messaging' pod 'RNFBMessaging', :path => '../node_modules/@react-native-firebase/messaging'
pod 'RNBootSplash', :path => '../node_modules/react-native-bootsplash'
pod 'RNVectorIcons', :path => '../node_modules/react-native-vector-icons' pod 'RNVectorIcons', :path => '../node_modules/react-native-vector-icons'
......
...@@ -361,6 +361,8 @@ PODS: ...@@ -361,6 +361,8 @@ PODS:
- React-cxxreact (= 0.62.2) - React-cxxreact (= 0.62.2)
- React-jsi (= 0.62.2) - React-jsi (= 0.62.2)
- ReactCommon/callinvoker (= 0.62.2) - ReactCommon/callinvoker (= 0.62.2)
- RNBootSplash (3.2.0):
- React-Core
- RNCAsyncStorage (1.12.1): - RNCAsyncStorage (1.12.1):
- React-Core - React-Core
- RNCCheckbox (0.5.7): - RNCCheckbox (0.5.7):
...@@ -450,6 +452,7 @@ DEPENDENCIES: ...@@ -450,6 +452,7 @@ DEPENDENCIES:
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
- ReactCommon/callinvoker (from `../node_modules/react-native/ReactCommon`) - ReactCommon/callinvoker (from `../node_modules/react-native/ReactCommon`)
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
- RNBootSplash (from `../node_modules/react-native-bootsplash`)
- "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)" - "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)"
- "RNCCheckbox (from `../node_modules/@react-native-community/checkbox`)" - "RNCCheckbox (from `../node_modules/@react-native-community/checkbox`)"
- "RNCClipboard (from `../node_modules/@react-native-clipboard/clipboard`)" - "RNCClipboard (from `../node_modules/@react-native-clipboard/clipboard`)"
...@@ -550,6 +553,8 @@ EXTERNAL SOURCES: ...@@ -550,6 +553,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/Libraries/Vibration" :path: "../node_modules/react-native/Libraries/Vibration"
ReactCommon: ReactCommon:
:path: "../node_modules/react-native/ReactCommon" :path: "../node_modules/react-native/ReactCommon"
RNBootSplash:
:path: "../node_modules/react-native-bootsplash"
RNCAsyncStorage: RNCAsyncStorage:
:path: "../node_modules/@react-native-community/async-storage" :path: "../node_modules/@react-native-community/async-storage"
RNCCheckbox: RNCCheckbox:
...@@ -628,6 +633,7 @@ SPEC CHECKSUMS: ...@@ -628,6 +633,7 @@ SPEC CHECKSUMS:
React-RCTText: fae545b10cfdb3d247c36c56f61a94cfd6dba41d React-RCTText: fae545b10cfdb3d247c36c56f61a94cfd6dba41d
React-RCTVibration: 4356114dbcba4ce66991096e51a66e61eda51256 React-RCTVibration: 4356114dbcba4ce66991096e51a66e61eda51256
ReactCommon: ed4e11d27609d571e7eee8b65548efc191116eb3 ReactCommon: ed4e11d27609d571e7eee8b65548efc191116eb3
RNBootSplash: 24175aa28fe203b10c48dc34e78d946fd33c77af
RNCAsyncStorage: b03032fdbdb725bea0bd9e5ec5a7272865ae7398 RNCAsyncStorage: b03032fdbdb725bea0bd9e5ec5a7272865ae7398
RNCCheckbox: d1749e6a92178ce5dbc31e63becd1f34f0c76bbd RNCCheckbox: d1749e6a92178ce5dbc31e63becd1f34f0c76bbd
RNCClipboard: 245417a78ab585e0d4d83926c28907e7b2bc24bd RNCClipboard: 245417a78ab585e0d4d83926c28907e7b2bc24bd
...@@ -644,6 +650,10 @@ SPEC CHECKSUMS: ...@@ -644,6 +650,10 @@ SPEC CHECKSUMS:
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
YoutubePlayer-in-WKWebView: cfbf46da51d7370662a695a8f351e5fa1d3e1008 YoutubePlayer-in-WKWebView: cfbf46da51d7370662a695a8f351e5fa1d3e1008
<<<<<<< HEAD
PODFILE CHECKSUM: 0aed8e9b9bcc932aca0489409733bbdf33d0b8bc PODFILE CHECKSUM: 0aed8e9b9bcc932aca0489409733bbdf33d0b8bc
=======
PODFILE CHECKSUM: a0276896cf4bf6dbd0e780acaa769b26a97ccce1
>>>>>>> splash
COCOAPODS: 1.10.1 COCOAPODS: 1.10.1
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
"react": "16.11.0", "react": "16.11.0",
"react-hook-form": "^6.15.4", "react-hook-form": "^6.15.4",
"react-native": "0.62.2", "react-native": "0.62.2",
"react-native-bootsplash": "^3.2.0",
"react-native-confirmation-code-field": "^6.5.1", "react-native-confirmation-code-field": "^6.5.1",
"react-native-datepicker": "^1.7.2", "react-native-datepicker": "^1.7.2",
"@react-native-firebase/app": "^7.1.0", "@react-native-firebase/app": "^7.1.0",
......
...@@ -98,7 +98,20 @@ export const Gender = { ...@@ -98,7 +98,20 @@ export const Gender = {
male: 0, male: 0,
female: 1, female: 1,
}; };
export const converType = (type) => {
if (type == 'DEPOSIT') return 'Nạp tiền';
return 'Rút tiền';
};
export const converStatus = (status) => {
switch (status) {
case 0:
return 'Chờ xử lý';
case 1:
return 'Thành công';
case 2:
return 'Huỷ';
}
};
export const toPriceVnd = (str) => { export const toPriceVnd = (str) => {
if (str) { if (str) {
let stringPrice = str.toString().split('.'); let stringPrice = str.toString().split('.');
......
...@@ -10,47 +10,47 @@ import R from './assets/R'; ...@@ -10,47 +10,47 @@ import R from './assets/R';
import FirebaseNotification from './helper/FirebaseNotification'; import FirebaseNotification from './helper/FirebaseNotification';
import messaging from '@react-native-firebase/messaging'; import messaging from '@react-native-firebase/messaging';
import {enableScreens} from 'react-native-screens'; import {enableScreens} from 'react-native-screens';
import AsyncStorage from "@react-native-community/async-storage"; import AsyncStorage from '@react-native-community/async-storage';
import KEY from "./assets/AsynStorage"; import KEY from './assets/AsynStorage';
import firebase from "@react-native-firebase/app"; import firebase from '@react-native-firebase/app';
enableScreens(); enableScreens();
const RootView = (props) => { const RootView = (props) => {
messaging().setBackgroundMessageHandler(async remoteMessage => { messaging().setBackgroundMessageHandler(async (remoteMessage) => {
console.log('Message handled in the background!', remoteMessage); console.log('Message handled in the background!', remoteMessage);
});
useEffect(() => {
requestUserPermission();
const unsubscribe = messaging().onMessage(async (remoteMessage) => {
console.log('A new FCM message arrived!', remoteMessage);
}); });
useEffect(() => { return unsubscribe;
requestUserPermission(); }, []);
const unsubscribe = messaging().onMessage(async remoteMessage => {
console.log('A new FCM message arrived!', remoteMessage);
});
return unsubscribe;
}, []);
const requestUserPermission = async () => { const requestUserPermission = async () => {
const authStatus = await messaging().requestPermission(); const authStatus = await messaging().requestPermission();
const enabled = const enabled =
authStatus === messaging.AuthorizationStatus.AUTHORIZED || authStatus === messaging.AuthorizationStatus.AUTHORIZED ||
authStatus === messaging.AuthorizationStatus.PROVISIONAL; authStatus === messaging.AuthorizationStatus.PROVISIONAL;
if (enabled) { if (enabled) {
getFcmToken() getFcmToken();
console.log('Authorization status:', authStatus); console.log('Authorization status:', authStatus);
}
} }
const getFcmToken = async () => { };
let fcmToken = await AsyncStorage.getItem(KEY.FIREBASE); const getFcmToken = async () => {
console.log('Dat tao', fcmToken); let fcmToken = await AsyncStorage.getItem(KEY.FIREBASE);
if (!fcmToken) { console.log('Dat tao', fcmToken);
fcmToken = await messaging().getToken(); if (!fcmToken) {
console.log('Vua tao', fcmToken); fcmToken = await messaging().getToken();
if (fcmToken) { console.log('Vua tao', fcmToken);
AsyncStorage.setItem(KEY.FIREBASE, fcmToken); if (fcmToken) {
} AsyncStorage.setItem(KEY.FIREBASE, fcmToken);
} }
} }
};
onReceived = (notification) => {}; onReceived = (notification) => {};
onOpened = (notification) => { onOpened = (notification) => {
console.log(('notification', notification)); console.log(('notification', notification));
}; };
......
import React from 'react'; import React from 'react';
import {View, Text} from 'react-native'; import {View, Text} from 'react-native';
import HeaderBack from '../../components/Header/HeaderBack'; import HeaderBack from '../../components/Header/HeaderBack';
import {connect} from 'react-redux';
import {WebView} from 'react-native-webview';
const Contract = (props) => { const Contract = (props) => {
console.log(props.user);
return ( return (
<View style={{flex: 1}}> <View style={{flex: 1}}>
<HeaderBack title={'Hợp đồng'} /> <HeaderBack isWhite={true} title={'Hợp đồng'} />
<View
style={{ <WebView
flex: 1, androidHardwareAccelerationDisabled={true}
paddingHorizontal: 20, source={{
justifyContent: 'center', uri:
alignItems: 'center', 'http://api.dcvinvest.com/webview/contracts/show/' + props.user.uid,
}}> }}
<Text />
style={{
fontSize: 18,
fontWeight: 'bold',
textAlign: 'center',
}}>
Tính năng đang được phát trin, vui lòng quay li sau!
</Text>
</View>
</View> </View>
); );
}; };
export default Contract; const mapStateToProps = (state) => {
return {
user: state.userReducer,
};
};
export default connect(mapStateToProps, {})(Contract);
...@@ -4,38 +4,39 @@ import HistoryView from './HistoryView'; ...@@ -4,38 +4,39 @@ import HistoryView from './HistoryView';
import {getListTransaction} from '../../../apis/Functions/Widthdraw'; import {getListTransaction} from '../../../apis/Functions/Widthdraw';
const History = (props) => { const History = (props) => {
const [selected, setSelected] = useState(''); const [selected, setSelected] = useState('ALL');
const [page, setPage] = useState(1); const [page, setPage] = useState(1);
const [data, setData] = useState([]); const [data, setData] = useState([]);
const [tottalPage, setTotalPage] = useState(1); const [tottalPage, setTotalPage] = useState(1);
const [isRefresh, setisRefresh] = useState(false); const [isRefresh, setisRefresh] = useState(false);
const [fillters, setFillters] = useState([]);
useEffect(() => { useEffect(() => {
getData(); getData();
}, []); }, []);
// useEffect(() => { useEffect(() => {
// getData(); getData();
// }, [selected]); }, [selected]);
const getData = async () => { const getData = async () => {
setisRefresh(true); setisRefresh(true);
setPage(1); setPage(1);
const res = await getListTransaction({ const res = await getListTransaction({
keyword: '', keyword: '',
type: 'ALL', type: selected,
platform: Platform.OS, platform: Platform.OS,
page_size: 10, page_size: 10,
status: -1,
page_index: 1, page_index: 1,
start_date: '', start_date: '',
end_date: '', end_date: '',
}); });
console.log(res);
setisRefresh(false); setisRefresh(false);
if ((res.data.code = 200 && res.data.data)) { if ((res.data.code = 200 && res.data.data)) {
setData(res.data.data); setData(res.data.data);
setTotalPage(res.data.meta.pages); setTotalPage(res.data.meta.pages);
console.log(res.data.data);
} else { } else {
Alert.alert('Thông báo!', res.data.message); Alert.alert('Thông báo!', res.data.message);
} }
...@@ -46,18 +47,20 @@ const History = (props) => { ...@@ -46,18 +47,20 @@ const History = (props) => {
}; };
const onLoadMore = () => { const onLoadMore = () => {
console.log(tottalPage); if (page < tottalPage) getDataLoadMore();
// if (page < tottalPage) getDataLoadMore();
}; };
const getDataLoadMore = async () => { const getDataLoadMore = async () => {
setisRefresh(true); setisRefresh(true);
const res = await getListNew({ const res = await getListTransaction({
keyword: '', keyword: '',
category_id: selected, type: 'ALL',
platform: Platform.OS, platform: Platform.OS,
page_size: 10, page_size: 10,
status: -1,
page_index: page + 1, page_index: page + 1,
start_date: '',
end_date: '',
}); });
setPage(page + 1); setPage(page + 1);
...@@ -73,6 +76,8 @@ const History = (props) => { ...@@ -73,6 +76,8 @@ const History = (props) => {
isRefresh={isRefresh} isRefresh={isRefresh}
onRefresh={onRefresh} onRefresh={onRefresh}
data={data} data={data}
selected={selected}
setSelected={setSelected}
/> />
); );
}; };
......
import React, {useState} from 'react'; import React, {useState} from 'react';
import {View, Text, FlatList, TouchableOpacity, StyleSheet} from 'react-native'; import {
View,
Text,
FlatList,
TouchableOpacity,
StyleSheet,
ScrollView,
} from 'react-native';
import HeaderBack from '../../../components/Header/HeaderBack'; import HeaderBack from '../../../components/Header/HeaderBack';
import Item from './Item'; import Item from './Item';
import {getFontXD} from '../../../Config/Functions'; import {getFontXD} from '../../../Config/Functions';
const Fillters = [ const Fillters = [
{ {
id: '1', id: '1',
name: 'Tất cả', name: 'Tất cả',
value: 'all', value: 'ALL',
}, },
{ {
id: '4', id: '2',
name: 'Rút tiền', name: 'Nạp tiền',
value: 'withdraw', value: 'DEPOSIT',
}, },
{ {
id: '5', id: '3',
name: 'Nạp tiền', name: 'Rút tiền',
value: 'deposit', value: 'WITHDRAW',
}, },
{ {
id: '6', id: '4',
name: 'Chuyển khoản', name: 'Chuyển khoản',
value: 'exchange', value: 'TRANSFER',
}, },
]; ];
// const data = [
// {
// id: '1',
// money: 10000000,
// content: 'Hoạt động: Nạp tiền',
// status: 1,
// date: '20/02/2021',
// },
// {
// id: '2',
// money: 2000000,
// content: 'Hoạt động: Nạp tiền',
// status: 1,
// date: '20/02/2021',
// },
// {
// id: '3',
// day: '20',
// money: 3000000,
// content: 'Hoạt động: Nạp tiền',
// status: 1,
// date: '20/02/2021',
// },
// {
// id: '4',
// money: 4000000,
// content: 'Hoạt động: Rút tiền',
// status: 2,
// date: '20/02/2021',
// },
// {
// id: '5',
// money: 9000000,
// content: 'Hoạt động: Nạp tiền',
// status: 1,
// date: '20/02/2021',
// },
// {
// id: '6',
// money: 4000000,
// content: 'Hoạt động: Rút tiền',
// status: 2,
// date: '20/02/2021',
// },
// {
// id: '7',
// money: 9000000,
// content: 'Hoạt động: Nạp tiền',
// status: 1,
// date: '20/02/2021',
// },
// ];
const HistoryView = (props) => { const HistoryView = (props) => {
const {isRefresh, onRefresh, onLoadMore, data} = props; const {isRefresh, onRefresh, onLoadMore, data, selected, setSelected} = props;
const [selected, setSelected] = useState('1');
return ( return (
<View style={{flex: 1}}> <View style={{flex: 1}}>
<HeaderBack isWhite={true} title={'LỊCH SỬ'} /> <HeaderBack isWhite={true} title={'LỊCH SỬ'} />
<View style={{flex: 1}}> <View style={{flex: 1}}>
<View style={styles.headerContainer}> <View style={styles.headerContainer}>
<FlatList {Fillters.map((e) => (
showsHorizontalScrollIndicator={false} <TouchableOpacity
horizontal key={e.value}
data={Fillters} onPress={() => setSelected(e.value)}
keyExtractor={(item) => item.id} style={[
renderItem={({item}) => ( styles.itemFillter,
<TouchableOpacity selected == e.value ? {borderColor: '#1473E6'} : null,
onPress={() => setSelected(item.id)} ]}>
<Text
style={[ style={[
styles.itemFillter, styles.txtFillter,
selected == item.id ? {borderColor: '#1473E6'} : null, selected == e.value ? {color: '#1473E6'} : {},
]}> ]}>
<Text {e.name}
style={[ </Text>
styles.txtFillter, </TouchableOpacity>
selected == item.id ? {color: '#1473E6'} : {}, ))}
]}>
{item.name}
</Text>
</TouchableOpacity>
)}
/>
</View> </View>
<FlatList
style={{flex: 1}} {data.length == 0 ? (
refreshing={isRefresh} <View
onRefresh={onRefresh} style={{justifyContent: 'center', alignItems: 'center', flex: 1}}>
onEndReachedThreshold={0.01} <Text
onEndReached={(info) => { style={{
onLoadMore(); fontSize: getFontXD(46),
}} fontWeight: 'bold',
keyExtractor={(item) => item.id} }}>
data={data} Không có giao dch nào!
renderItem={({item}) => <Item item={item} />} </Text>
/> </View>
) : (
<FlatList
style={{flex: 1}}
refreshing={isRefresh}
onRefresh={onRefresh}
onEndReachedThreshold={0.01}
onEndReached={(info) => {
onLoadMore();
}}
keyExtractor={(item) => item.id}
data={data}
renderItem={({item}) => <Item item={item} />}
/>
)}
</View> </View>
</View> </View>
); );
...@@ -132,6 +94,10 @@ const styles = StyleSheet.create({ ...@@ -132,6 +94,10 @@ const styles = StyleSheet.create({
headerContainer: { headerContainer: {
paddingVertical: 10, paddingVertical: 10,
backgroundColor: 'white', backgroundColor: 'white',
flexDirection: 'row',
justifyContent: 'space-around',
alignItems: 'center',
paddingHorizontal: 10,
}, },
itemFillter: { itemFillter: {
borderRadius: 10, borderRadius: 10,
...@@ -139,7 +105,6 @@ const styles = StyleSheet.create({ ...@@ -139,7 +105,6 @@ const styles = StyleSheet.create({
paddingHorizontal: 10, paddingHorizontal: 10,
borderWidth: 1, borderWidth: 1,
borderColor: '#929292', borderColor: '#929292',
marginLeft: 15,
minWidth: 70, minWidth: 70,
}, },
txtFillter: { txtFillter: {
......
...@@ -5,6 +5,8 @@ import { ...@@ -5,6 +5,8 @@ import {
HEIGHTXD, HEIGHTXD,
WIDTHXD, WIDTHXD,
toPriceVnd, toPriceVnd,
converType,
converStatus,
} from '../../../Config/Functions'; } from '../../../Config/Functions';
import R from '../../../assets/R'; import R from '../../../assets/R';
import Block from '../../../components/Block'; import Block from '../../../components/Block';
...@@ -16,62 +18,46 @@ const Item = (props) => { ...@@ -16,62 +18,46 @@ const Item = (props) => {
// console.log('item---', item.status); // console.log('item---', item.status);
const navigate = useNavigation(); const navigate = useNavigation();
return ( return (
<TouchableOpacity onPress={() => console.log('HEllo')}> <View style={styles.container}>
<View style={styles.container}> <Block flex={1} row>
<Block flex={1} row> <View style={styles.wrapLeft} />
<View style={styles.wrapLeft} /> <View style={styles.wrapDate}>
<View style={styles.wrapDate}> <Image source={{uri: item.icon}} style={styles.imgIcon} />
{item.status == 1 ? ( </View>
<Image source={R.images.iconRecharge} style={styles.imgIcon} /> <Block
) : ( style={{justifyContent: 'center'}}
<Image source={R.images.iconWithdrawal} style={styles.imgIcon} /> padding={[5, 10]}
)} space={'between'}
</View> flex={1}>
<Block <View
style={{justifyContent: 'center'}} style={{
padding={[5, 10]} flexDirection: 'row',
space={'between'} justifyContent: 'space-between',
flex={1}> }}>
<View <View
style={{ style={{
flexDirection: 'row', alignItems: 'flex-start',
justifyContent: 'space-between',
}}> }}>
<View <Text style={styles.txtBlack}>
style={{ {converType(item.transection_category)}
alignItems: 'flex-start', </Text>
}}> <Text style={styles.txt}>{item.transection_date_timestamp}</Text>
<Text style={styles.txtBlack}>{item.content}</Text> </View>
<Text style={styles.txt}>{item.date}</Text>
</View>
<View style={{alignItems: 'flex-end'}}> <View style={{alignItems: 'flex-end'}}>
{item.status == 1 ? ( <Text
<Text style={[
style={{ styles.txtMoney,
fontSize: getFontXD(42), item.status == 1 ? {color: '#1473E6'} : null,
fontWeight: 'bold', ]}>
color: '#F99D1D', {toPriceVnd(item.amount)} Đ
}}> </Text>
{toPriceVnd(item.money)} Đ <Text style={styles.txt}>{converStatus(item.status)}</Text>
</Text>
) : (
<Text
style={{
fontSize: getFontXD(42),
fontWeight: 'bold',
color: '#1473E6',
}}>
{toPriceVnd(item.money)} Đ
</Text>
)}
<Text style={styles.txt}>Hoàn tt</Text>
</View>
</View> </View>
</Block> </View>
</Block> </Block>
</View> </Block>
</TouchableOpacity> </View>
); );
}; };
...@@ -109,10 +95,20 @@ const styles = StyleSheet.create({ ...@@ -109,10 +95,20 @@ const styles = StyleSheet.create({
txt: { txt: {
fontSize: getFontXD(36), fontSize: getFontXD(36),
color: '#C4C4C4', color: '#C4C4C4',
marginTop: 10,
fontStyle: 'italic',
}, },
imgIcon: { imgIcon: {
width: WIDTHXD(178), width: WIDTHXD(178),
height: HEIGHTXD(178), height: HEIGHTXD(178),
resizeMode: 'contain', resizeMode: 'contain',
}, },
txtMoney: {
fontSize: getFontXD(42),
fontWeight: 'bold',
color: '#F99D1D',
},
txtBlack: {
fontSize: getFontXD(42),
},
}); });
...@@ -5,6 +5,7 @@ import { ...@@ -5,6 +5,7 @@ import {
HEIGHTXD, HEIGHTXD,
WIDTHXD, WIDTHXD,
toPriceVnd, toPriceVnd,
converType,
} from '../../../../Config/Functions'; } from '../../../../Config/Functions';
import R from '../../../../assets/R'; import R from '../../../../assets/R';
import Block from '../../../../components/Block'; import Block from '../../../../components/Block';
...@@ -18,31 +19,35 @@ const Item = (props) => { ...@@ -18,31 +19,35 @@ const Item = (props) => {
<TouchableOpacity onPress={() => console.log('hello')}> <TouchableOpacity onPress={() => console.log('hello')}>
<View style={styles.container}> <View style={styles.container}>
<Block flex={1} row> <Block flex={1} row>
<View style={[styles.wrapLeft, {backgroundColor: item.color}]} /> {/* <View style={[styles.wrapLeft, {backgroundColor: item.color}]} />
<View style={styles.wrapDate}> <View style={styles.wrapDate}>
<Text style={styles.txt}>T{item.month}</Text> <Text style={styles.txt}>T{item.month}</Text>
<Text style={styles.txtTitle}>{item.day}</Text> <Text style={styles.txtTitle}>{item.day}</Text>
</View> </View> */}
<Block <Block
style={styles.wrapRight} style={styles.wrapRight}
padding={[5, 10]} padding={[10, 10]}
space={'between'} space={'between'}
flex={1}> flex={1}>
<View style={styles.rowBet}> <View style={styles.rowBet}>
<Text style={styles.txtTitle}>{item.name}</Text> <Text style={styles.txtTitle}>
{converType(item.transection_category)}
</Text>
<Text <Text
style={{ style={{
fontSize: getFontXD(42), fontSize: getFontXD(42),
fontWeight: 'bold', fontWeight: 'bold',
color: '#FFB721', color: '#FFB721',
}}> }}>
{toPriceVnd(item.money)} {toPriceVnd(item.amount)}
</Text> </Text>
</View> </View>
<Text numberOfLines={2} style={styles.txt}> <Text numberOfLines={2} style={styles.txt}>
{item.note} {item.comments}
</Text>
<Text style={styles.txtDate}>
{item.transection_date_timestamp}
</Text> </Text>
<Text style={styles.txtDate}>Ngày {item.date}</Text>
</Block> </Block>
</Block> </Block>
</View> </View>
......
import React from 'react'; import React, {useState, useEffect} from 'react';
import {View, Text, FlatList} from 'react-native'; import {View, Text, FlatList} from 'react-native';
import HeaderBack from '../../../../components/Header/HeaderBack'; import HeaderBack from '../../../../components/Header/HeaderBack';
import Item from './Item'; import Item from './Item';
const data = [ import {getListTransaction} from '../../../../apis/Functions/Widthdraw';
{
id: '1',
month: 2,
day: '20',
name: 'Nạp tiền',
money: 10000000,
note: 'Ghi chú nap tiền để đầu tư',
status: 1,
date: '20/02/2021',
},
{
id: '2',
month: 2,
day: '20',
name: 'Nạp tiền',
money: 2000000,
note: 'Ghi chú nap tiền để đầu tư',
status: 1,
date: '20/02/2021',
},
{
id: '3',
month: 2,
day: '20',
name: 'Nạp tiền',
money: 3000000,
note: 'Ghi chú nap tiền để đầu tư',
status: 1,
date: '20/02/2021',
},
{
id: '4',
month: 2,
day: '20',
name: 'Nạp tiền',
money: 4000000,
note: 'Ghi chú nap tiền để đầu tư',
status: 1,
date: '20/02/2021',
},
{
id: '5',
month: 2,
day: '20',
name: 'Nạp tiền',
money: 9000000,
note: 'Ghi chú nap tiền để đầu tư',
status: 1,
date: '20/02/2021',
},
];
const Success = (props) => { const Success = (props) => {
const [page, setPage] = useState(1);
const [data, setData] = useState([]);
const [tottalPage, setTotalPage] = useState(1);
const [isRefresh, setisRefresh] = useState(false);
useEffect(() => {
getData();
}, []);
const getData = async () => {
setisRefresh(true);
setPage(1);
const res = await getListTransaction({
keyword: '',
type: 'ALL',
platform: Platform.OS,
page_size: 10,
status: -1,
page_index: 1,
start_date: '',
end_date: '',
});
console.log(res.data);
setisRefresh(false);
if ((res.data.code = 200 && res.data.data)) {
setData(res.data.data);
setTotalPage(res.data.meta.pages);
} else {
Alert.alert('Thông báo!', res.data.message);
}
};
const onRefresh = () => {
getData();
};
const onLoadMore = () => {
console.log(tottalPage);
if (page < tottalPage) getDataLoadMore();
};
const getDataLoadMore = async () => {
setisRefresh(true);
const res = await getListTransaction({
keyword: '',
type: 'ALL',
platform: Platform.OS,
page_size: 10,
status: 1,
page_index: page + 1,
start_date: '',
end_date: '',
});
setPage(page + 1);
if (res.data.code == 200) {
setData(data.concat(res.data.data));
}
setisRefresh(false);
};
return ( return (
<View style={{flex: 1}}> <View style={{flex: 1}}>
<FlatList <FlatList
keyExtractor={(item) => item.id} keyExtractor={(item) => item.transection_id}
refreshing={isRefresh}
onRefresh={onRefresh}
onEndReachedThreshold={0.01}
onEndReached={(info) => {
onLoadMore();
}}
data={data} data={data}
renderItem={({item}) => <Item item={item} />} renderItem={({item}) => <Item item={item} />}
/> />
......
import React from 'react'; import React, {useState, useEffect} from 'react';
import {View, Text, FlatList} from 'react-native'; import {View, Text, FlatList} from 'react-native';
import HeaderBack from '../../../../components/Header/HeaderBack'; import HeaderBack from '../../../../components/Header/HeaderBack';
import Item from './Item'; import Item from './Item';
const data = [ import {getListTransaction} from '../../../../apis/Functions/Widthdraw';
{
id: '1',
month: 2,
day: '20',
name: 'Nạp tiền',
money: 10000000,
note: 'Ghi chú nap tiền để đầu tư',
status: 1,
date: '20/02/2021',
},
{
id: '2',
month: 2,
day: '20',
name: 'Nạp tiền',
money: 2000000,
note: 'Ghi chú nap tiền để đầu tư',
status: 1,
date: '20/02/2021',
},
{
id: '3',
month: 2,
day: '20',
name: 'Nạp tiền',
money: 3000000,
note: 'Ghi chú nap tiền để đầu tư',
status: 1,
date: '20/02/2021',
},
{
id: '4',
month: 2,
day: '20',
name: 'Nạp tiền',
money: 4000000,
note: 'Ghi chú nap tiền để đầu tư',
status: 1,
date: '20/02/2021',
},
{
id: '5',
month: 2,
day: '20',
name: 'Nạp tiền',
money: 9000000,
note: 'Ghi chú nap tiền để đầu tư',
status: 1,
date: '20/02/2021',
},
];
const Watting = (props) => { const Watting = (props) => {
const [page, setPage] = useState(1);
const [data, setData] = useState([]);
const [tottalPage, setTotalPage] = useState(1);
const [isRefresh, setisRefresh] = useState(false);
useEffect(() => {
getData();
}, []);
const getData = async () => {
setisRefresh(true);
setPage(1);
const res = await getListTransaction({
keyword: '',
type: 'ALL',
platform: Platform.OS,
page_size: 10,
status: 0,
page_index: 1,
start_date: '',
end_date: '',
});
console.log(res.data);
setisRefresh(false);
if ((res.data.code = 200 && res.data.data)) {
setData(res.data.data);
setTotalPage(res.data.meta.pages);
} else {
Alert.alert('Thông báo!', res.data.message);
}
};
const onRefresh = () => {
getData();
};
const onLoadMore = () => {
console.log(tottalPage);
if (page < tottalPage) getDataLoadMore();
};
const getDataLoadMore = async () => {
setisRefresh(true);
const res = await getListTransaction({
keyword: '',
type: 'ALL',
platform: Platform.OS,
page_size: 10,
status: -1,
page_index: page + 1,
start_date: '',
end_date: '',
});
setPage(page + 1);
if (res.data.code == 200) {
setData(data.concat(res.data.data));
}
setisRefresh(false);
};
return ( return (
<View style={{flex: 1}}> <View style={{flex: 1}}>
<FlatList <FlatList
keyExtractor={(item) => item.id} keyExtractor={(item) => item.transection_id}
refreshing={isRefresh}
onRefresh={onRefresh}
onEndReachedThreshold={0.01}
onEndReached={(info) => {
onLoadMore();
}}
data={data} data={data}
renderItem={({item}) => <Item item={item} />} renderItem={({item}) => <Item item={item} />}
/> />
......
...@@ -6,6 +6,7 @@ import TextField from '../../../components/Input/TextField'; ...@@ -6,6 +6,7 @@ import TextField from '../../../components/Input/TextField';
import TextMulti from '../../../components/Input/TextMulti'; import TextMulti from '../../../components/Input/TextMulti';
import TextDisable from '../../../components/Input/TextDisable'; import TextDisable from '../../../components/Input/TextDisable';
import {getFontXD, toPriceVnd} from '../../../Config/Functions'; import {getFontXD, toPriceVnd} from '../../../Config/Functions';
import {connect} from 'react-redux';
const {width} = Dimensions.get('window'); const {width} = Dimensions.get('window');
const WalletDeposit = (props) => { const WalletDeposit = (props) => {
...@@ -16,13 +17,23 @@ const WalletDeposit = (props) => { ...@@ -16,13 +17,23 @@ const WalletDeposit = (props) => {
<View style={styles.wrapTop}> <View style={styles.wrapTop}>
<View style={styles.itemTop}> <View style={styles.itemTop}>
<Text style={styles.txtTitle}>Ví</Text> <Text style={styles.txtTitle}>Ví</Text>
<Text style={styles.txtMoney}>{toPriceVnd(1000000)}</Text> <Text style={styles.txtMoney}>
{' '}
{props.user.current_money != 0
? toPriceVnd(props.user.current_money)
: 0}{' '}
</Text>
</View> </View>
<View style={{width: 1, backgroundColor: '#DBDBDB'}} /> <View style={{width: 1, backgroundColor: '#DBDBDB'}} />
<View style={styles.itemTop}> <View style={styles.itemTop}>
<Text style={styles.txtTitle}>CQG</Text> <Text style={styles.txtTitle}>CQG</Text>
<Text style={styles.txtMoney}>{toPriceVnd(1000000)}</Text> <Text style={styles.txtMoney}>
{' '}
{props.user.current_cqg_money != 0
? toPriceVnd(props.user.current_cqg_money)
: 0}{' '}
đ
</Text>
</View> </View>
</View> </View>
<View style={styles.wrapBody}> <View style={styles.wrapBody}>
...@@ -95,4 +106,9 @@ const styles = StyleSheet.create({ ...@@ -95,4 +106,9 @@ const styles = StyleSheet.create({
}, },
}); });
export default WalletDeposit; const mapStateToProps = (state) => {
return {
user: state.userReducer,
};
};
export default connect(mapStateToProps, {})(WalletDeposit);
...@@ -117,18 +117,29 @@ const WalletWithdraw = (props) => { ...@@ -117,18 +117,29 @@ const WalletWithdraw = (props) => {
<View style={{flex: 1}}> <View style={{flex: 1}}>
<HeaderBack title={'Rút tiền'} /> <HeaderBack title={'Rút tiền'} />
<View style={styles.container}> <View style={styles.container}>
{/* <View style={styles.wrapTop}> <View style={styles.wrapTop}>
<View style={styles.itemTop}> <View style={styles.itemTop}>
<Text style={styles.txtTitle}>Ví</Text> <Text style={styles.txtTitle}>Ví</Text>
<Text style={styles.txtMoney}>{toPriceVnd(1000000)}</Text> <Text style={styles.txtMoney}>
</View> {' '}
<View style={{width: 1, backgroundColor: '#DBDBDB'}} /> {props.user.current_money != 0
? toPriceVnd(props.user.current_money)
: 0}{' '}
</Text>
</View>
<View style={styles.itemTop}> <View style={{width: 1, backgroundColor: '#DBDBDB'}} />
<Text style={styles.txtTitle}>CQG</Text>
<Text style={styles.txtMoney}>{toPriceVnd(1000000)}</Text> <View style={styles.itemTop}>
</View> <Text style={styles.txtTitle}>CQG</Text>
</View> */} <Text style={styles.txtMoney}>
{props.user.current_cqg_money != 0
? toPriceVnd(props.user.current_cqg_money)
: 0}{' '}
đ
</Text>
</View>
</View>
<View style={styles.wrapBody}> <View style={styles.wrapBody}>
<Text <Text
style={{ style={{
......
import React from 'react';
import {View, Text} from 'react-native';
import HeaderBack from '../../components/Header/HeaderBack';
const LegalDocument = (props) => {
return (
<View style={{flex: 1}}>
<HeaderBack title={'Giấy tờ pháp lý'} />
</View>
);
};
export default LegalDocument;
...@@ -58,7 +58,7 @@ const NewFeed = (props) => { ...@@ -58,7 +58,7 @@ const NewFeed = (props) => {
const getItemLayout = (data, index) => ({ const getItemLayout = (data, index) => ({
length: 100, length: 100,
offset: 80 * index, offset: 60 * index,
index, index,
}); });
......
...@@ -27,11 +27,6 @@ const NewFeed = (props) => { ...@@ -27,11 +27,6 @@ const NewFeed = (props) => {
style: {backgroundColor: 'white'}, style: {backgroundColor: 'white'},
}}> }}>
<Tab.Screen <Tab.Screen
name="CALENDAR"
component={Calendar}
options={{tabBarLabel: 'Lịch thị trường'}}
/>
<Tab.Screen
name="Tab1" name="Tab1"
component={Tab1} component={Tab1}
options={{tabBarLabel: 'Tin tức'}} options={{tabBarLabel: 'Tin tức'}}
...@@ -51,6 +46,11 @@ const NewFeed = (props) => { ...@@ -51,6 +46,11 @@ const NewFeed = (props) => {
component={Trading} component={Trading}
options={{tabBarLabel: 'Biểu đồ'}} options={{tabBarLabel: 'Biểu đồ'}}
/> />
<Tab.Screen
name="CALENDAR"
component={Calendar}
options={{tabBarLabel: 'Lịch thị trường'}}
/>
</Tab.Navigator> </Tab.Navigator>
</View> </View>
</View> </View>
......
...@@ -24,10 +24,11 @@ const Item = (props) => { ...@@ -24,10 +24,11 @@ const Item = (props) => {
</View> </View>
<Block padding={[5, 10]} space={'between'} flex={1}> <Block padding={[5, 10]} space={'between'} flex={1}>
<View style={{justifyContent: 'center', flex: 1}}> <View style={{justifyContent: 'center', flex: 1}}>
<Text style={styles.txtBlack}>{item.content}</Text> <Text numberOfLines={2} style={styles.txtBlack}>
Np tin thành công vi s lượng: 750.000
</Text>
</View> </View>
<Text style={styles.txt}>10:52 09/04/2021</Text>
<Text style={styles.txt}>Ngày {item.time}</Text>
</Block> </Block>
</Block> </Block>
</View> </View>
......
...@@ -9,93 +9,73 @@ const Fillters = [ ...@@ -9,93 +9,73 @@ const Fillters = [
{ {
id: '1', id: '1',
name: 'Tất cả', name: 'Tất cả',
value: 'all', value: 'ALL',
}, },
{ {
id: '2', id: '2',
name: 'Chưa đọc',
value: 'disable',
},
{
id: '3',
name: 'Đã đọc',
value: 'enable',
},
{
id: '4',
name: 'Rút tiền',
value: 'withdraw',
},
{
id: '5',
name: 'Nạp tiền', name: 'Nạp tiền',
value: 'deposit', value: 'DEPOSIT',
},
{
id: '6',
name: 'Chuyển khoản',
value: 'exchange',
},
];
const data = [
{
id: '1',
time: '20/02/2021',
content: 'Yêu cầu nạp tiền của bạn đã đươc xác nhận',
},
{
id: '2',
time: '20/02/2021',
content: 'Yêu cầu nạp tiền của bạn đã đươc xác nhận',
}, },
{ {
id: '3', id: '3',
time: '20/02/2021', name: 'Rút tiền',
content: 'Yêu cầu nạp tiền của bạn đã đươc xác nhận', value: 'WITHDRAW',
}, },
{ {
id: '4', id: '4',
time: '20/02/2021', name: 'Chuyển khoản',
content: 'Yêu cầu nạp tiền của bạn đã đươc xác nhận', value: 'TRANSFER',
}, },
]; ];
const NotificaitonView = (props) => { const NotificaitonView = (props) => {
const [selected, setSelected] = useState('1'); const {onRefresh, isRefresh, onLoadMore, setFillters, fillter, data} = props;
return ( return (
<View style={{flex: 1}}> <View style={{flex: 1}}>
<HeaderDrawer isWhite={true} title={'Thông báo'} /> <HeaderDrawer isWhite={true} title={'Thông báo'} />
<View style={styles.headerContainer}> <View style={styles.headerContainer}>
<FlatList {Fillters.map((e) => (
showsHorizontalScrollIndicator={false} <TouchableOpacity
horizontal key={e.value}
data={Fillters} onPress={() => setFillters(e.value)}
keyExtractor={(item) => item.id} style={[
renderItem={({item}) => ( styles.itemFillter,
<TouchableOpacity fillter == e.value ? {borderColor: '#1473E6'} : null,
onPress={() => setSelected(item.id)} ]}>
<Text
style={[ style={[
styles.itemFillter, styles.txtFillter,
selected == item.id ? {borderColor: '#1473E6'} : null, fillter == e.value ? {color: '#1473E6'} : {},
]}> ]}>
<Text {e.name}
style={[ </Text>
styles.txtFillter, </TouchableOpacity>
selected == item.id ? {color: '#1473E6'} : {}, ))}
]}>
{item.name}
</Text>
</TouchableOpacity>
)}
/>
</View> </View>
<FlatList {data.length == 0 ? (
keyExtractor={(item) => item.id} <View style={{justifyContent: 'center', alignItems: 'center', flex: 1}}>
data={data} <Text
renderItem={({item}) => <Item item={item} />} style={{
/> fontSize: getFontXD(46),
fontWeight: 'bold',
}}>
Không có thông báo nào!
</Text>
</View>
) : (
<FlatList
keyExtractor={(item) => item.id}
data={data}
refreshing={isRefresh}
onRefresh={onRefresh}
onEndReachedThreshold={0.01}
onEndReached={(info) => {
onLoadMore();
}}
renderItem={({item}) => <Item item={item} />}
/>
)}
</View> </View>
); );
}; };
...@@ -104,6 +84,10 @@ const styles = StyleSheet.create({ ...@@ -104,6 +84,10 @@ const styles = StyleSheet.create({
headerContainer: { headerContainer: {
paddingVertical: 10, paddingVertical: 10,
backgroundColor: 'white', backgroundColor: 'white',
flexDirection: 'row',
justifyContent: 'space-around',
alignItems: 'center',
paddingHorizontal: 10,
}, },
itemFillter: { itemFillter: {
borderRadius: 10, borderRadius: 10,
...@@ -111,12 +95,18 @@ const styles = StyleSheet.create({ ...@@ -111,12 +95,18 @@ const styles = StyleSheet.create({
paddingHorizontal: 10, paddingHorizontal: 10,
borderWidth: 1, borderWidth: 1,
borderColor: '#929292', borderColor: '#929292',
marginLeft: 15, minWidth: 80,
minWidth: 70, justifyContent: 'center',
alignItems: 'center',
}, },
txtFillter: { txtFillter: {
fontSize: getFontXD(36), fontSize: getFontXD(36),
color: '#929292', color: '#929292',
fontWeight: 'bold',
},
txtTitle: {
fontSize: getFontXD(46),
fontWeight: 'bold',
}, },
}); });
......
import React from 'react'; import React, {useState, useEffect} from 'react';
import {getListNotification} from '../../apis/Functions/users';
import NotificationView from './NotificaitonView'; import NotificationView from './NotificaitonView';
const Notifcation = (props) => { const Notifcation = (props) => {
return <NotificationView />; const [selected, setSelected] = useState('');
const [page, setPage] = useState(1);
const [data, setData] = useState([]);
const [tottalPage, setTotalPage] = useState(1);
const [isRefresh, setisRefresh] = useState(false);
const [fillter, setFillters] = useState('ALL');
useEffect(() => {
getData();
}, [fillter]);
const getData = async () => {
setisRefresh(true);
setPage(1);
const res = await getListNotification({
keyword: '',
platform: Platform.OS,
page_size: 10,
page_index: 1,
type: fillter,
});
setisRefresh(false);
if ((res.data.code = 200 && res.data.data)) {
setData(res.data.data);
setTotalPage(res.data.meta.pages);
} else {
Alert.alert('Thông báo!', res.data.message);
}
};
const onRefresh = () => {
getData();
};
const onLoadMore = () => {
console.log(tottalPage);
if (page < tottalPage) getDataLoadMore();
};
const getDataLoadMore = async () => {
setisRefresh(true);
const res = await getListNotification({
keyword: '',
platform: Platform.OS,
page_size: 10,
page_index: 1,
type: fillter,
});
setPage(page + 1);
if (res.data.code == 200) {
setData(data.concat(res.data.data));
}
setisRefresh(false);
};
return (
<NotificationView
onRefresh={onRefresh}
isRefresh={isRefresh}
onLoadMore={onLoadMore}
setFillters={setFillters}
fillter={fillter}
data={data}
/>
);
}; };
export default Notifcation; export default Notifcation;
...@@ -41,3 +41,8 @@ export const getTransaction = async (body) => ...@@ -41,3 +41,8 @@ export const getTransaction = async (body) =>
GetData(url.urlGetTransaction, body) GetData(url.urlGetTransaction, body)
.then((res) => res) .then((res) => res)
.catch((err) => err); .catch((err) => err);
export const getListNotification = async (body) =>
GetData(url.urlGetListNotification, body)
.then((res) => res)
.catch((err) => err);
...@@ -27,4 +27,6 @@ export default { ...@@ -27,4 +27,6 @@ export default {
//History //History
urlGetListHistory: root + 'api/v1/customers/get-list-transaction-history', urlGetListHistory: root + 'api/v1/customers/get-list-transaction-history',
urlGetListNotification: root + 'api/v1/customers/get-list-notification',
}; };
...@@ -30,8 +30,8 @@ const images = { ...@@ -30,8 +30,8 @@ const images = {
iconMethodPay: require('./images/iconMethodPay1.png'), iconMethodPay: require('./images/iconMethodPay1.png'),
iconDepositNoti: require('./images/iconDeposit.png'), iconDepositNoti: require('./images/iconDeposit.png'),
iconRecharge: require('./images/iconRecharge.png'), iconRecharge: require('./images/iconRecharge1.png'),
iconWithdrawal: require('./images/iconWithdrawal.png'), iconWithdrawal: require('./images/iconWithdrawal2.png'),
iconClose: require('./images/CloseIcon.png'), iconClose: require('./images/CloseIcon.png'),
iconBack: require('./images/iconBack.png'), iconBack: require('./images/iconBack.png'),
bgBtn: require('./images/bgBtn.png'), bgBtn: require('./images/bgBtn.png'),
...@@ -63,6 +63,7 @@ const images = { ...@@ -63,6 +63,7 @@ const images = {
iconCheck: require('./images/iconCheck.png'), iconCheck: require('./images/iconCheck.png'),
bgmedia: require('./images/bgmedia.jpeg'), bgmedia: require('./images/bgmedia.jpeg'),
bgLogin: require('./images/bgLogin.png'), bgLogin: require('./images/bgLogin.png'),
iconPaper: require('./images/iconPaper.png'),
}; };
export default images; export default images;
...@@ -14,6 +14,7 @@ import { ...@@ -14,6 +14,7 @@ import {
AUTHEN, AUTHEN,
PROFILE, PROFILE,
CONTRACT, CONTRACT,
LEGALDOCUMENT,
} from '../../routers/ScreenNames'; } from '../../routers/ScreenNames';
import {useNavigation} from '@react-navigation/native'; import {useNavigation} from '@react-navigation/native';
import {connect} from 'react-redux'; import {connect} from 'react-redux';
...@@ -51,6 +52,12 @@ const menus = [ ...@@ -51,6 +52,12 @@ const menus = [
screen: FEEDBACK, screen: FEEDBACK,
}, },
{ {
id: '7',
title: 'Giấy tờ pháp lý',
icon: R.images.iconPaper,
screen: LEGALDOCUMENT,
},
{
id: '5', id: '5',
title: 'Cài đặt', title: 'Cài đặt',
icon: R.images.iconSetting, icon: R.images.iconSetting,
......
...@@ -58,3 +58,5 @@ export const WALLETWITHDRAW = 'WALLETWITHDRAW'; ...@@ -58,3 +58,5 @@ export const WALLETWITHDRAW = 'WALLETWITHDRAW';
export const PACKETCQG = 'PACKETCQG'; export const PACKETCQG = 'PACKETCQG';
export const MEDIADETAIL = 'MEDIADETAIL'; export const MEDIADETAIL = 'MEDIADETAIL';
export const METHODPAYDETAIL = 'METHODPAYDETAIL'; export const METHODPAYDETAIL = 'METHODPAYDETAIL';
export const LEGALDOCUMENT = 'LEGALDOCUMENT';
...@@ -39,6 +39,7 @@ import WalletWithdraw from '../Screens/Action/Wallet/WalletWithdraw'; ...@@ -39,6 +39,7 @@ import WalletWithdraw from '../Screens/Action/Wallet/WalletWithdraw';
import PacketCQG from '../Screens/Account/PacrtCQG/PacketCQG'; import PacketCQG from '../Screens/Account/PacrtCQG/PacketCQG';
import MediaDetail from '../Screens/NewFeed/Media/MediaDetail'; import MediaDetail from '../Screens/NewFeed/Media/MediaDetail';
import MethodPayDetail from '../Screens/MethodPay/MethodPayDetail'; import MethodPayDetail from '../Screens/MethodPay/MethodPayDetail';
import LegaDocument from '../Screens/LegalDocument/LegalDocument';
import * as ScreenName from './ScreenNames'; import * as ScreenName from './ScreenNames';
...@@ -57,6 +58,7 @@ function MyStack(props) { ...@@ -57,6 +58,7 @@ function MyStack(props) {
headerMode={'none'} headerMode={'none'}
initialRouteName={ScreenName.AUTHEN}> initialRouteName={ScreenName.AUTHEN}>
<Stack.Screen name={ScreenName.LOGINSCREEN} component={Login} /> <Stack.Screen name={ScreenName.LOGINSCREEN} component={Login} />
<Stack.Screen name={ScreenName.LEGALDOCUMENT} component={LegaDocument} />
<Stack.Screen name={ScreenName.NOTIFICATION} component={Notification} /> <Stack.Screen name={ScreenName.NOTIFICATION} component={Notification} />
<Stack.Screen name={ScreenName.MEDIADETAIL} component={MediaDetail} /> <Stack.Screen name={ScreenName.MEDIADETAIL} component={MediaDetail} />
<Stack.Screen name={ScreenName.TABNAVIGATOR} component={TabNavigator} /> <Stack.Screen name={ScreenName.TABNAVIGATOR} component={TabNavigator} />
......
...@@ -691,6 +691,13 @@ ...@@ -691,6 +691,13 @@
dependencies: dependencies:
regenerator-runtime "^0.13.4" regenerator-runtime "^0.13.4"
"@babel/runtime@^7.7.2":
version "7.13.10"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d"
integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==
dependencies:
regenerator-runtime "^0.13.4"
"@babel/template@^7.0.0", "@babel/template@^7.12.13", "@babel/template@^7.3.3": "@babel/template@^7.0.0", "@babel/template@^7.12.13", "@babel/template@^7.3.3":
version "7.12.13" version "7.12.13"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz"
...@@ -1033,6 +1040,296 @@ ...@@ -1033,6 +1040,296 @@
"@types/yargs" "^15.0.0" "@types/yargs" "^15.0.0"
chalk "^4.0.0" chalk "^4.0.0"
"@jimp/bmp@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.16.1.tgz#6e2da655b2ba22e721df0795423f34e92ef13768"
integrity sha512-iwyNYQeBawrdg/f24x3pQ5rEx+/GwjZcCXd3Kgc+ZUd+Ivia7sIqBsOnDaMZdKCBPlfW364ekexnlOqyVa0NWg==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
bmp-js "^0.1.0"
"@jimp/core@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.16.1.tgz#68c4288f6ef7f31a0f6b859ba3fb28dae930d39d"
integrity sha512-la7kQia31V6kQ4q1kI/uLimu8FXx7imWVajDGtwUG8fzePLWDFJyZl0fdIXVCL1JW2nBcRHidUot6jvlRDi2+g==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
any-base "^1.1.0"
buffer "^5.2.0"
exif-parser "^0.1.12"
file-type "^9.0.0"
load-bmfont "^1.3.1"
mkdirp "^0.5.1"
phin "^2.9.1"
pixelmatch "^4.0.2"
tinycolor2 "^1.4.1"
"@jimp/custom@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.16.1.tgz#28b659c59e20a1d75a0c46067bd3f4bd302cf9c5"
integrity sha512-DNUAHNSiUI/j9hmbatD6WN/EBIyeq4AO0frl5ETtt51VN1SvE4t4v83ZA/V6ikxEf3hxLju4tQ5Pc3zmZkN/3A==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/core" "^0.16.1"
"@jimp/gif@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.16.1.tgz#d1f7c3a58f4666482750933af8b8f4666414f3ca"
integrity sha512-r/1+GzIW1D5zrP4tNrfW+3y4vqD935WBXSc8X/wm23QTY9aJO9Lw6PEdzpYCEY+SOklIFKaJYUAq/Nvgm/9ryw==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
gifwrap "^0.9.2"
omggif "^1.0.9"
"@jimp/jpeg@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.16.1.tgz#3b7bb08a4173f2f6d81f3049b251df3ee2ac8175"
integrity sha512-8352zrdlCCLFdZ/J+JjBslDvml+fS3Z8gttdml0We759PnnZGqrnPRhkOEOJbNUlE+dD4ckLeIe6NPxlS/7U+w==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
jpeg-js "0.4.2"
"@jimp/plugin-blit@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-blit/-/plugin-blit-0.16.1.tgz#09ea919f9d326de3b9c2826fe4155da37dde8edb"
integrity sha512-fKFNARm32RoLSokJ8WZXHHH2CGzz6ire2n1Jh6u+XQLhk9TweT1DcLHIXwQMh8oR12KgjbgsMGvrMVlVknmOAg==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-blur@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-blur/-/plugin-blur-0.16.1.tgz#e614fa002797dcd662e705d4cea376e7db968bf5"
integrity sha512-1WhuLGGj9MypFKRcPvmW45ht7nXkOKu+lg3n2VBzIB7r4kKNVchuI59bXaCYQumOLEqVK7JdB4glaDAbCQCLyw==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-circle@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-circle/-/plugin-circle-0.16.1.tgz#20e3194a67ca29740aba2630fd4d0a89afa27491"
integrity sha512-JK7yi1CIU7/XL8hdahjcbGA3V7c+F+Iw+mhMQhLEi7Q0tCnZ69YJBTamMiNg3fWPVfMuvWJJKOBRVpwNTuaZRg==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-color@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-color/-/plugin-color-0.16.1.tgz#0f298ba74dee818b663834cd80d53e56f3755233"
integrity sha512-9yQttBAO5SEFj7S6nJK54f+1BnuBG4c28q+iyzm1JjtnehjqMg6Ljw4gCSDCvoCQ3jBSYHN66pmwTV74SU1B7A==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
tinycolor2 "^1.4.1"
"@jimp/plugin-contain@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-contain/-/plugin-contain-0.16.1.tgz#3c5f5c495fd9bb08a970739d83694934f58123f2"
integrity sha512-44F3dUIjBDHN+Ym/vEfg+jtjMjAqd2uw9nssN67/n4FdpuZUVs7E7wadKY1RRNuJO+WgcD5aDQcsvurXMETQTg==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-cover@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-cover/-/plugin-cover-0.16.1.tgz#0e8caec16a40abe15b1b32e5383a603a3306dc41"
integrity sha512-YztWCIldBAVo0zxcQXR+a/uk3/TtYnpKU2CanOPJ7baIuDlWPsG+YE4xTsswZZc12H9Kl7CiziEbDtvF9kwA/Q==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-crop@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-crop/-/plugin-crop-0.16.1.tgz#b362497c873043fe47ba881ab08604bf7226f50f"
integrity sha512-UQdva9oQzCVadkyo3T5Tv2CUZbf0klm2cD4cWMlASuTOYgaGaFHhT9st+kmfvXjKL8q3STkBu/zUPV6PbuV3ew==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-displace@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-displace/-/plugin-displace-0.16.1.tgz#4dd9db518c3e78de9d723f86a234bf98922afe8d"
integrity sha512-iVAWuz2+G6Heu8gVZksUz+4hQYpR4R0R/RtBzpWEl8ItBe7O6QjORAkhxzg+WdYLL2A/Yd4ekTpvK0/qW8hTVw==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-dither@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-dither/-/plugin-dither-0.16.1.tgz#b47de2c0bb09608bed228b41c3cd01a85ec2d45b"
integrity sha512-tADKVd+HDC9EhJRUDwMvzBXPz4GLoU6s5P7xkVq46tskExYSptgj5713J5Thj3NMgH9Rsqu22jNg1H/7tr3V9Q==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-fisheye@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.16.1.tgz#f625047b6cdbe1b83b89e9030fd025ab19cdb1a4"
integrity sha512-BWHnc5hVobviTyIRHhIy9VxI1ACf4CeSuCfURB6JZm87YuyvgQh5aX5UDKtOz/3haMHXBLP61ZBxlNpMD8CG4A==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-flip@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-flip/-/plugin-flip-0.16.1.tgz#7a99ea22bde802641017ed0f2615870c144329bb"
integrity sha512-KdxTf0zErfZ8DyHkImDTnQBuHby+a5YFdoKI/G3GpBl3qxLBvC+PWkS2F/iN3H7wszP7/TKxTEvWL927pypT0w==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-gaussian@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.16.1.tgz#0845e314085ccd52e34fad9a83949bc0d81a68e8"
integrity sha512-u9n4wjskh3N1mSqketbL6tVcLU2S5TEaFPR40K6TDv4phPLZALi1Of7reUmYpVm8mBDHt1I6kGhuCJiWvzfGyg==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-invert@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-invert/-/plugin-invert-0.16.1.tgz#7e6f5a15707256f3778d06921675bbcf18545c97"
integrity sha512-2DKuyVXANH8WDpW9NG+PYFbehzJfweZszFYyxcaewaPLN0GxvxVLOGOPP1NuUTcHkOdMFbE0nHDuB7f+sYF/2w==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-mask@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-mask/-/plugin-mask-0.16.1.tgz#e7f2460e05c3cda7af5e76f33ccb0579f66f90df"
integrity sha512-snfiqHlVuj4bSFS0v96vo2PpqCDMe4JB+O++sMo5jF5mvGcGL6AIeLo8cYqPNpdO6BZpBJ8MY5El0Veckhr39Q==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-normalize@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-normalize/-/plugin-normalize-0.16.1.tgz#032dfd88eefbc4dedc8b1b2d243832e4f3af30c8"
integrity sha512-dOQfIOvGLKDKXPU8xXWzaUeB0nvkosHw6Xg1WhS1Z5Q0PazByhaxOQkSKgUryNN/H+X7UdbDvlyh/yHf3ITRaw==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-print@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-print/-/plugin-print-0.16.1.tgz#66b803563f9d109825970714466e6ab9ae639ff6"
integrity sha512-ceWgYN40jbN4cWRxixym+csyVymvrryuKBQ+zoIvN5iE6OyS+2d7Mn4zlNgumSczb9GGyZZESIgVcBDA1ezq0Q==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
load-bmfont "^1.4.0"
"@jimp/plugin-resize@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.16.1.tgz#65e39d848ed13ba2d6c6faf81d5d590396571d10"
integrity sha512-u4JBLdRI7dargC04p2Ha24kofQBk3vhaf0q8FwSYgnCRwxfvh2RxvhJZk9H7Q91JZp6wgjz/SjvEAYjGCEgAwQ==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-rotate@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-rotate/-/plugin-rotate-0.16.1.tgz#53fb5d51a4b3d05af9c91c2a8fffe5d7a1a47c8c"
integrity sha512-ZUU415gDQ0VjYutmVgAYYxC9Og9ixu2jAGMCU54mSMfuIlmohYfwARQmI7h4QB84M76c9hVLdONWjuo+rip/zg==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-scale@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-scale/-/plugin-scale-0.16.1.tgz#89f6ba59feed3429847ed226aebda33a240cc647"
integrity sha512-jM2QlgThIDIc4rcyughD5O7sOYezxdafg/2Xtd1csfK3z6fba3asxDwthqPZAgitrLgiKBDp6XfzC07Y/CefUw==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-shadow@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-shadow/-/plugin-shadow-0.16.1.tgz#a7af892a740febf41211e10a5467c3c5c521a04c"
integrity sha512-MeD2Is17oKzXLnsphAa1sDstTu6nxscugxAEk3ji0GV1FohCvpHBcec0nAq6/czg4WzqfDts+fcPfC79qWmqrA==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugin-threshold@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugin-threshold/-/plugin-threshold-0.16.1.tgz#34f3078f9965145b7ae26c53a32ad74b1195bbf5"
integrity sha512-iGW8U/wiCSR0+6syrPioVGoSzQFt4Z91SsCRbgNKTAk7D+XQv6OI78jvvYg4o0c2FOlwGhqz147HZV5utoSLxA==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
"@jimp/plugins@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/plugins/-/plugins-0.16.1.tgz#9f08544c97226d6460a16ced79f57e85bec3257b"
integrity sha512-c+lCqa25b+4q6mJZSetlxhMoYuiltyS+ValLzdwK/47+aYsq+kcJNl+TuxIEKf59yr9+5rkbpsPkZHLF/V7FFA==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/plugin-blit" "^0.16.1"
"@jimp/plugin-blur" "^0.16.1"
"@jimp/plugin-circle" "^0.16.1"
"@jimp/plugin-color" "^0.16.1"
"@jimp/plugin-contain" "^0.16.1"
"@jimp/plugin-cover" "^0.16.1"
"@jimp/plugin-crop" "^0.16.1"
"@jimp/plugin-displace" "^0.16.1"
"@jimp/plugin-dither" "^0.16.1"
"@jimp/plugin-fisheye" "^0.16.1"
"@jimp/plugin-flip" "^0.16.1"
"@jimp/plugin-gaussian" "^0.16.1"
"@jimp/plugin-invert" "^0.16.1"
"@jimp/plugin-mask" "^0.16.1"
"@jimp/plugin-normalize" "^0.16.1"
"@jimp/plugin-print" "^0.16.1"
"@jimp/plugin-resize" "^0.16.1"
"@jimp/plugin-rotate" "^0.16.1"
"@jimp/plugin-scale" "^0.16.1"
"@jimp/plugin-shadow" "^0.16.1"
"@jimp/plugin-threshold" "^0.16.1"
timm "^1.6.1"
"@jimp/png@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.16.1.tgz#f24cfc31529900b13a2dd9d4fdb4460c1e4d814e"
integrity sha512-iyWoCxEBTW0OUWWn6SveD4LePW89kO7ZOy5sCfYeDM/oTPLpR8iMIGvZpZUz1b8kvzFr27vPst4E5rJhGjwsdw==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/utils" "^0.16.1"
pngjs "^3.3.3"
"@jimp/tiff@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.16.1.tgz#0e8756695687d7574b6bc73efab0acd4260b7a12"
integrity sha512-3K3+xpJS79RmSkAvFMgqY5dhSB+/sxhwTFA9f4AVHUK0oKW+u6r52Z1L0tMXHnpbAdR9EJ+xaAl2D4x19XShkQ==
dependencies:
"@babel/runtime" "^7.7.2"
utif "^2.0.1"
"@jimp/types@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.16.1.tgz#0dbab37b3202315c91010f16c31766d35a2322cc"
integrity sha512-g1w/+NfWqiVW4CaXSJyD28JQqZtm2eyKMWPhBBDCJN9nLCN12/Az0WFF3JUAktzdsEC2KRN2AqB1a2oMZBNgSQ==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/bmp" "^0.16.1"
"@jimp/gif" "^0.16.1"
"@jimp/jpeg" "^0.16.1"
"@jimp/png" "^0.16.1"
"@jimp/tiff" "^0.16.1"
timm "^1.6.1"
"@jimp/utils@^0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.16.1.tgz#2f51e6f14ff8307c4aa83d5e1a277da14a9fe3f7"
integrity sha512-8fULQjB0x4LzUSiSYG6ZtQl355sZjxbv8r9PPAuYHzS9sGiSHJQavNqK/nKnpDsVkU88/vRGcE7t3nMU0dEnVw==
dependencies:
"@babel/runtime" "^7.7.2"
regenerator-runtime "^0.13.3"
"@react-native-clipboard/clipboard@^1.7.0": "@react-native-clipboard/clipboard@^1.7.0":
version "1.7.0" version "1.7.0"
resolved "https://registry.yarnpkg.com/@react-native-clipboard/clipboard/-/clipboard-1.7.0.tgz#43320841870b82b2f311f375dd5f178da46e244e" resolved "https://registry.yarnpkg.com/@react-native-clipboard/clipboard/-/clipboard-1.7.0.tgz#43320841870b82b2f311f375dd5f178da46e244e"
...@@ -1673,6 +1970,11 @@ ansi-wrap@0.1.0, ansi-wrap@^0.1.0: ...@@ -1673,6 +1970,11 @@ ansi-wrap@0.1.0, ansi-wrap@^0.1.0:
resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz" resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz"
integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768=
any-base@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe"
integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==
anymatch@^2.0.0: anymatch@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz"
...@@ -1814,6 +2116,11 @@ asynckit@^0.4.0: ...@@ -1814,6 +2116,11 @@ asynckit@^0.4.0:
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz"
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
at-least-node@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
atob@^2.1.2: atob@^2.1.2:
version "2.1.2" version "2.1.2"
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz"
...@@ -1983,7 +2290,7 @@ balanced-match@^1.0.0: ...@@ -1983,7 +2290,7 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
base64-js@^1.1.2, base64-js@^1.2.3: base64-js@^1.1.2, base64-js@^1.2.3, base64-js@^1.3.1:
version "1.5.1" version "1.5.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
...@@ -2020,6 +2327,11 @@ bindings@^1.5.0: ...@@ -2020,6 +2327,11 @@ bindings@^1.5.0:
dependencies: dependencies:
file-uri-to-path "1.0.0" file-uri-to-path "1.0.0"
bmp-js@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233"
integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM=
bplist-creator@0.0.8: bplist-creator@0.0.8:
version "0.0.8" version "0.0.8"
resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.0.8.tgz" resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.0.8.tgz"
...@@ -2093,11 +2405,24 @@ buffer-crc32@^0.2.13: ...@@ -2093,11 +2405,24 @@ buffer-crc32@^0.2.13:
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz"
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
buffer-equal@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b"
integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=
buffer-from@^1.0.0: buffer-from@^1.0.0:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz"
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
buffer@^5.2.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
dependencies:
base64-js "^1.3.1"
ieee754 "^1.1.13"
bytes@3.0.0: bytes@3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz"
...@@ -2194,7 +2519,7 @@ chalk@^3.0.0: ...@@ -2194,7 +2519,7 @@ chalk@^3.0.0:
ansi-styles "^4.1.0" ansi-styles "^4.1.0"
supports-color "^7.1.0" supports-color "^7.1.0"
chalk@^4.0.0: chalk@^4.0.0, chalk@^4.1.0:
version "4.1.0" version "4.1.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz"
integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
...@@ -2704,6 +3029,11 @@ doctrine@^3.0.0: ...@@ -2704,6 +3029,11 @@ doctrine@^3.0.0:
dependencies: dependencies:
esutils "^2.0.2" esutils "^2.0.2"
dom-walk@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==
domexception@^2.0.1: domexception@^2.0.1:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz" resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz"
...@@ -3098,6 +3428,11 @@ execa@^4.0.0: ...@@ -3098,6 +3428,11 @@ execa@^4.0.0:
signal-exit "^3.0.2" signal-exit "^3.0.2"
strip-final-newline "^2.0.0" strip-final-newline "^2.0.0"
exif-parser@^0.1.12:
version "0.1.12"
resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922"
integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=
exit@^0.1.2: exit@^0.1.2:
version "0.1.2" version "0.1.2"
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz"
...@@ -3287,6 +3622,11 @@ file-entry-cache@^6.0.1: ...@@ -3287,6 +3622,11 @@ file-entry-cache@^6.0.1:
dependencies: dependencies:
flat-cache "^3.0.4" flat-cache "^3.0.4"
file-type@^9.0.0:
version "9.0.0"
resolved "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18"
integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==
file-uri-to-path@1.0.0: file-uri-to-path@1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"
...@@ -3430,6 +3770,16 @@ fs-extra@^8.1.0: ...@@ -3430,6 +3770,16 @@ fs-extra@^8.1.0:
jsonfile "^4.0.0" jsonfile "^4.0.0"
universalify "^0.1.0" universalify "^0.1.0"
fs-extra@^9.1.0:
version "9.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
dependencies:
at-least-node "^1.0.0"
graceful-fs "^4.2.0"
jsonfile "^6.0.1"
universalify "^2.0.0"
fs.realpath@^1.0.0: fs.realpath@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz"
...@@ -3513,6 +3863,14 @@ getpass@^0.1.1: ...@@ -3513,6 +3863,14 @@ getpass@^0.1.1:
dependencies: dependencies:
assert-plus "^1.0.0" assert-plus "^1.0.0"
gifwrap@^0.9.2:
version "0.9.2"
resolved "https://registry.yarnpkg.com/gifwrap/-/gifwrap-0.9.2.tgz#348e286e67d7cf57942172e1e6f05a71cee78489"
integrity sha512-fcIswrPaiCDAyO8xnWvHSZdWChjKXUanKKpAiWWJ/UTkEi/aYKn5+90e7DE820zbEaVR9CE2y4z9bzhQijZ0BA==
dependencies:
image-q "^1.1.1"
omggif "^1.0.10"
glob-parent@^5.0.0: glob-parent@^5.0.0:
version "5.1.1" version "5.1.1"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz"
...@@ -3532,6 +3890,14 @@ glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: ...@@ -3532,6 +3890,14 @@ glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
once "^1.3.0" once "^1.3.0"
path-is-absolute "^1.0.0" path-is-absolute "^1.0.0"
global@~4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406"
integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==
dependencies:
min-document "^2.19.0"
process "^0.11.10"
globals@^11.1.0: globals@^11.1.0:
version "11.12.0" version "11.12.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz"
...@@ -3702,6 +4068,11 @@ iconv-lite@^0.6.2: ...@@ -3702,6 +4068,11 @@ iconv-lite@^0.6.2:
dependencies: dependencies:
safer-buffer ">= 2.1.2 < 3.0.0" safer-buffer ">= 2.1.2 < 3.0.0"
ieee754@^1.1.13:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
ignore@^4.0.6: ignore@^4.0.6:
version "4.0.6" version "4.0.6"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz"
...@@ -3712,6 +4083,11 @@ ignore@^5.0.5: ...@@ -3712,6 +4083,11 @@ ignore@^5.0.5:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz"
integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
image-q@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/image-q/-/image-q-1.1.1.tgz#fc84099664460b90ca862d9300b6bfbbbfbf8056"
integrity sha1-/IQJlmRGC5DKhi2TALa/u7+/gFY=
image-size@^0.6.0: image-size@^0.6.0:
version "0.6.3" version "0.6.3"
resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.3.tgz" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.3.tgz"
...@@ -3927,6 +4303,11 @@ is-fullwidth-code-point@^3.0.0: ...@@ -3927,6 +4303,11 @@ is-fullwidth-code-point@^3.0.0:
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
is-function@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08"
integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==
is-generator-fn@^2.0.0: is-generator-fn@^2.0.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz"
...@@ -4572,6 +4953,22 @@ jetifier@^1.6.2: ...@@ -4572,6 +4953,22 @@ jetifier@^1.6.2:
resolved "https://registry.yarnpkg.com/jetifier/-/jetifier-1.6.6.tgz" resolved "https://registry.yarnpkg.com/jetifier/-/jetifier-1.6.6.tgz"
integrity sha512-JNAkmPeB/GS2tCRqUzRPsTOHpGDah7xP18vGJfIjZC+W2sxEHbxgJxetIjIqhjQ3yYbYNEELkM/spKLtwoOSUQ== integrity sha512-JNAkmPeB/GS2tCRqUzRPsTOHpGDah7xP18vGJfIjZC+W2sxEHbxgJxetIjIqhjQ3yYbYNEELkM/spKLtwoOSUQ==
jimp@^0.16.1:
version "0.16.1"
resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.16.1.tgz#192f851a30e5ca11112a3d0aa53137659a78ca7a"
integrity sha512-+EKVxbR36Td7Hfd23wKGIeEyHbxShZDX6L8uJkgVW3ESA9GiTEPK08tG1XI2r/0w5Ch0HyJF5kPqF9K7EmGjaw==
dependencies:
"@babel/runtime" "^7.7.2"
"@jimp/custom" "^0.16.1"
"@jimp/plugins" "^0.16.1"
"@jimp/types" "^0.16.1"
regenerator-runtime "^0.13.3"
jpeg-js@0.4.2:
version "0.4.2"
resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.2.tgz#8b345b1ae4abde64c2da2fe67ea216a114ac279d"
integrity sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz"
...@@ -4700,6 +5097,15 @@ jsonfile@^4.0.0: ...@@ -4700,6 +5097,15 @@ jsonfile@^4.0.0:
optionalDependencies: optionalDependencies:
graceful-fs "^4.1.6" graceful-fs "^4.1.6"
jsonfile@^6.0.1:
version "6.1.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
dependencies:
universalify "^2.0.0"
optionalDependencies:
graceful-fs "^4.1.6"
jsonify@~0.0.0: jsonify@~0.0.0:
version "0.0.0" version "0.0.0"
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz"
...@@ -4790,6 +5196,20 @@ lines-and-columns@^1.1.6: ...@@ -4790,6 +5196,20 @@ lines-and-columns@^1.1.6:
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz"
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
load-bmfont@^1.3.1, load-bmfont@^1.4.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz#c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9"
integrity sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==
dependencies:
buffer-equal "0.0.1"
mime "^1.3.4"
parse-bmfont-ascii "^1.0.3"
parse-bmfont-binary "^1.0.5"
parse-bmfont-xml "^1.1.4"
phin "^2.9.1"
xhr "^2.0.1"
xtend "^4.0.0"
locate-path@^3.0.0: locate-path@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz"
...@@ -5371,7 +5791,7 @@ mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: ...@@ -5371,7 +5791,7 @@ mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24:
dependencies: dependencies:
mime-db "1.46.0" mime-db "1.46.0"
mime@1.6.0: mime@1.6.0, mime@^1.3.4:
version "1.6.0" version "1.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz"
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
...@@ -5391,6 +5811,13 @@ mimic-fn@^2.1.0: ...@@ -5391,6 +5811,13 @@ mimic-fn@^2.1.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
min-document@^2.19.0:
version "2.19.0"
resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=
dependencies:
dom-walk "^0.1.0"
minimatch@^3.0.4: minimatch@^3.0.4:
version "3.0.4" version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz"
...@@ -5682,6 +6109,11 @@ object.values@^1.1.1: ...@@ -5682,6 +6109,11 @@ object.values@^1.1.1:
es-abstract "^1.18.0-next.2" es-abstract "^1.18.0-next.2"
has "^1.0.3" has "^1.0.3"
omggif@^1.0.10, omggif@^1.0.9:
version "1.0.10"
resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19"
integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==
on-finished@~2.3.0: on-finished@~2.3.0:
version "2.3.0" version "2.3.0"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz"
...@@ -5809,6 +6241,11 @@ p-try@^2.0.0: ...@@ -5809,6 +6241,11 @@ p-try@^2.0.0:
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
pako@^1.0.5:
version "1.0.11"
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
parent-module@^1.0.0: parent-module@^1.0.0:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz"
...@@ -5816,6 +6253,29 @@ parent-module@^1.0.0: ...@@ -5816,6 +6253,29 @@ parent-module@^1.0.0:
dependencies: dependencies:
callsites "^3.0.0" callsites "^3.0.0"
parse-bmfont-ascii@^1.0.3:
version "1.0.6"
resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285"
integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=
parse-bmfont-binary@^1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006"
integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=
parse-bmfont-xml@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389"
integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==
dependencies:
xml-parse-from-string "^1.0.0"
xml2js "^0.4.5"
parse-headers@^2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515"
integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==
parse-json@^4.0.0: parse-json@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz"
...@@ -5889,6 +6349,11 @@ performance-now@^2.1.0: ...@@ -5889,6 +6349,11 @@ performance-now@^2.1.0:
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz"
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
phin@^2.9.1:
version "2.9.3"
resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c"
integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==
picomatch@^2.0.4, picomatch@^2.0.5: picomatch@^2.0.4, picomatch@^2.0.5:
version "2.2.2" version "2.2.2"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz"
...@@ -5906,6 +6371,13 @@ pirates@^4.0.0, pirates@^4.0.1: ...@@ -5906,6 +6371,13 @@ pirates@^4.0.0, pirates@^4.0.1:
dependencies: dependencies:
node-modules-regexp "^1.0.0" node-modules-regexp "^1.0.0"
pixelmatch@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854"
integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=
dependencies:
pngjs "^3.0.0"
pkg-dir@^3.0.0: pkg-dir@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz"
...@@ -5940,6 +6412,11 @@ plugin-error@^0.1.2: ...@@ -5940,6 +6412,11 @@ plugin-error@^0.1.2:
arr-union "^2.0.1" arr-union "^2.0.1"
extend-shallow "^1.1.2" extend-shallow "^1.1.2"
pngjs@^3.0.0, pngjs@^3.3.3:
version "3.4.0"
resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f"
integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==
posix-character-classes@^0.1.0: posix-character-classes@^0.1.0:
version "0.1.1" version "0.1.1"
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz"
...@@ -6002,6 +6479,11 @@ process-nextick-args@~2.0.0: ...@@ -6002,6 +6479,11 @@ process-nextick-args@~2.0.0:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
process@^0.11.10:
version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
progress@^2.0.0: progress@^2.0.0:
version "2.0.3" version "2.0.3"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz"
...@@ -6104,6 +6586,15 @@ react-native-animatable@1.3.3: ...@@ -6104,6 +6586,15 @@ react-native-animatable@1.3.3:
dependencies: dependencies:
prop-types "^15.7.2" prop-types "^15.7.2"
react-native-bootsplash@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/react-native-bootsplash/-/react-native-bootsplash-3.2.0.tgz#671861fdd75444f91196d3e64d3539ef50c3a30f"
integrity sha512-1+xMWLxqIUPbKiiwrbiekw3uKtuyNpm0R1eg5p3/ISRMXs0eZy7DHfiyCqcLq1N1a3Gv0oTZn1E7WEA2NjgdhA==
dependencies:
chalk "^4.1.0"
fs-extra "^9.1.0"
jimp "^0.16.1"
react-native-confirmation-code-field@^6.5.1: react-native-confirmation-code-field@^6.5.1:
version "6.5.1" version "6.5.1"
resolved "https://registry.yarnpkg.com/react-native-confirmation-code-field/-/react-native-confirmation-code-field-6.5.1.tgz" resolved "https://registry.yarnpkg.com/react-native-confirmation-code-field/-/react-native-confirmation-code-field-6.5.1.tgz"
...@@ -6351,7 +6842,7 @@ regenerate@^1.4.0: ...@@ -6351,7 +6842,7 @@ regenerate@^1.4.0:
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz"
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4: regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4:
version "0.13.7" version "0.13.7"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz"
integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
...@@ -6606,7 +7097,7 @@ sane@^4.0.3: ...@@ -6606,7 +7097,7 @@ sane@^4.0.3:
minimist "^1.1.1" minimist "^1.1.1"
walker "~1.0.5" walker "~1.0.5"
sax@^1.2.1: sax@>=0.6.0, sax@^1.2.1:
version "1.2.4" version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
...@@ -7243,6 +7734,16 @@ time-stamp@^1.0.0: ...@@ -7243,6 +7734,16 @@ time-stamp@^1.0.0:
resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz" resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz"
integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=
timm@^1.6.1:
version "1.7.1"
resolved "https://registry.yarnpkg.com/timm/-/timm-1.7.1.tgz#96bab60c7d45b5a10a8a4d0f0117c6b7e5aff76f"
integrity sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==
tinycolor2@^1.4.1:
version "1.4.2"
resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803"
integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==
tmp@^0.0.33: tmp@^0.0.33:
version "0.0.33" version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz"
...@@ -7471,6 +7972,11 @@ universalify@^0.1.0: ...@@ -7471,6 +7972,11 @@ universalify@^0.1.0:
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz"
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
universalify@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
unpipe@~1.0.0: unpipe@~1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz"
...@@ -7508,6 +8014,13 @@ use@^3.1.0: ...@@ -7508,6 +8014,13 @@ use@^3.1.0:
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz"
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
utif@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759"
integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==
dependencies:
pako "^1.0.5"
util-deprecate@~1.0.1: util-deprecate@~1.0.1:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz"
...@@ -7725,16 +8238,44 @@ xcode@^2.0.0: ...@@ -7725,16 +8238,44 @@ xcode@^2.0.0:
simple-plist "^1.0.0" simple-plist "^1.0.0"
uuid "^3.3.2" uuid "^3.3.2"
xhr@^2.0.1:
version "2.6.0"
resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d"
integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==
dependencies:
global "~4.4.0"
is-function "^1.0.1"
parse-headers "^2.0.0"
xtend "^4.0.0"
xml-name-validator@^3.0.0: xml-name-validator@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz"
integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
xml-parse-from-string@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28"
integrity sha1-qQKekp09vN7RafPG4oI42VpdWig=
xml2js@^0.4.5:
version "0.4.23"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66"
integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==
dependencies:
sax ">=0.6.0"
xmlbuilder "~11.0.0"
xmlbuilder@^9.0.7: xmlbuilder@^9.0.7:
version "9.0.7" version "9.0.7"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz"
integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
xmlbuilder@~11.0.0:
version "11.0.1"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
xmlchars@^2.2.0: xmlchars@^2.2.0:
version "2.2.0" version "2.2.0"
resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz"
...@@ -7757,7 +8298,7 @@ xpipe@^1.0.5: ...@@ -7757,7 +8298,7 @@ xpipe@^1.0.5:
resolved "https://registry.yarnpkg.com/xpipe/-/xpipe-1.0.5.tgz" resolved "https://registry.yarnpkg.com/xpipe/-/xpipe-1.0.5.tgz"
integrity sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98= integrity sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98=
xtend@~4.0.1: xtend@^4.0.0, xtend@~4.0.1:
version "4.0.2" version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment