first commit
|
@ -0,0 +1,6 @@
|
||||||
|
|
||||||
|
[android]
|
||||||
|
target = Google Inc.:Google APIs:23
|
||||||
|
|
||||||
|
[maven_repositories]
|
||||||
|
central = https://repo1.maven.org/maven2
|
|
@ -0,0 +1,4 @@
|
||||||
|
module.exports = {
|
||||||
|
root: true,
|
||||||
|
extends: '@react-native-community',
|
||||||
|
};
|
|
@ -0,0 +1,65 @@
|
||||||
|
[ignore]
|
||||||
|
; We fork some components by platform
|
||||||
|
.*/*[.]android.js
|
||||||
|
|
||||||
|
; Ignore "BUCK" generated dirs
|
||||||
|
<PROJECT_ROOT>/\.buckd/
|
||||||
|
|
||||||
|
; Ignore polyfills
|
||||||
|
node_modules/react-native/Libraries/polyfills/.*
|
||||||
|
|
||||||
|
; Flow doesn't support platforms
|
||||||
|
.*/Libraries/Utilities/LoadingView.js
|
||||||
|
|
||||||
|
[untyped]
|
||||||
|
.*/node_modules/@react-native-community/cli/.*/.*
|
||||||
|
|
||||||
|
[include]
|
||||||
|
|
||||||
|
[libs]
|
||||||
|
node_modules/react-native/interface.js
|
||||||
|
node_modules/react-native/flow/
|
||||||
|
|
||||||
|
[options]
|
||||||
|
emoji=true
|
||||||
|
|
||||||
|
exact_by_default=true
|
||||||
|
|
||||||
|
format.bracket_spacing=false
|
||||||
|
|
||||||
|
module.file_ext=.js
|
||||||
|
module.file_ext=.json
|
||||||
|
module.file_ext=.ios.js
|
||||||
|
|
||||||
|
munge_underscores=true
|
||||||
|
|
||||||
|
module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1'
|
||||||
|
module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub'
|
||||||
|
|
||||||
|
suppress_type=$FlowIssue
|
||||||
|
suppress_type=$FlowFixMe
|
||||||
|
suppress_type=$FlowFixMeProps
|
||||||
|
suppress_type=$FlowFixMeState
|
||||||
|
|
||||||
|
[lints]
|
||||||
|
sketchy-null-number=warn
|
||||||
|
sketchy-null-mixed=warn
|
||||||
|
sketchy-number=warn
|
||||||
|
untyped-type-import=warn
|
||||||
|
nonstrict-import=warn
|
||||||
|
deprecated-type=warn
|
||||||
|
unsafe-getters-setters=warn
|
||||||
|
unnecessary-invariant=warn
|
||||||
|
signature-verification-failure=warn
|
||||||
|
|
||||||
|
[strict]
|
||||||
|
deprecated-type
|
||||||
|
nonstrict-import
|
||||||
|
sketchy-null
|
||||||
|
unclear-type
|
||||||
|
unsafe-getters-setters
|
||||||
|
untyped-import
|
||||||
|
untyped-type-import
|
||||||
|
|
||||||
|
[version]
|
||||||
|
^0.158.0
|
|
@ -0,0 +1 @@
|
||||||
|
*.pbxproj -text
|
|
@ -0,0 +1,59 @@
|
||||||
|
# OSX
|
||||||
|
#
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# Xcode
|
||||||
|
#
|
||||||
|
build/
|
||||||
|
*.pbxuser
|
||||||
|
!default.pbxuser
|
||||||
|
*.mode1v3
|
||||||
|
!default.mode1v3
|
||||||
|
*.mode2v3
|
||||||
|
!default.mode2v3
|
||||||
|
*.perspectivev3
|
||||||
|
!default.perspectivev3
|
||||||
|
xcuserdata
|
||||||
|
*.xccheckout
|
||||||
|
*.moved-aside
|
||||||
|
DerivedData
|
||||||
|
*.hmap
|
||||||
|
*.ipa
|
||||||
|
*.xcuserstate
|
||||||
|
|
||||||
|
# Android/IntelliJ
|
||||||
|
#
|
||||||
|
build/
|
||||||
|
.idea
|
||||||
|
.gradle
|
||||||
|
local.properties
|
||||||
|
*.iml
|
||||||
|
|
||||||
|
# node.js
|
||||||
|
#
|
||||||
|
node_modules/
|
||||||
|
npm-debug.log
|
||||||
|
yarn-error.log
|
||||||
|
|
||||||
|
# BUCK
|
||||||
|
buck-out/
|
||||||
|
\.buckd/
|
||||||
|
*.keystore
|
||||||
|
!debug.keystore
|
||||||
|
|
||||||
|
# fastlane
|
||||||
|
#
|
||||||
|
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
|
||||||
|
# screenshots whenever they are needed.
|
||||||
|
# For more information about the recommended setup visit:
|
||||||
|
# https://docs.fastlane.tools/best-practices/source-control/
|
||||||
|
|
||||||
|
*/fastlane/report.xml
|
||||||
|
*/fastlane/Preview.html
|
||||||
|
*/fastlane/screenshots
|
||||||
|
|
||||||
|
# Bundle artifact
|
||||||
|
*.jsbundle
|
||||||
|
|
||||||
|
# CocoaPods
|
||||||
|
/ios/Pods/
|
|
@ -0,0 +1,6 @@
|
||||||
|
module.exports = {
|
||||||
|
bracketSpacing: false,
|
||||||
|
jsxBracketSameLine: true,
|
||||||
|
singleQuote: true,
|
||||||
|
trailingComma: 'all',
|
||||||
|
};
|
|
@ -0,0 +1 @@
|
||||||
|
{}
|
|
@ -0,0 +1,162 @@
|
||||||
|
/**
|
||||||
|
* Sample React Native App
|
||||||
|
* https://github.com/facebook/react-native
|
||||||
|
*
|
||||||
|
* @format
|
||||||
|
* @flow strict-local
|
||||||
|
*/
|
||||||
|
|
||||||
|
import React, { useEffect } from 'react';
|
||||||
|
import moment from 'moment';
|
||||||
|
import messaging from '@react-native-firebase/messaging';
|
||||||
|
import AsyncStorage from '@react-native-community/async-storage';
|
||||||
|
import { StyleSheet, ScrollView, View, Text, StatusBar } from 'react-native';
|
||||||
|
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
||||||
|
import { colors } from './src/assets/styles/colors-theme';
|
||||||
|
import Router from './router';
|
||||||
|
import { Provider } from 'mobx-react';
|
||||||
|
import { ModalPortal } from 'react-native-modals';
|
||||||
|
import Store from './src/stores/index';
|
||||||
|
import { NavigationContainer, useFocusEffect } from '@react-navigation/native';
|
||||||
|
import { createStackNavigator, HeaderBackButton } from '@react-navigation/stack';
|
||||||
|
import { createMaterialBottomTabNavigator } from '@react-navigation/material-bottom-tabs';
|
||||||
|
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
|
||||||
|
import {
|
||||||
|
Header,
|
||||||
|
LearnMoreLinks,
|
||||||
|
Colors,
|
||||||
|
DebugInstructions,
|
||||||
|
ReloadInstructions,
|
||||||
|
} from 'react-native/Libraries/NewAppScreen';
|
||||||
|
import Icon from 'react-native-vector-icons/dist/MaterialCommunityIcons';
|
||||||
|
import SplashScreen from './src/pages/splash/splashScreen';
|
||||||
|
import Main from './src/pages/main/main';
|
||||||
|
import buyHistory from './src/pages/buyHistory/buyHistory';
|
||||||
|
import Favorite from './src/pages/favorite/favorite';
|
||||||
|
import Profile from './src/pages/profile/profile';
|
||||||
|
import BuyHistory from './src/pages/buyHistory/buyHistory';
|
||||||
|
|
||||||
|
Icon.loadFont();
|
||||||
|
console.disableYellowBox = true;
|
||||||
|
const Stack = createStackNavigator();
|
||||||
|
const BottomTab = createBottomTabNavigator();
|
||||||
|
const BottomTabScreen = () => (
|
||||||
|
<BottomTab.Navigator
|
||||||
|
screenOptions={({ route }) => ({
|
||||||
|
tabBarIcon: ({ focused, color, size }) => {
|
||||||
|
let iconName;
|
||||||
|
switch (route.name) {
|
||||||
|
case 'Main':
|
||||||
|
iconName = 'home-variant';
|
||||||
|
break;
|
||||||
|
case 'BuyHistory':
|
||||||
|
iconName = 'cart';
|
||||||
|
break;
|
||||||
|
case 'Favorite':
|
||||||
|
iconName = 'heart';
|
||||||
|
break;
|
||||||
|
case 'Profile':
|
||||||
|
iconName = 'account-circle';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<Icon
|
||||||
|
name={iconName}
|
||||||
|
size={size}
|
||||||
|
color={color}
|
||||||
|
style={{ marginTop: 5 }}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
},
|
||||||
|
})}
|
||||||
|
tabBarOptions={{
|
||||||
|
activeTintColor: 'tomato',
|
||||||
|
inactiveTintColor: 'gray',
|
||||||
|
}}>
|
||||||
|
<Stack.Screen
|
||||||
|
name="Main"
|
||||||
|
component={Main}
|
||||||
|
options={{ tabBarLabel: '主頁' }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="Favorite"
|
||||||
|
component={Favorite}
|
||||||
|
options={{ tabBarLabel: '我的清單' }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="BuyHistory"
|
||||||
|
component={BuyHistory}
|
||||||
|
options={{ tabBarLabel: '購買記錄' }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="Profile"
|
||||||
|
component={Profile}
|
||||||
|
options={{ tabBarLabel: '賬號/設定' }}
|
||||||
|
/>
|
||||||
|
</BottomTab.Navigator>
|
||||||
|
);
|
||||||
|
const App: () => React$Node = () => {
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Provider {...Store}>
|
||||||
|
|
||||||
|
<SafeAreaProvider>
|
||||||
|
<StatusBar
|
||||||
|
animated={true}
|
||||||
|
barStyle={'default'}
|
||||||
|
backgroundColor={'white'}
|
||||||
|
translucent={true}
|
||||||
|
/>
|
||||||
|
<NavigationContainer
|
||||||
|
onStateChange={state => Store.appStore.setRouterState(state)}
|
||||||
|
ref={navigatorRef => Store.appStore.setRouterRef(navigatorRef)}>
|
||||||
|
<Router />
|
||||||
|
</NavigationContainer>
|
||||||
|
<ModalPortal />
|
||||||
|
</SafeAreaProvider>
|
||||||
|
</Provider>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
scrollView: {
|
||||||
|
backgroundColor: Colors.lighter,
|
||||||
|
},
|
||||||
|
engine: {
|
||||||
|
position: 'absolute',
|
||||||
|
right: 0,
|
||||||
|
},
|
||||||
|
body: {
|
||||||
|
backgroundColor: colors.bgc,
|
||||||
|
},
|
||||||
|
sectionContainer: {
|
||||||
|
marginTop: 32,
|
||||||
|
paddingHorizontal: 24,
|
||||||
|
},
|
||||||
|
sectionTitle: {
|
||||||
|
fontSize: 24,
|
||||||
|
fontWeight: '600',
|
||||||
|
color: Colors.black,
|
||||||
|
},
|
||||||
|
sectionDescription: {
|
||||||
|
marginTop: 8,
|
||||||
|
fontSize: 18,
|
||||||
|
fontWeight: '400',
|
||||||
|
color: Colors.dark,
|
||||||
|
},
|
||||||
|
highlight: {
|
||||||
|
fontWeight: '700',
|
||||||
|
},
|
||||||
|
footer: {
|
||||||
|
color: Colors.dark,
|
||||||
|
fontSize: 12,
|
||||||
|
fontWeight: '600',
|
||||||
|
padding: 4,
|
||||||
|
paddingRight: 12,
|
||||||
|
textAlign: 'right',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default App;
|
|
@ -0,0 +1,170 @@
|
||||||
|
import React from 'react';
|
||||||
|
import {
|
||||||
|
SafeAreaView,
|
||||||
|
Text,
|
||||||
|
View,
|
||||||
|
TouchableOpacity,
|
||||||
|
Image,
|
||||||
|
TextInput,
|
||||||
|
Keyboard,
|
||||||
|
} from 'react-native';
|
||||||
|
import { inject, observer } from 'mobx-react';
|
||||||
|
import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';
|
||||||
|
import Toast, { DURATION } from 'react-native-easy-toast';
|
||||||
|
import Icon from 'react-native-vector-icons/dist/MaterialCommunityIcons';
|
||||||
|
import { observable } from 'mobx';
|
||||||
|
import { colors } from './src/assets/styles/colors-theme';
|
||||||
|
import { s, vs, ms } from 'react-native-size-matters';
|
||||||
|
import DeviceInfo from 'react-native-device-info';
|
||||||
|
Icon.loadFont();
|
||||||
|
@inject('appStore')
|
||||||
|
@observer
|
||||||
|
export default class MyTabBar extends React.Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.store = props.appStore;
|
||||||
|
}
|
||||||
|
|
||||||
|
langLabelReturn(label) {
|
||||||
|
switch (label) {
|
||||||
|
case 'main':
|
||||||
|
return this.store.text.main;
|
||||||
|
break;
|
||||||
|
case 'myfavourite':
|
||||||
|
return this.store.text.myfavourite;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'ShoppingCart':
|
||||||
|
return this.store.text.shoppingcart;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'shoppingHistory':
|
||||||
|
return this.store.text.shoppingHistory;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'acAndSetting':
|
||||||
|
return this.store.text.acAndSetting;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
var { state, descriptors, navigation, logined } = this.props;
|
||||||
|
return (
|
||||||
|
<View style={{ flexDirection: 'row', backgroundColor: 'white' }}>
|
||||||
|
{state.routes.map((route, index) => {
|
||||||
|
const { options } = descriptors[route.key];
|
||||||
|
const label =
|
||||||
|
options.tabBarLabel !== undefined
|
||||||
|
? options.tabBarLabel
|
||||||
|
: options.title !== undefined
|
||||||
|
? options.title
|
||||||
|
: route.name;
|
||||||
|
let iconName;
|
||||||
|
switch (route.name) {
|
||||||
|
case 'Main':
|
||||||
|
iconName = 'home-outline';
|
||||||
|
break;
|
||||||
|
case 'BuyHistory':
|
||||||
|
iconName = 'history';
|
||||||
|
break;
|
||||||
|
case 'ShoppingCart':
|
||||||
|
iconName = 'shopping-outline';
|
||||||
|
break;
|
||||||
|
case 'Favorite':
|
||||||
|
iconName = 'heart-outline';
|
||||||
|
break;
|
||||||
|
case 'Profile':
|
||||||
|
iconName = 'account-outline';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
const isFocused = state.index === index;
|
||||||
|
|
||||||
|
const onPress = () => {
|
||||||
|
const event = navigation.emit({
|
||||||
|
type: 'tabPress',
|
||||||
|
target: route.key,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!isFocused && !event.defaultPrevented) {
|
||||||
|
this.store.catalogueSelected = null;
|
||||||
|
console.log(route.name);
|
||||||
|
if (route.name == 'Profile' && !this.store.logined) {
|
||||||
|
navigation.navigate('Signin');
|
||||||
|
} else if (route.name == 'Favorite' && !this.store.logined) {
|
||||||
|
navigation.navigate('Signin');
|
||||||
|
} else if (route.name == 'BuyHistory' && !this.store.logined) {
|
||||||
|
navigation.navigate('Signin');
|
||||||
|
} else {
|
||||||
|
navigation.navigate(route.name);
|
||||||
|
}
|
||||||
|
} else if (isFocused && route.name == 'Main') {
|
||||||
|
this.store.catalogueSelected = null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const onLongPress = () => {
|
||||||
|
navigation.emit({
|
||||||
|
type: 'tabLongPress',
|
||||||
|
target: route.key,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<TouchableOpacity
|
||||||
|
accessibilityRole="button"
|
||||||
|
accessibilityStates={isFocused ? ['selected'] : []}
|
||||||
|
accessibilityLabel={options.tabBarAccessibilityLabel}
|
||||||
|
testID={options.tabBarTestID}
|
||||||
|
onPress={onPress}
|
||||||
|
onLongPress={onLongPress}
|
||||||
|
style={{
|
||||||
|
flex: 1,
|
||||||
|
alignItems: 'center',
|
||||||
|
justifyContent: 'center',
|
||||||
|
marginTop: 5,
|
||||||
|
marginBottom: 5,
|
||||||
|
}}>
|
||||||
|
<Icon
|
||||||
|
name={iconName}
|
||||||
|
size={28}
|
||||||
|
color={isFocused ? colors.mainColor : 'black'}
|
||||||
|
/>
|
||||||
|
<Text
|
||||||
|
style={{
|
||||||
|
color: isFocused ? colors.mainColor : 'black',
|
||||||
|
fontSize: 12,
|
||||||
|
}}>
|
||||||
|
{this.langLabelReturn(label)}
|
||||||
|
</Text>
|
||||||
|
{label == 'ShoppingCart' ? (
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
position: 'absolute',
|
||||||
|
|
||||||
|
right: DeviceInfo.isTablet() ? s(30) : s(24),
|
||||||
|
}}>
|
||||||
|
<Icon name="circle" color={colors.mainColor} size={18} />
|
||||||
|
<Text
|
||||||
|
style={{
|
||||||
|
position: 'absolute',
|
||||||
|
top: 4,
|
||||||
|
fontSize: 8,
|
||||||
|
color: 'white',
|
||||||
|
}}>
|
||||||
|
{this.store.shoppingCartList.length}
|
||||||
|
</Text>
|
||||||
|
</View>
|
||||||
|
) : (
|
||||||
|
<View />
|
||||||
|
)}
|
||||||
|
</TouchableOpacity>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,95 @@
|
||||||
|
## Pure Mall
|
||||||
|
|
||||||
|
## Description
|
||||||
|
The mobile application is an online shopping platform that offers various features such as coupons, online payment, notifications, group shopping formation, group shopping discounts, monthly sales targets with shopping incentives, point rewards, and the ability for teams to use their exclusive points to redeem gifts. users can also check the shopping records of other members in their shopping group.
|
||||||
|
|
||||||
|
### Screenshot
|
||||||
|
|
||||||
|
<img src="./src/assets/screenshot/1.png" width="20%" height="20%">
|
||||||
|
<img src="./src/assets/screenshot/2.png" width="20%" height="20%">
|
||||||
|
<img src="./src/assets/screenshot/3.png" width="20%" height="20%">
|
||||||
|
<img src="./src/assets/screenshot/4.png" width="20%" height="20%">
|
||||||
|
<img src="./src/assets/screenshot/5.png" width="20%" height="20%">
|
||||||
|
<img src="./src/assets/screenshot/6.png" width="20%" height="20%">
|
||||||
|
<img src="./src/assets/screenshot/7.png" width="20%" height="20%">
|
||||||
|
<img src="./src/assets/screenshot/banner.png" >
|
||||||
|
|
||||||
|
This is a new [**React Native**](https://reactnative.dev) project, bootstrapped using [`@react-native-community/cli`](https://github.com/react-native-community/cli).
|
||||||
|
|
||||||
|
# Getting Started
|
||||||
|
|
||||||
|
>**Note**: Make sure you have completed the [React Native - Environment Setup](https://reactnative.dev/docs/environment-setup) instructions till "Creating a new application" step, before proceeding.
|
||||||
|
|
||||||
|
## Step 1: Start the Metro Server
|
||||||
|
|
||||||
|
First, you will need to start **Metro**, the JavaScript _bundler_ that ships _with_ React Native.
|
||||||
|
|
||||||
|
To start Metro, run the following command from the _root_ of your React Native project:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# using npm
|
||||||
|
npm start
|
||||||
|
|
||||||
|
# OR using Yarn
|
||||||
|
yarn start
|
||||||
|
```
|
||||||
|
|
||||||
|
## Step 2: Start your Application
|
||||||
|
|
||||||
|
Let Metro Bundler run in its _own_ terminal. Open a _new_ terminal from the _root_ of your React Native project. Run the following command to start your _Android_ or _iOS_ app:
|
||||||
|
|
||||||
|
### For Android
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# using npm
|
||||||
|
npm run android
|
||||||
|
|
||||||
|
# OR using Yarn
|
||||||
|
yarn android
|
||||||
|
```
|
||||||
|
|
||||||
|
### For iOS
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# using npm
|
||||||
|
npm run ios
|
||||||
|
|
||||||
|
# OR using Yarn
|
||||||
|
yarn ios
|
||||||
|
```
|
||||||
|
|
||||||
|
If everything is set up _correctly_, you should see your new app running in your _Android Emulator_ or _iOS Simulator_ shortly provided you have set up your emulator/simulator correctly.
|
||||||
|
|
||||||
|
This is one way to run your app — you can also run it directly from within Android Studio and Xcode respectively.
|
||||||
|
|
||||||
|
## Step 3: Modifying your App
|
||||||
|
|
||||||
|
Now that you have successfully run the app, let's modify it.
|
||||||
|
|
||||||
|
1. Open `App.tsx` in your text editor of choice and edit some lines.
|
||||||
|
2. For **Android**: Press the <kbd>R</kbd> key twice or select **"Reload"** from the **Developer Menu** (<kbd>Ctrl</kbd> + <kbd>M</kbd> (on Window and Linux) or <kbd>Cmd ⌘</kbd> + <kbd>M</kbd> (on macOS)) to see your changes!
|
||||||
|
|
||||||
|
For **iOS**: Hit <kbd>Cmd ⌘</kbd> + <kbd>R</kbd> in your iOS Simulator to reload the app and see your changes!
|
||||||
|
|
||||||
|
## Congratulations! :tada:
|
||||||
|
|
||||||
|
You've successfully run and modified your React Native App. :partying_face:
|
||||||
|
|
||||||
|
### Now what?
|
||||||
|
|
||||||
|
- If you want to add this new React Native code to an existing application, check out the [Integration guide](https://reactnative.dev/docs/integration-with-existing-apps).
|
||||||
|
- If you're curious to learn more about React Native, check out the [Introduction to React Native](https://reactnative.dev/docs/getting-started).
|
||||||
|
|
||||||
|
# Troubleshooting
|
||||||
|
|
||||||
|
If you can't get this to work, see the [Troubleshooting](https://reactnative.dev/docs/troubleshooting) page.
|
||||||
|
|
||||||
|
# Learn More
|
||||||
|
|
||||||
|
To learn more about React Native, take a look at the following resources:
|
||||||
|
|
||||||
|
- [React Native Website](https://reactnative.dev) - learn more about React Native.
|
||||||
|
- [Getting Started](https://reactnative.dev/docs/environment-setup) - an **overview** of React Native and how setup your environment.
|
||||||
|
- [Learn the Basics](https://reactnative.dev/docs/getting-started) - a **guided tour** of the React Native **basics**.
|
||||||
|
- [Blog](https://reactnative.dev/blog) - read the latest official React Native **Blog** posts.
|
||||||
|
- [`@facebook/react-native`](https://github.com/facebook/react-native) - the Open Source; GitHub **repository** for React Native.
|
|
@ -0,0 +1,14 @@
|
||||||
|
/**
|
||||||
|
* @format
|
||||||
|
*/
|
||||||
|
|
||||||
|
import 'react-native';
|
||||||
|
import React from 'react';
|
||||||
|
import App from '../App';
|
||||||
|
|
||||||
|
// Note: test renderer must be required after react-native.
|
||||||
|
import renderer from 'react-test-renderer';
|
||||||
|
|
||||||
|
it('renders correctly', () => {
|
||||||
|
renderer.create(<App />);
|
||||||
|
});
|
|
@ -0,0 +1,3 @@
|
||||||
|
export default {
|
||||||
|
version: '1.0',
|
||||||
|
};
|
|
@ -0,0 +1,8 @@
|
||||||
|
module.exports = {
|
||||||
|
presets: ['module:metro-react-native-babel-preset'],
|
||||||
|
plugins: [
|
||||||
|
['@babel/plugin-transform-flow-strip-types'],
|
||||||
|
['@babel/plugin-proposal-decorators', {legacy: true}],
|
||||||
|
['@babel/plugin-proposal-class-properties', {loose: true}],
|
||||||
|
],
|
||||||
|
};
|
|
@ -0,0 +1,67 @@
|
||||||
|
/**
|
||||||
|
* @format
|
||||||
|
*/
|
||||||
|
import React from 'react';
|
||||||
|
import { AppRegistry, Platform } from 'react-native';
|
||||||
|
import App from './App';
|
||||||
|
import { name as appName } from './app.json';
|
||||||
|
import codePush from 'react-native-code-push';
|
||||||
|
import moment from 'moment';
|
||||||
|
import messaging from '@react-native-firebase/messaging';
|
||||||
|
import AsyncStorage from '@react-native-community/async-storage';
|
||||||
|
var CheckisHeadless = true
|
||||||
|
messaging().setBackgroundMessageHandler(async remoteMessage => {
|
||||||
|
var notificationRecord = {
|
||||||
|
notifications: [],
|
||||||
|
unread: 0,
|
||||||
|
}
|
||||||
|
const data = {
|
||||||
|
id: remoteMessage.messageId,
|
||||||
|
date: moment().valueOf(),
|
||||||
|
title: remoteMessage.notification.title,
|
||||||
|
message: remoteMessage.notification.body,
|
||||||
|
read: false,
|
||||||
|
}
|
||||||
|
console.log(data)
|
||||||
|
try {
|
||||||
|
const jsonValue = await AsyncStorage.getItem('notification')
|
||||||
|
if (jsonValue != null) {
|
||||||
|
notificationRecord = JSON.parse(jsonValue)
|
||||||
|
}
|
||||||
|
console.log(notificationRecord)
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
await notificationRecord.notifications.push(data);
|
||||||
|
notificationRecord.unread += 1;
|
||||||
|
console.log(notificationRecord)
|
||||||
|
try {
|
||||||
|
const saveItem = JSON.stringify(notificationRecord)
|
||||||
|
await AsyncStorage.setItem('notification', saveItem)
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function HeadlessCheck({ isHeadless }) {
|
||||||
|
console.log(isHeadless)
|
||||||
|
if (isHeadless) {
|
||||||
|
// App has been launched in the background by iOS, ignore
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return <App />
|
||||||
|
}
|
||||||
|
// HeadlessCheck()=> {
|
||||||
|
// return codePush(App);
|
||||||
|
// }
|
||||||
|
function RealApp() {
|
||||||
|
return codePush(App);
|
||||||
|
}
|
||||||
|
|
||||||
|
AppRegistry.registerComponent(appName, () => RealApp());
|
|
@ -0,0 +1,17 @@
|
||||||
|
/**
|
||||||
|
* Metro configuration for React Native
|
||||||
|
* https://github.com/facebook/react-native
|
||||||
|
*
|
||||||
|
* @format
|
||||||
|
*/
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
transformer: {
|
||||||
|
getTransformOptions: async () => ({
|
||||||
|
transform: {
|
||||||
|
experimentalImportSupport: false,
|
||||||
|
inlineRequires: false,
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
};
|
|
@ -0,0 +1,17 @@
|
||||||
|
/**
|
||||||
|
* Metro configuration for React Native
|
||||||
|
* https://github.com/facebook/react-native
|
||||||
|
*
|
||||||
|
* @format
|
||||||
|
*/
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
transformer: {
|
||||||
|
getTransformOptions: async () => ({
|
||||||
|
transform: {
|
||||||
|
experimentalImportSupport: false,
|
||||||
|
inlineRequires: false,
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
};
|
|
@ -0,0 +1,95 @@
|
||||||
|
{
|
||||||
|
"name": "puremall",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"private": true,
|
||||||
|
"scripts": {
|
||||||
|
"android": "react-native run-android",
|
||||||
|
"ios": "react-native run-ios",
|
||||||
|
"start": "react-native start",
|
||||||
|
"test": "jest",
|
||||||
|
"lint": "eslint ."
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/plugin-proposal-decorators": "^7.12.1",
|
||||||
|
"@invertase/react-native-apple-authentication": "^2.1.2",
|
||||||
|
"@react-native-community/async-storage": "^1.12.1",
|
||||||
|
"@react-native-community/datetimepicker": "^3.5.2",
|
||||||
|
"@react-native-community/masked-view": "^0.1.10",
|
||||||
|
"@react-native-firebase/app": "^11.2.0",
|
||||||
|
"@react-native-firebase/messaging": "^11.2.0",
|
||||||
|
"@react-native-google-signin/google-signin": "^8.1.0",
|
||||||
|
"@react-navigation/bottom-tabs": "^5.11.2",
|
||||||
|
"@react-navigation/material-bottom-tabs": "^5.3.10",
|
||||||
|
"@react-navigation/native": "^5.8.10",
|
||||||
|
"@react-navigation/stack": "^5.12.8",
|
||||||
|
"axios": "^0.21.0",
|
||||||
|
"babel-plugin-transform-decorators-legacy": "^1.3.5",
|
||||||
|
"buffer": "^6.0.3",
|
||||||
|
"date-time-format-timezone": "^1.0.22",
|
||||||
|
"lodash": "^4.17.20",
|
||||||
|
"lottie-ios": "^3.2.3",
|
||||||
|
"lottie-react-native": "^4.0.3",
|
||||||
|
"mobx": "^5.15.4",
|
||||||
|
"mobx-react": "^6.2.2",
|
||||||
|
"moment": "^2.29.1",
|
||||||
|
"qs": "^6.9.4",
|
||||||
|
"query-string": "^6.13.7",
|
||||||
|
"react": "16.13.1",
|
||||||
|
"react-native": "0.63.4",
|
||||||
|
"react-native-app-intro-slider": "^4.0.4",
|
||||||
|
"react-native-base64": "^0.1.0",
|
||||||
|
"react-native-circular-progress": "^1.3.7",
|
||||||
|
"react-native-code-push": "^7.0.1",
|
||||||
|
"react-native-confirmation-code-field": "^6.5.1",
|
||||||
|
"react-native-countdown-component": "^2.7.1",
|
||||||
|
"react-native-credit-card-input": "^0.4.1",
|
||||||
|
"react-native-date-picker": "^4.1.1",
|
||||||
|
"react-native-device-info": "^8.4.8",
|
||||||
|
"react-native-dialog": "^8.2.0",
|
||||||
|
"react-native-easy-toast": "^1.2.0",
|
||||||
|
"react-native-elements": "^3.4.2",
|
||||||
|
"react-native-fast-image": "^8.3.4",
|
||||||
|
"react-native-gallery-swiper": "^1.26.4",
|
||||||
|
"react-native-general-statusbar": "^1.0.1",
|
||||||
|
"react-native-gesture-handler": "^1.10.3",
|
||||||
|
"react-native-htmlview": "^0.16.0",
|
||||||
|
"react-native-image-picker": "^3.2.1",
|
||||||
|
"react-native-image-viewing": "^0.2.0",
|
||||||
|
"react-native-keyboard-aware-scroll-view": "^0.9.3",
|
||||||
|
"react-native-loading-spinner-overlay": "^2.0.0",
|
||||||
|
"react-native-modal": "^12.0.2",
|
||||||
|
"react-native-modal-datetime-picker": "^10.2.0",
|
||||||
|
"react-native-modalize": "^2.0.8",
|
||||||
|
"react-native-modals": "^0.22.3",
|
||||||
|
"react-native-paper": "^4.4.1",
|
||||||
|
"react-native-popup-menu": "^0.15.9",
|
||||||
|
"react-native-progress": "^4.1.2",
|
||||||
|
"react-native-reanimated": "^1.13.2",
|
||||||
|
"react-native-safe-area-context": "^3.1.9",
|
||||||
|
"react-native-safe-area-view": "^1.1.1",
|
||||||
|
"react-native-screens": "^2.15.0",
|
||||||
|
"react-native-size-matters": "^0.3.1",
|
||||||
|
"react-native-status-bar-height": "^2.6.0",
|
||||||
|
"react-native-svg": "^12.1.1",
|
||||||
|
"react-native-swiper": "^1.6.0",
|
||||||
|
"react-native-switch-pro": "^1.0.5",
|
||||||
|
"react-native-tab-view": "^2.15.2",
|
||||||
|
"react-native-textinput-effects": "^0.6.1",
|
||||||
|
"react-native-uuid": "^1.4.9",
|
||||||
|
"react-native-vector-icons": "^7.1.0",
|
||||||
|
"underscore": "^1.12.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@babel/core": "^7.8.4",
|
||||||
|
"@babel/runtime": "^7.8.4",
|
||||||
|
"@react-native-community/eslint-config": "^1.1.0",
|
||||||
|
"babel-jest": "^25.1.0",
|
||||||
|
"eslint": "^6.5.1",
|
||||||
|
"jest": "^25.1.0",
|
||||||
|
"metro-react-native-babel-preset": "^0.59.0",
|
||||||
|
"react-test-renderer": "16.13.1"
|
||||||
|
},
|
||||||
|
"jest": {
|
||||||
|
"preset": "react-native"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,336 @@
|
||||||
|
/**
|
||||||
|
* Sample React Native App
|
||||||
|
* https://github.com/facebook/react-native
|
||||||
|
*
|
||||||
|
* @format
|
||||||
|
* @flow strict-local
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
import React, { useEffect } from 'react';
|
||||||
|
import messaging from '@react-native-firebase/messaging';
|
||||||
|
import { colors } from './src/assets/styles/colors-theme';
|
||||||
|
import {
|
||||||
|
StyleSheet,
|
||||||
|
ScrollView,
|
||||||
|
View,
|
||||||
|
Text,
|
||||||
|
StatusBar,
|
||||||
|
TouchableOpacity,
|
||||||
|
} from 'react-native';
|
||||||
|
import SafeAreaView from 'react-native-safe-area-view';
|
||||||
|
import { Provider } from 'mobx-react';
|
||||||
|
import Store from './src/stores/index';
|
||||||
|
import { NavigationContainer, useFocusEffect } from '@react-navigation/native';
|
||||||
|
import { createStackNavigator, HeaderBackButton } from '@react-navigation/stack';
|
||||||
|
import { createMaterialBottomTabNavigator } from '@react-navigation/material-bottom-tabs';
|
||||||
|
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
|
||||||
|
import {
|
||||||
|
Header,
|
||||||
|
LearnMoreLinks,
|
||||||
|
Colors,
|
||||||
|
DebugInstructions,
|
||||||
|
ReloadInstructions,
|
||||||
|
} from 'react-native/Libraries/NewAppScreen';
|
||||||
|
import Icon from 'react-native-vector-icons/dist/MaterialCommunityIcons';
|
||||||
|
import SplashScreen from './src/pages/splash/splashScreen';
|
||||||
|
import Main from './src/pages/main/main';
|
||||||
|
import Search from './src/pages/search/search';
|
||||||
|
import Favorite from './src/pages/favorite/favorite';
|
||||||
|
import MyTabBar from './MyTabBar';
|
||||||
|
import Order from './src/pages/order/order';
|
||||||
|
import Profile from './src/pages/profile/profile';
|
||||||
|
import Setting from './src/pages/profile/Setting';
|
||||||
|
import AddName from './src/pages/profile/addName';
|
||||||
|
import CreditCard from './src/pages/profile/creditCard';
|
||||||
|
import AddressSetting from './src/pages/profile/addressSetting';
|
||||||
|
import BuyHistory from './src/pages/buyHistory/buyHistory';
|
||||||
|
import HistoryDetails from './src/pages/buyHistory/historyDetails';
|
||||||
|
import ProductsDetails from './src/pages/productsDetails/productsDetails';
|
||||||
|
import ShoppingCart from './src/pages/shoppingCart/shoppingCart';
|
||||||
|
import Signin from './src/pages/signin/signin';
|
||||||
|
import Signup from './src/pages/signup/signup';
|
||||||
|
import News from './src/pages/news/news';
|
||||||
|
import SignUpVerify from './src/pages/signup/signUpVerify';
|
||||||
|
import ForgotPassword from './src/pages/signup/forgotPassword';
|
||||||
|
import GroupDetails from './src/pages/group/groupDetails';
|
||||||
|
import RedeemGifts from './src/pages/group/redeemGifts';
|
||||||
|
import ManageMembers from './src/pages/group/manageMembers';
|
||||||
|
import SalesRecord from './src/pages/group/salesRecord';
|
||||||
|
import GroupList from './src/pages/group/groupList';
|
||||||
|
import RedeemRecord from './src/pages/profile/redeemRecord'
|
||||||
|
import FullScreen from './src/pages/fullScreen/fullScreen'
|
||||||
|
import Notification from './src/pages/notificaation/notification'
|
||||||
|
import Tutorial from './src/pages/tutorial/tutorial'
|
||||||
|
Icon.loadFont();
|
||||||
|
|
||||||
|
const Stack = createStackNavigator();
|
||||||
|
const BottomTab = createBottomTabNavigator();
|
||||||
|
|
||||||
|
import { inject, observer } from 'mobx-react';
|
||||||
|
|
||||||
|
@inject('appStore')
|
||||||
|
@observer
|
||||||
|
class Router extends React.Component {
|
||||||
|
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.store = props.appStore;
|
||||||
|
// this.handleFrontNotification = this.handleFrontNotification.bind(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
handleFrontNotification() {
|
||||||
|
const unsubscribe = messaging().onMessage(async remoteMessage => {
|
||||||
|
console.log('A new FCM message arrived!', JSON.stringify(remoteMessage));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async componentDidMount() {
|
||||||
|
this.messageListener = messaging().onMessage(async message => this.store.saveNotification(message))
|
||||||
|
}
|
||||||
|
|
||||||
|
componentWillUnmount() {
|
||||||
|
this.messageListener();
|
||||||
|
}
|
||||||
|
BottomTabScreen = () => {
|
||||||
|
return (
|
||||||
|
<BottomTab.Navigator
|
||||||
|
tabBar={props => <MyTabBar {...props} logined={this.store.logined} />}>
|
||||||
|
<Stack.Screen
|
||||||
|
name="Main"
|
||||||
|
component={Main}
|
||||||
|
options={{ tabBarLabel: 'main' }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="BuyHistory"
|
||||||
|
component={BuyHistory}
|
||||||
|
options={{ tabBarLabel: 'shoppingHistory' }}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Stack.Screen
|
||||||
|
name="ShoppingCart"
|
||||||
|
component={ShoppingCart}
|
||||||
|
options={{ tabBarLabel: 'ShoppingCart' }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="Favorite"
|
||||||
|
component={Favorite}
|
||||||
|
options={{ tabBarLabel: 'myfavourite' }}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Stack.Screen
|
||||||
|
name="Profile"
|
||||||
|
component={Profile}
|
||||||
|
options={{ tabBarLabel: 'acAndSetting' }}
|
||||||
|
/>
|
||||||
|
</BottomTab.Navigator>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<SafeAreaView style={{ flex: 1,backgroundColor:'white' }}>
|
||||||
|
<Stack.Navigator initialRouteName="SplashScreen">
|
||||||
|
{!this.store.splash ? (
|
||||||
|
<>
|
||||||
|
<Stack.Screen
|
||||||
|
name="SplashScreen"
|
||||||
|
component={SplashScreen}
|
||||||
|
options={{ headerShown: false }}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
|
<>
|
||||||
|
<Stack.Screen
|
||||||
|
name="BottomTabScreen"
|
||||||
|
component={this.BottomTabScreen}
|
||||||
|
options={{ headerShown: false }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="ProductsDetails"
|
||||||
|
component={ProductsDetails}
|
||||||
|
options={{ headerShown: false }}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Stack.Screen
|
||||||
|
name="Signin"
|
||||||
|
component={Signin}
|
||||||
|
options={{ headerShown: false }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="Signup"
|
||||||
|
component={Signup}
|
||||||
|
options={{ headerShown: false }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="SignUpVerify"
|
||||||
|
component={SignUpVerify}
|
||||||
|
options={{ headerShown: false }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="AddName"
|
||||||
|
component={AddName}
|
||||||
|
options={{ headerShown: false }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="ForgotPassword"
|
||||||
|
component={ForgotPassword}
|
||||||
|
options={{ headerShown: false }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="ShoppingCart"
|
||||||
|
component={ShoppingCart}
|
||||||
|
options={{ headerShown: false }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="Order"
|
||||||
|
component={Order}
|
||||||
|
options={{ headerShown: false }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="News"
|
||||||
|
component={News}
|
||||||
|
options={{ headerShown: false }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="HistoryDetails"
|
||||||
|
component={HistoryDetails}
|
||||||
|
options={{ headerShown: false }}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Stack.Screen
|
||||||
|
name="CreditCard"
|
||||||
|
component={CreditCard}
|
||||||
|
options={{ headerShown: false }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="AddressSetting"
|
||||||
|
component={AddressSetting}
|
||||||
|
options={{ headerShown: false }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="Setting"
|
||||||
|
component={Setting}
|
||||||
|
options={{ headerShown: false }}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="Search"
|
||||||
|
component={Search}
|
||||||
|
options={{
|
||||||
|
headerShown: false,
|
||||||
|
// animationEnabled: false,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="GroupDetails"
|
||||||
|
component={GroupDetails}
|
||||||
|
options={{
|
||||||
|
headerShown: false,
|
||||||
|
// animationEnabled: false,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="GroupList"
|
||||||
|
component={GroupList}
|
||||||
|
options={{
|
||||||
|
headerShown: false,
|
||||||
|
// animationEnabled: false,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="RedeemGifts"
|
||||||
|
component={RedeemGifts}
|
||||||
|
options={{
|
||||||
|
headerShown: false,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="ManageMembers"
|
||||||
|
component={ManageMembers}
|
||||||
|
options={{
|
||||||
|
headerShown: false,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="SalesRecord"
|
||||||
|
component={SalesRecord}
|
||||||
|
options={{
|
||||||
|
headerShown: false,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="RedeemRecord"
|
||||||
|
component={RedeemRecord}
|
||||||
|
options={{
|
||||||
|
headerShown: false,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="FullScreen"
|
||||||
|
component={FullScreen}
|
||||||
|
options={{
|
||||||
|
headerShown: false,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="Notification"
|
||||||
|
component={Notification}
|
||||||
|
options={{
|
||||||
|
headerShown: false,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name="Tutorial"
|
||||||
|
component={Tutorial}
|
||||||
|
options={{
|
||||||
|
headerShown: false,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</Stack.Navigator>
|
||||||
|
</SafeAreaView>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
scrollView: {
|
||||||
|
backgroundColor: Colors.lighter,
|
||||||
|
},
|
||||||
|
engine: {
|
||||||
|
position: 'absolute',
|
||||||
|
right: 0,
|
||||||
|
},
|
||||||
|
body: {
|
||||||
|
backgroundColor: Colors.white,
|
||||||
|
},
|
||||||
|
sectionContainer: {
|
||||||
|
marginTop: 32,
|
||||||
|
paddingHorizontal: 24,
|
||||||
|
},
|
||||||
|
sectionTitle: {
|
||||||
|
fontSize: 24,
|
||||||
|
fontWeight: '600',
|
||||||
|
color: Colors.black,
|
||||||
|
},
|
||||||
|
sectionDescription: {
|
||||||
|
marginTop: 8,
|
||||||
|
fontSize: 18,
|
||||||
|
fontWeight: '400',
|
||||||
|
color: Colors.dark,
|
||||||
|
},
|
||||||
|
highlight: {
|
||||||
|
fontWeight: '700',
|
||||||
|
},
|
||||||
|
footer: {
|
||||||
|
color: Colors.dark,
|
||||||
|
fontSize: 12,
|
||||||
|
fontWeight: '600',
|
||||||
|
padding: 4,
|
||||||
|
paddingRight: 12,
|
||||||
|
textAlign: 'right',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default Router;
|
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1 @@
|
||||||
|
F81D0BFFE116347EE09EF84A5EF84824DB8EE17AD9FF86FB240BFDFEA61EF0FD comodoca.com 5fd97c3b2d29c
|
After Width: | Height: | Size: 6.6 MiB |
After Width: | Height: | Size: 9.4 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 601 B |
After Width: | Height: | Size: 783 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 7.7 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 36 KiB |
|
@ -0,0 +1,48 @@
|
||||||
|
export const images = {
|
||||||
|
productCatalogue: {
|
||||||
|
alcoholic: require('./Alcoholic.png'),
|
||||||
|
frozenmeat: require('./Frozenmeat.png'),
|
||||||
|
drink: require('./drink.png'),
|
||||||
|
frozenfood: require('./frozenfood.png'),
|
||||||
|
fruit: require('./fruit.png'),
|
||||||
|
pasta: require('./pasta.png'),
|
||||||
|
seafood: require('./seafood.png'),
|
||||||
|
sneck: require('./sneck.png'),
|
||||||
|
vegetables: require('./vegetables.png'),
|
||||||
|
},
|
||||||
|
main: {
|
||||||
|
mostcheapstar: require('./mostcheapstar.png'),
|
||||||
|
ranking: require('./ranking.png'),
|
||||||
|
whiteStar: require('./whitestar.png'),
|
||||||
|
yellowStar: require('./yellowstar.png'),
|
||||||
|
goldenApple: require('./goldenApple.png'),
|
||||||
|
youmaylike: require('./youmaylike.png'),
|
||||||
|
template: require('./template.png'),
|
||||||
|
foodcat: require('./foodcat.png'),
|
||||||
|
},
|
||||||
|
details: {
|
||||||
|
share: require('./share.png'),
|
||||||
|
favourite: require('./favourite.png'),
|
||||||
|
comment: require('./comment.png'),
|
||||||
|
},
|
||||||
|
signIn: {
|
||||||
|
illustration: require('./illustration.png'),
|
||||||
|
facebook: require('./facebook.png'),
|
||||||
|
google: require('./google.png'),
|
||||||
|
bitMap: require('./Bitmap.png'),
|
||||||
|
logo: require('./logo.png'),
|
||||||
|
},
|
||||||
|
profile: {
|
||||||
|
creditCardIcon: require('./creditcardicon.png'),
|
||||||
|
profileShare: require('./profileshare.png'),
|
||||||
|
},
|
||||||
|
search: {
|
||||||
|
greenMagnifier: require('./Icon_Magnifier.png'),
|
||||||
|
smallGreenMagnifier: require('./Icon_Magnifier_Small.png'),
|
||||||
|
},
|
||||||
|
tutorial:{
|
||||||
|
tut1:require('./tut1.png'),
|
||||||
|
tut2:require('./tut2.png'),
|
||||||
|
tut3:require('./tut3.png'),
|
||||||
|
}
|
||||||
|
};
|
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 742 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 1.5 MiB |
After Width: | Height: | Size: 583 KiB |
After Width: | Height: | Size: 910 KiB |
After Width: | Height: | Size: 695 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 16 KiB |
|
@ -0,0 +1,981 @@
|
||||||
|
{
|
||||||
|
"v": "4.10.1",
|
||||||
|
"fr": 30,
|
||||||
|
"ip": 0,
|
||||||
|
"op": 40,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80,
|
||||||
|
"nm": "Success Checkmark",
|
||||||
|
"ddd": 0,
|
||||||
|
"assets": [],
|
||||||
|
"layers": [
|
||||||
|
{
|
||||||
|
"ddd": 0,
|
||||||
|
"ind": 1,
|
||||||
|
"ty": 4,
|
||||||
|
"nm": "Check Mark",
|
||||||
|
"sr": 1,
|
||||||
|
"ks": {
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 11
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 10
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
40,
|
||||||
|
40,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
-1.312,
|
||||||
|
6,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 1
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"ix": 6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ao": 0,
|
||||||
|
"shapes": [
|
||||||
|
{
|
||||||
|
"ty": "gr",
|
||||||
|
"it": [
|
||||||
|
{
|
||||||
|
"ind": 0,
|
||||||
|
"ty": "sh",
|
||||||
|
"ix": 1,
|
||||||
|
"ks": {
|
||||||
|
"a": 0,
|
||||||
|
"k": {
|
||||||
|
"i": [
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"o": [
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"v": [
|
||||||
|
[
|
||||||
|
-15.75,
|
||||||
|
8
|
||||||
|
],
|
||||||
|
[
|
||||||
|
-8,
|
||||||
|
16
|
||||||
|
],
|
||||||
|
[
|
||||||
|
13.125,
|
||||||
|
-4
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"c": false
|
||||||
|
},
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"nm": "Path 1",
|
||||||
|
"mn": "ADBE Vector Shape - Group",
|
||||||
|
"hd": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "tm",
|
||||||
|
"s": {
|
||||||
|
"a": 1,
|
||||||
|
"k": [
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": [
|
||||||
|
0.667
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
1
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": [
|
||||||
|
0.333
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"n": [
|
||||||
|
"0p667_1_0p333_0"
|
||||||
|
],
|
||||||
|
"t": 25,
|
||||||
|
"s": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
100
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"t": 33
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ix": 1
|
||||||
|
},
|
||||||
|
"e": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 3
|
||||||
|
},
|
||||||
|
"m": 1,
|
||||||
|
"ix": 2,
|
||||||
|
"nm": "Trim Paths 1",
|
||||||
|
"mn": "ADBE Vector Filter - Trim",
|
||||||
|
"hd": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "st",
|
||||||
|
"c": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"ix": 3
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 4
|
||||||
|
},
|
||||||
|
"w": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 3,
|
||||||
|
"ix": 5
|
||||||
|
},
|
||||||
|
"lc": 2,
|
||||||
|
"lj": 2,
|
||||||
|
"nm": "Stroke 1",
|
||||||
|
"mn": "ADBE Vector Graphic - Stroke",
|
||||||
|
"hd": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "tr",
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 1
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"ix": 3
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 6
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 7
|
||||||
|
},
|
||||||
|
"sk": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 4
|
||||||
|
},
|
||||||
|
"sa": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 5
|
||||||
|
},
|
||||||
|
"nm": "Transform"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nm": "Shape 1",
|
||||||
|
"np": 3,
|
||||||
|
"cix": 2,
|
||||||
|
"ix": 1,
|
||||||
|
"mn": "ADBE Vector Group",
|
||||||
|
"hd": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ip": 0,
|
||||||
|
"op": 40,
|
||||||
|
"st": 0,
|
||||||
|
"bm": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ddd": 0,
|
||||||
|
"ind": 2,
|
||||||
|
"ty": 4,
|
||||||
|
"nm": "Circle Flash",
|
||||||
|
"sr": 1,
|
||||||
|
"ks": {
|
||||||
|
"o": {
|
||||||
|
"a": 1,
|
||||||
|
"k": [
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": [
|
||||||
|
0.833
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
0.833
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": [
|
||||||
|
0.167
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
0.167
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"n": [
|
||||||
|
"0p833_0p833_0p167_0p167"
|
||||||
|
],
|
||||||
|
"t": 25,
|
||||||
|
"s": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
98
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": [
|
||||||
|
0.833
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
0.833
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": [
|
||||||
|
0.167
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
0.167
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"n": [
|
||||||
|
"0p833_0p833_0p167_0p167"
|
||||||
|
],
|
||||||
|
"t": 30,
|
||||||
|
"s": [
|
||||||
|
98
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"t": 38
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ix": 11
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 10
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
40,
|
||||||
|
40,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 1
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 1,
|
||||||
|
"k": [
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": [
|
||||||
|
0.667,
|
||||||
|
0.667,
|
||||||
|
0.667
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": [
|
||||||
|
0.333,
|
||||||
|
0.333,
|
||||||
|
0.333
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"n": [
|
||||||
|
"0p667_1_0p333_0",
|
||||||
|
"0p667_1_0p333_0",
|
||||||
|
"0p667_1_0p333_0"
|
||||||
|
],
|
||||||
|
"t": 25,
|
||||||
|
"s": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"t": 30
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ix": 6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ao": 0,
|
||||||
|
"shapes": [
|
||||||
|
{
|
||||||
|
"d": 1,
|
||||||
|
"ty": "el",
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 3
|
||||||
|
},
|
||||||
|
"nm": "Ellipse Path 1",
|
||||||
|
"mn": "ADBE Vector Shape - Ellipse",
|
||||||
|
"hd": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "fl",
|
||||||
|
"c": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0.529866635799,
|
||||||
|
0.961458325386,
|
||||||
|
0.448091417551,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"ix": 4
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 5
|
||||||
|
},
|
||||||
|
"r": 1,
|
||||||
|
"nm": "Fill 1",
|
||||||
|
"mn": "ADBE Vector Graphic - Fill",
|
||||||
|
"hd": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ip": 0,
|
||||||
|
"op": 40,
|
||||||
|
"st": 0,
|
||||||
|
"bm": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ddd": 0,
|
||||||
|
"ind": 3,
|
||||||
|
"ty": 4,
|
||||||
|
"nm": "Circle Stroke",
|
||||||
|
"sr": 1,
|
||||||
|
"ks": {
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 11
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 10
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
39.022,
|
||||||
|
39.022,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 1
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 1,
|
||||||
|
"k": [
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": [
|
||||||
|
0.667,
|
||||||
|
0.667,
|
||||||
|
0.667
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": [
|
||||||
|
0.333,
|
||||||
|
0.333,
|
||||||
|
0.333
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"n": [
|
||||||
|
"0p667_1_0p333_0",
|
||||||
|
"0p667_1_0p333_0",
|
||||||
|
"0p667_1_0p333_0"
|
||||||
|
],
|
||||||
|
"t": 16,
|
||||||
|
"s": [
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
80,
|
||||||
|
80,
|
||||||
|
100
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": [
|
||||||
|
0.667,
|
||||||
|
0.667,
|
||||||
|
0.667
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": [
|
||||||
|
0.333,
|
||||||
|
0.333,
|
||||||
|
0.333
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"n": [
|
||||||
|
"0p667_1_0p333_0",
|
||||||
|
"0p667_1_0p333_0",
|
||||||
|
"0p667_1_0p333_0"
|
||||||
|
],
|
||||||
|
"t": 22,
|
||||||
|
"s": [
|
||||||
|
80,
|
||||||
|
80,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
120,
|
||||||
|
120,
|
||||||
|
100
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": [
|
||||||
|
0.667,
|
||||||
|
0.667,
|
||||||
|
0.667
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": [
|
||||||
|
0.333,
|
||||||
|
0.333,
|
||||||
|
0.333
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"n": [
|
||||||
|
"0p667_1_0p333_0",
|
||||||
|
"0p667_1_0p333_0",
|
||||||
|
"0p667_1_0p333_0"
|
||||||
|
],
|
||||||
|
"t": 25,
|
||||||
|
"s": [
|
||||||
|
120,
|
||||||
|
120,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"t": 29
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ix": 6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ao": 0,
|
||||||
|
"shapes": [
|
||||||
|
{
|
||||||
|
"ty": "gr",
|
||||||
|
"it": [
|
||||||
|
{
|
||||||
|
"d": 1,
|
||||||
|
"ty": "el",
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
60,
|
||||||
|
60
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 3
|
||||||
|
},
|
||||||
|
"nm": "Ellipse Path 1",
|
||||||
|
"mn": "ADBE Vector Shape - Ellipse",
|
||||||
|
"hd": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "tm",
|
||||||
|
"s": {
|
||||||
|
"a": 1,
|
||||||
|
"k": [
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": [
|
||||||
|
0.667
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
1
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": [
|
||||||
|
0.333
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"n": [
|
||||||
|
"0p667_1_0p333_0"
|
||||||
|
],
|
||||||
|
"t": 0,
|
||||||
|
"s": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
100
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"t": 16
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ix": 1
|
||||||
|
},
|
||||||
|
"e": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 3
|
||||||
|
},
|
||||||
|
"m": 1,
|
||||||
|
"ix": 2,
|
||||||
|
"nm": "Trim Paths 1",
|
||||||
|
"mn": "ADBE Vector Filter - Trim",
|
||||||
|
"hd": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "st",
|
||||||
|
"c": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0.427450984716,
|
||||||
|
0.800000011921,
|
||||||
|
0.35686275363,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"ix": 3
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 4
|
||||||
|
},
|
||||||
|
"w": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 3,
|
||||||
|
"ix": 5
|
||||||
|
},
|
||||||
|
"lc": 2,
|
||||||
|
"lj": 2,
|
||||||
|
"nm": "Stroke 1",
|
||||||
|
"mn": "ADBE Vector Graphic - Stroke",
|
||||||
|
"hd": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "tr",
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0.978,
|
||||||
|
0.978
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 1
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"ix": 3
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 6
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 7
|
||||||
|
},
|
||||||
|
"sk": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 4
|
||||||
|
},
|
||||||
|
"sa": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 5
|
||||||
|
},
|
||||||
|
"nm": "Transform"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nm": "Ellipse 1",
|
||||||
|
"np": 3,
|
||||||
|
"cix": 2,
|
||||||
|
"ix": 1,
|
||||||
|
"mn": "ADBE Vector Group",
|
||||||
|
"hd": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ip": 0,
|
||||||
|
"op": 40,
|
||||||
|
"st": 0,
|
||||||
|
"bm": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ddd": 0,
|
||||||
|
"ind": 4,
|
||||||
|
"ty": 4,
|
||||||
|
"nm": "Circle Green Fill",
|
||||||
|
"sr": 1,
|
||||||
|
"ks": {
|
||||||
|
"o": {
|
||||||
|
"a": 1,
|
||||||
|
"k": [
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": [
|
||||||
|
0.833
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
0.833
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": [
|
||||||
|
0.167
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
0.167
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"n": [
|
||||||
|
"0p833_0p833_0p167_0p167"
|
||||||
|
],
|
||||||
|
"t": 21,
|
||||||
|
"s": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
98
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"t": 28
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ix": 11
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 10
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
40,
|
||||||
|
40,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 1
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 1,
|
||||||
|
"k": [
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": [
|
||||||
|
0.667,
|
||||||
|
0.667,
|
||||||
|
0.667
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": [
|
||||||
|
0.333,
|
||||||
|
0.333,
|
||||||
|
0.333
|
||||||
|
],
|
||||||
|
"y": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"n": [
|
||||||
|
"0p667_1_0p333_0",
|
||||||
|
"0p667_1_0p333_0",
|
||||||
|
"0p667_1_0p333_0"
|
||||||
|
],
|
||||||
|
"t": 21,
|
||||||
|
"s": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"t": 28
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ix": 6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ao": 0,
|
||||||
|
"shapes": [
|
||||||
|
{
|
||||||
|
"d": 1,
|
||||||
|
"ty": "el",
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
64,
|
||||||
|
64
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 3
|
||||||
|
},
|
||||||
|
"nm": "Ellipse Path 1",
|
||||||
|
"mn": "ADBE Vector Shape - Ellipse",
|
||||||
|
"hd": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "fl",
|
||||||
|
"c": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0.427450984716,
|
||||||
|
0.800000011921,
|
||||||
|
0.35686275363,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"ix": 4
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 5
|
||||||
|
},
|
||||||
|
"r": 1,
|
||||||
|
"nm": "Fill 1",
|
||||||
|
"mn": "ADBE Vector Graphic - Fill",
|
||||||
|
"hd": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ip": 0,
|
||||||
|
"op": 40,
|
||||||
|
"st": 0,
|
||||||
|
"bm": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,708 @@
|
||||||
|
{
|
||||||
|
"v": "5.6.10",
|
||||||
|
"fr": 120,
|
||||||
|
"ip": 0,
|
||||||
|
"op": 160,
|
||||||
|
"w": 1000,
|
||||||
|
"h": 1000,
|
||||||
|
"nm": "Composição 1",
|
||||||
|
"ddd": 0,
|
||||||
|
"assets": [],
|
||||||
|
"layers": [
|
||||||
|
{
|
||||||
|
"ddd": 0,
|
||||||
|
"ind": 1,
|
||||||
|
"ty": 4,
|
||||||
|
"nm": "Left",
|
||||||
|
"sr": 1,
|
||||||
|
"ks": {
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 11
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 10
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 1,
|
||||||
|
"k": [
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": 0.833,
|
||||||
|
"y": 0.833
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": 0.333,
|
||||||
|
"y": 0.333
|
||||||
|
},
|
||||||
|
"t": 0,
|
||||||
|
"s": [
|
||||||
|
650,
|
||||||
|
500,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
650,
|
||||||
|
500,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ti": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": 0.667,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": 0.333,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"t": 20,
|
||||||
|
"s": [
|
||||||
|
650,
|
||||||
|
500,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
650,
|
||||||
|
300,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
0,
|
||||||
|
-33.333,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ti": [
|
||||||
|
-3.333,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": 0.209,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": 0.333,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"t": 70,
|
||||||
|
"s": [
|
||||||
|
650,
|
||||||
|
300,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
650,
|
||||||
|
500,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
3.329,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ti": [
|
||||||
|
-0.005,
|
||||||
|
-0.047,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"t": 120
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
-233,
|
||||||
|
-9,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 1
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"ix": 6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ao": 0,
|
||||||
|
"shapes": [
|
||||||
|
{
|
||||||
|
"ty": "gr",
|
||||||
|
"it": [
|
||||||
|
{
|
||||||
|
"d": 1,
|
||||||
|
"ty": "el",
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
90,
|
||||||
|
90
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 3
|
||||||
|
},
|
||||||
|
"nm": "Caminho da elipse 1",
|
||||||
|
"mn": "ADBE Vector Shape - Ellipse",
|
||||||
|
"hd": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "fl",
|
||||||
|
"c": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"ix": 4
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 5
|
||||||
|
},
|
||||||
|
"r": 1,
|
||||||
|
"bm": 0,
|
||||||
|
"nm": "Preenchimento 1",
|
||||||
|
"mn": "ADBE Vector Graphic - Fill",
|
||||||
|
"hd": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "tr",
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
-233,
|
||||||
|
-9
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 1
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"ix": 3
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 6
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 7
|
||||||
|
},
|
||||||
|
"sk": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 4
|
||||||
|
},
|
||||||
|
"sa": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 5
|
||||||
|
},
|
||||||
|
"nm": "Transformar"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nm": "Elipse 1",
|
||||||
|
"np": 3,
|
||||||
|
"cix": 2,
|
||||||
|
"bm": 0,
|
||||||
|
"ix": 1,
|
||||||
|
"mn": "ADBE Vector Group",
|
||||||
|
"hd": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ip": 0,
|
||||||
|
"op": 160,
|
||||||
|
"st": 0,
|
||||||
|
"bm": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ddd": 0,
|
||||||
|
"ind": 2,
|
||||||
|
"ty": 4,
|
||||||
|
"nm": "Center",
|
||||||
|
"sr": 1,
|
||||||
|
"ks": {
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 11
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 10
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 1,
|
||||||
|
"k": [
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": 0.607,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": 0.333,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"t": 10,
|
||||||
|
"s": [
|
||||||
|
500,
|
||||||
|
500,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
500,
|
||||||
|
300,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
0,
|
||||||
|
-33.333,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ti": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": 0.121,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": 0.333,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"t": 55,
|
||||||
|
"s": [
|
||||||
|
500,
|
||||||
|
300,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
500,
|
||||||
|
500,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ti": [
|
||||||
|
0,
|
||||||
|
-33.333,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"t": 115
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
-233,
|
||||||
|
-9,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 1
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"ix": 6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ao": 0,
|
||||||
|
"shapes": [
|
||||||
|
{
|
||||||
|
"ty": "gr",
|
||||||
|
"it": [
|
||||||
|
{
|
||||||
|
"d": 1,
|
||||||
|
"ty": "el",
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
90,
|
||||||
|
90
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 3
|
||||||
|
},
|
||||||
|
"nm": "Caminho da elipse 1",
|
||||||
|
"mn": "ADBE Vector Shape - Ellipse",
|
||||||
|
"hd": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "fl",
|
||||||
|
"c": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"ix": 4
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 5
|
||||||
|
},
|
||||||
|
"r": 1,
|
||||||
|
"bm": 0,
|
||||||
|
"nm": "Preenchimento 1",
|
||||||
|
"mn": "ADBE Vector Graphic - Fill",
|
||||||
|
"hd": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "tr",
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
-233,
|
||||||
|
-9
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 1
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"ix": 3
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 6
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 7
|
||||||
|
},
|
||||||
|
"sk": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 4
|
||||||
|
},
|
||||||
|
"sa": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 5
|
||||||
|
},
|
||||||
|
"nm": "Transformar"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nm": "Elipse 1",
|
||||||
|
"np": 3,
|
||||||
|
"cix": 2,
|
||||||
|
"bm": 0,
|
||||||
|
"ix": 1,
|
||||||
|
"mn": "ADBE Vector Group",
|
||||||
|
"hd": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ip": 0,
|
||||||
|
"op": 160,
|
||||||
|
"st": 0,
|
||||||
|
"bm": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ddd": 0,
|
||||||
|
"ind": 3,
|
||||||
|
"ty": 4,
|
||||||
|
"nm": "Rigth",
|
||||||
|
"sr": 1,
|
||||||
|
"ks": {
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 11
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 10
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 1,
|
||||||
|
"k": [
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": 0.667,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": 0.333,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"t": 0,
|
||||||
|
"s": [
|
||||||
|
360,
|
||||||
|
500,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
360,
|
||||||
|
300,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
0,
|
||||||
|
-13.366,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ti": [
|
||||||
|
0,
|
||||||
|
36.899,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"i": {
|
||||||
|
"x": 0.163,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"x": 0.333,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"t": 35,
|
||||||
|
"s": [
|
||||||
|
360,
|
||||||
|
300,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"e": [
|
||||||
|
360,
|
||||||
|
500,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
0,
|
||||||
|
-55.126,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ti": [
|
||||||
|
0,
|
||||||
|
-33.333,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"t": 95
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
-233,
|
||||||
|
-9,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 1
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"ix": 6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ao": 0,
|
||||||
|
"shapes": [
|
||||||
|
{
|
||||||
|
"ty": "gr",
|
||||||
|
"it": [
|
||||||
|
{
|
||||||
|
"d": 1,
|
||||||
|
"ty": "el",
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
90,
|
||||||
|
90
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 3
|
||||||
|
},
|
||||||
|
"nm": "Caminho da elipse 1",
|
||||||
|
"mn": "ADBE Vector Shape - Ellipse",
|
||||||
|
"hd": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "fl",
|
||||||
|
"c": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"ix": 4
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 5
|
||||||
|
},
|
||||||
|
"r": 1,
|
||||||
|
"bm": 0,
|
||||||
|
"nm": "Preenchimento 1",
|
||||||
|
"mn": "ADBE Vector Graphic - Fill",
|
||||||
|
"hd": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "tr",
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
-233,
|
||||||
|
-9
|
||||||
|
],
|
||||||
|
"ix": 2
|
||||||
|
},
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"ix": 1
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"ix": 3
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 6
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100,
|
||||||
|
"ix": 7
|
||||||
|
},
|
||||||
|
"sk": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 4
|
||||||
|
},
|
||||||
|
"sa": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0,
|
||||||
|
"ix": 5
|
||||||
|
},
|
||||||
|
"nm": "Transformar"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nm": "Elipse 1",
|
||||||
|
"np": 3,
|
||||||
|
"cix": 2,
|
||||||
|
"bm": 0,
|
||||||
|
"ix": 1,
|
||||||
|
"mn": "ADBE Vector Group",
|
||||||
|
"hd": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ip": 0,
|
||||||
|
"op": 160,
|
||||||
|
"st": 0,
|
||||||
|
"bm": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"markers": []
|
||||||
|
}
|
After Width: | Height: | Size: 2.4 MiB |
After Width: | Height: | Size: 2.7 MiB |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 1.8 MiB |
After Width: | Height: | Size: 5.6 MiB |
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 359 KiB |
|
@ -0,0 +1,30 @@
|
||||||
|
/**
|
||||||
|
* 控制全app的颜色
|
||||||
|
* @type {{statusBarColor: string}}
|
||||||
|
*/
|
||||||
|
export const colors = {
|
||||||
|
backgroundColor:'#4AB066',
|
||||||
|
labelColor: '#A4A3A7',
|
||||||
|
bgc: 'white',
|
||||||
|
catColor: '#D0B895',
|
||||||
|
historyListColor: '#F6EFE0',
|
||||||
|
statusBarColor: '#23A2FF',
|
||||||
|
inputBgc: '#E6E7E8',
|
||||||
|
signupInputBgc: '#F0E1C9',
|
||||||
|
shoppingcartColor: '#F0DEC1',
|
||||||
|
inputText: '#4D4D4D',
|
||||||
|
profileBg: '#D29686',
|
||||||
|
mainColor: '#3EB873',
|
||||||
|
otherGreen: '#6EB7A0',
|
||||||
|
maingray: '#888A8D',
|
||||||
|
lineColor: '#E5E5E5',
|
||||||
|
textColor: '#000000',
|
||||||
|
subTextColor: '#98AD86',
|
||||||
|
baseColor: '#1BBC9B',
|
||||||
|
line2Color: '#9EA3A6',
|
||||||
|
borderLineColor: '#E6E6E6',
|
||||||
|
loginButtonColor: '#3E9B42',
|
||||||
|
titleColor: '#57A75A',
|
||||||
|
grayTextColor: '#E9E9E9',
|
||||||
|
shoppingGroupColor: '#F7F7F7',
|
||||||
|
};
|
|
@ -0,0 +1,91 @@
|
||||||
|
import React, {Component} from 'react';
|
||||||
|
import {
|
||||||
|
Platform,
|
||||||
|
StyleSheet,
|
||||||
|
Text,
|
||||||
|
View,
|
||||||
|
Modal,
|
||||||
|
ActivityIndicator,
|
||||||
|
} from 'react-native';
|
||||||
|
import Spinner from 'react-native-loading-spinner-overlay';
|
||||||
|
import {colors} from '../assets/styles/colors-theme';
|
||||||
|
import LottieView from 'lottie-react-native';
|
||||||
|
import {width, height} from '../services/screen';
|
||||||
|
|
||||||
|
export default class Loading extends Component {
|
||||||
|
state = {
|
||||||
|
spinner: false,
|
||||||
|
};
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<Modal
|
||||||
|
transparent={true}
|
||||||
|
animationType={'none'}
|
||||||
|
visible={this.props.loading}
|
||||||
|
onRequestClose={() => {
|
||||||
|
console.log('c lose modal');
|
||||||
|
}}>
|
||||||
|
<View style={styles.modalBackground}>
|
||||||
|
<View style={styles.activityIndicatorWrapper}>
|
||||||
|
{/* <ActivityIndicator animating={this.props.loading} /> */}
|
||||||
|
<LottieView
|
||||||
|
ref={animation => {
|
||||||
|
this.animation = animation;
|
||||||
|
}}
|
||||||
|
colorFilters={[
|
||||||
|
{
|
||||||
|
keypath: 'Left',
|
||||||
|
color: colors.mainColor,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
keypath: 'Center',
|
||||||
|
color: colors.mainColor,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
keypath: 'Rigth',
|
||||||
|
color: colors.mainColor,
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
style={{height: 150, width: 150}}
|
||||||
|
source={require('../assets/lottie/loading')}
|
||||||
|
autoPlay
|
||||||
|
loop
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</Modal>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const styles = StyleSheet.flatten({
|
||||||
|
wrapper: {
|
||||||
|
position: 'absolute',
|
||||||
|
top: 0,
|
||||||
|
left: 0,
|
||||||
|
width: width,
|
||||||
|
height: height,
|
||||||
|
},
|
||||||
|
loading: {
|
||||||
|
position: 'absolute',
|
||||||
|
top: height / 2 - 100,
|
||||||
|
left: width / 2 - 70,
|
||||||
|
width: 140,
|
||||||
|
height: 140,
|
||||||
|
},
|
||||||
|
modalBackground: {
|
||||||
|
flex: 1,
|
||||||
|
alignItems: 'center',
|
||||||
|
flexDirection: 'column',
|
||||||
|
justifyContent: 'center',
|
||||||
|
},
|
||||||
|
activityIndicatorWrapper: {
|
||||||
|
height: 200,
|
||||||
|
width: 200,
|
||||||
|
borderRadius: 10,
|
||||||
|
display: 'flex',
|
||||||
|
alignItems: 'center',
|
||||||
|
justifyContent: 'space-around',
|
||||||
|
},
|
||||||
|
});
|