diff --git a/App.js b/App.js
index a10e755..bd69245 100644
--- a/App.js
+++ b/App.js
@@ -1,50 +1,22 @@
-import React from "react";
-import { StyleSheet, useColorScheme } from "react-native";
-import AsyncStorage from "@react-native-async-storage/async-storage";
-import { Provider } from "react-redux";
-import { applyMiddleware, createStore, compose } from "redux";
-import { createLogger } from "redux-logger";
-import thunk from "redux-thunk";
-import { persistStore, persistReducer } from "redux-persist";
-import autoMergeLevel2 from "redux-persist/lib/stateReconciler/autoMergeLevel2";
-import allReducers from "./src/reducers";
+import { StyleSheet } from "react-native";
+import { useFonts } from "expo-font";
+import AppLoading from "expo-app-loading";
import Navigation from "./navigation/index";
import AlertModal from "./src/components/AlertModal";
+import { Provider } from "react-redux";
+import store from './src/redux/store';
-const persistConfig = {
- key: "root",
- storage: AsyncStorage,
- stateReconciler: autoMergeLevel2, // see "Merge Process" section for details.
- whitelist: ["profile"],
-};
-const pReducer = persistReducer(persistConfig, allReducers);
-
-const middleWare = [];
-
-middleWare.push(thunk);
-
-const loggerMiddleware = createLogger({
- predicate: () => process.env.NODE_ENV === "development",
-});
-middleWare.push(loggerMiddleware);
-
-const store = createStore(pReducer, compose(applyMiddleware(...middleWare)));
-
-const persistor = persistStore(store);
-
-const ReactNative = require("react-native");
-try {
- ReactNative.I18nManager.allowRTL(true);
- // enableScreens();
-} catch (e) {
- console.log(e);
-}
-
-console.disableYellowBox = true;
const App = () => {
- const isDarkMode = useColorScheme() === "dark";
-
+ let [fontsLoaded] = useFonts({
+ light : require("./assets/fonts/Farsi/IRANSansXFaNum-Light.ttf"),
+ regular: require("./assets/fonts/Farsi/IRANSansXFaNum-Regular.ttf"),
+ bold: require("./assets/fonts/Farsi/IRANSansXFaNum-Medium.ttf"),
+ });
+
+ if (!fontsLoaded) {
+ return ;
+ }
return (
diff --git a/assets/fonts/Farsi/IRANSansXFaNum-Black.ttf b/assets/fonts/Farsi/IRANSansXFaNum-Black.ttf
new file mode 100644
index 0000000..a073217
Binary files /dev/null and b/assets/fonts/Farsi/IRANSansXFaNum-Black.ttf differ
diff --git a/assets/fonts/Farsi/IRANSansXFaNum-Bold.ttf b/assets/fonts/Farsi/IRANSansXFaNum-Bold.ttf
new file mode 100644
index 0000000..84d2767
Binary files /dev/null and b/assets/fonts/Farsi/IRANSansXFaNum-Bold.ttf differ
diff --git a/assets/fonts/Farsi/IRANSansXFaNum-DemiBold.ttf b/assets/fonts/Farsi/IRANSansXFaNum-DemiBold.ttf
new file mode 100644
index 0000000..4fd2c73
Binary files /dev/null and b/assets/fonts/Farsi/IRANSansXFaNum-DemiBold.ttf differ
diff --git a/assets/fonts/Farsi/IRANSansXFaNum-ExtraBold.ttf b/assets/fonts/Farsi/IRANSansXFaNum-ExtraBold.ttf
new file mode 100644
index 0000000..21d4fbf
Binary files /dev/null and b/assets/fonts/Farsi/IRANSansXFaNum-ExtraBold.ttf differ
diff --git a/assets/fonts/Farsi/IRANSansXFaNum-Light.ttf b/assets/fonts/Farsi/IRANSansXFaNum-Light.ttf
new file mode 100644
index 0000000..4807f62
Binary files /dev/null and b/assets/fonts/Farsi/IRANSansXFaNum-Light.ttf differ
diff --git a/assets/fonts/Farsi/IRANSansXFaNum-Medium.ttf b/assets/fonts/Farsi/IRANSansXFaNum-Medium.ttf
new file mode 100644
index 0000000..4d88319
Binary files /dev/null and b/assets/fonts/Farsi/IRANSansXFaNum-Medium.ttf differ
diff --git a/assets/fonts/Farsi/IRANSansXFaNum-Regular.ttf b/assets/fonts/Farsi/IRANSansXFaNum-Regular.ttf
new file mode 100644
index 0000000..385e013
Binary files /dev/null and b/assets/fonts/Farsi/IRANSansXFaNum-Regular.ttf differ
diff --git a/assets/fonts/Farsi/IRANSansXFaNum-Thin.ttf b/assets/fonts/Farsi/IRANSansXFaNum-Thin.ttf
new file mode 100644
index 0000000..da257b5
Binary files /dev/null and b/assets/fonts/Farsi/IRANSansXFaNum-Thin.ttf differ
diff --git a/assets/fonts/Farsi/IRANSansXFaNum-UltraLight.ttf b/assets/fonts/Farsi/IRANSansXFaNum-UltraLight.ttf
new file mode 100644
index 0000000..d8a5468
Binary files /dev/null and b/assets/fonts/Farsi/IRANSansXFaNum-UltraLight.ttf differ
diff --git a/navigation/BottomNavigation.js b/navigation/BottomNavigation.js
deleted file mode 100644
index c4c19e3..0000000
--- a/navigation/BottomNavigation.js
+++ /dev/null
@@ -1,54 +0,0 @@
-import React from "react";
-import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
-import Home from "../src/screens/Home";
-import ShoppingCart from '../src/screens/ShoppingCart';
-import Products from "../src/screens/Products";
-import { Entypo, FontAwesome } from "@expo/vector-icons";
-
-const Tab = createBottomTabNavigator();
-
-const BottomTabNavigator = () => {
- return (
-
- (
-
- ),
- }}
- />
- (
-
- ),
- }}
- />
- (
-
- ),
- }}
- />
-
- );
-};
-
-export default BottomTabNavigator;
\ No newline at end of file
diff --git a/navigation/index.js b/navigation/index.js
index d2b66ca..bfe77d6 100644
--- a/navigation/index.js
+++ b/navigation/index.js
@@ -1,9 +1,13 @@
import React from "react";
import { NavigationContainer } from "@react-navigation/native";
import { createNativeStackNavigator } from "@react-navigation/native-stack";
-import BottomTabNavigator from "./BottomNavigation";
+import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
+import { Entypo, FontAwesome, Ionicons } from "@expo/vector-icons";
+import OrderDetails from "../src/screens/OrderDetails";
+import { Dimensions } from "react-native";
import Splash from "../src/screens/Splash";
import Home from "../src/screens/Home";
+import Products from "../src/screens/Products";
import Login from "../src/screens/Login";
import Otp from "../src/screens/Otp";
import Product from "../src/screens/Product";
@@ -14,7 +18,114 @@ import { useTranslation } from "react-i18next";
import Profile from "../src/screens/Profile";
import Videos from "../src/screens/Videos";
import Exams from "../src/screens/Exams";
-import OrderDetails from "../src/screens/OrderDetails";
+import ShoppingCart from "../src/screens/ShoppingCart";
+
+const width = Dimensions.get("window").width;
+
+const Tab = createBottomTabNavigator();
+const BottomTabNavigator = () => {
+ return (
+
+ (
+
+ ),
+ }}
+ />
+ (
+
+ ),
+ }}
+ />
+ (
+
+ ),
+ }}
+ />
+ (
+
+ ),
+ }}
+ />
+
+ );
+};
+
+const HomeStack = createNativeStackNavigator();
+const HomeStackScreen = () => {
+ return (
+
+
+
+
+
+ );
+};
+
+const ProductsStack = createNativeStackNavigator();
+const ProductsStackScreen = () => {
+ return (
+
+
+
+
+
+ );
+};
+
+const AuthStack = createNativeStackNavigator();
+const AuthStackScreen = () => {
+ return (
+
+
+
+
+
+ );
+};
const Stack = createNativeStackNavigator();
@@ -26,11 +137,6 @@ const Navigation = () => {
screenOptions={{ headerShown: false }}
>
-
-
-
-
-
);
diff --git a/package.json b/package.json
index 99cc228..1ac3f82 100644
--- a/package.json
+++ b/package.json
@@ -10,14 +10,18 @@
"eject": "expo eject"
},
"dependencies": {
+ "@expo-google-fonts/noto-sans": "^0.2.0",
"@react-native-async-storage/async-storage": "~1.15.0",
"@react-navigation/bottom-tabs": "^6.0.9",
+ "@react-navigation/drawer": "^6.1.8",
"@react-navigation/native": "^6.0.6",
"@react-navigation/native-stack": "^6.2.5",
"expo": "^44.0.1",
+ "expo-app-loading": "~1.3.0",
"expo-barcode-scanner": "~11.2.0",
"expo-camera": "~12.1.0",
"expo-device": "~4.1.0",
+ "expo-font": "^10.0.4",
"expo-status-bar": "~1.2.0",
"i18next": "^21.6.3",
"install": "^0.13.0",
diff --git a/src/assets/video.mp4 b/src/assets/video.mp4
deleted file mode 100644
index fd6954b..0000000
Binary files a/src/assets/video.mp4 and /dev/null differ
diff --git a/src/components/CustomTextInput.js b/src/components/CustomTextInput.js
index 4d84604..64e63cb 100644
--- a/src/components/CustomTextInput.js
+++ b/src/components/CustomTextInput.js
@@ -1,6 +1,8 @@
import React, {useState} from 'react';
import {TextInput, View, Text, Dimensions, StyleSheet} from 'react-native';
-import tw from 'tailwind-react-native-classnames';
+import tw from 'tailwind-rn';
+
+const width = Dimensions.get('window').width;
const FloatingLabelInput = ({
label,
@@ -8,48 +10,47 @@ const FloatingLabelInput = ({
direction,
labelBackgroundColor,
onChange,
- value,
name,
+ value,
+ color,
+ maxLength,
+ autoFocus,
...props
}) => {
const [isFocused, setIsFocused] = useState(false);
const styles = StyleSheet.create({
labelStyle: {
- position: 'absolute',
- right: 15,
- backgroundColor: 'white',
- zIndex: 100,
- paddingHorizontal: 5,
- textAlign: 'center',
- top: !isFocused ? '50%' : 0,
- fontSize: !isFocused ? Dimensions.get('window').width / 27 : 14,
- transform: [{translateY: -Dimensions.get('window').width / 35}],
- color: !isFocused ? '#555' : '#6CBE44',
- // transition: Transitions.all(Transitions.)
+ fontFamily: 'regular',
+ top: !isFocused ? '50%' : 1,
+ fontSize: !isFocused ? width / 36 : width / 40,
+ transform: [{translateY: -width / 35}],
+ color: !isFocused ? '#555' : '#196EC0',
},
inputStyle: {
- fontSize: Dimensions.get('window').width / 25,
+ fontSize: Dimensions.get('window').width / 27,
color: '#000',
- borderWidth: 0.5,
- borderColor: isFocused ? '#6CBE44' : '#555',
- paddingVertical: 15,
- paddingHorizontal: 10,
- direction: 'rtl',
- textAlign: 'right',
+ borderWidth: 1,
+ borderColor: isFocused ? '#196EC0' : '#777',
+ textAlign: textAlign,
+ fontFamily: 'light'
},
});
return (
-
+
+ style={[styles.labelStyle, tw('px-1 z-10 bg-white absolute right-4 text-center')]}>
{label}
onChange(name, text)}
+ placeholder={'09123456789'}
onFocus={() => setIsFocused(true)}
+ autoFocus={autoFocus}
+ underlineColorAndroid={"transparent"}
+ maxLength={maxLength}
onBlur={() =>
- value ? setIsFocused(() => true) : setIsFocused(() => false)
+ value ? setIsFocused(() => false) : setIsFocused(() => false)
}
/>
diff --git a/src/components/Header.js b/src/components/Header.js
index 9aa2911..693d7fc 100644
--- a/src/components/Header.js
+++ b/src/components/Header.js
@@ -17,14 +17,14 @@ export default function Header({icon, title, description, background}) {
{title}
{description}
diff --git a/src/components/Navbar.js b/src/components/Navbar.js
index f9017d9..f407809 100644
--- a/src/components/Navbar.js
+++ b/src/components/Navbar.js
@@ -57,7 +57,7 @@ const Navbar = ({ notification }) => {
)}
navigation.navigate("Home")}
+ onPress={() => navigation.navigate("خانه")}
style={tw("absolute right-1/2 top-1/2")}
>
- {title}
+ {title}
);
}
diff --git a/src/components/Progress.js b/src/components/Progress.js
index 0c5dc68..d54489a 100644
--- a/src/components/Progress.js
+++ b/src/components/Progress.js
@@ -5,7 +5,7 @@ import tw from 'tailwind-rn';
//Color
import Color from '../constants/Colors';
-function Progress({percent}) {
+function Progress({percent, alignItems}) {
const [delayPercent, setDelayPercent] = useState(0);
useEffect(() => {
setTimeout(() => {
@@ -15,14 +15,14 @@ function Progress({percent}) {
return (
{
const styles = StyleSheet.create({
inputStyle: {
- fontSize: width / 30,
+ fontSize: width / 36,
color: '#000',
borderWidth: 0.5,
borderColor: '#DBDBDB',
@@ -29,6 +29,7 @@ const Search = ({
direction: direction,
textAlign: textAlign,
backgroundColor: '#F9F9F9',
+ fontFamily : 'light'
},
});
return (
@@ -40,7 +41,7 @@ const Search = ({
placeholderTextColor={'#cccccc'}
value={value}
/>
-
+
diff --git a/src/components/Select.js b/src/components/Select.js
index 4f38377..223434e 100644
--- a/src/components/Select.js
+++ b/src/components/Select.js
@@ -15,16 +15,18 @@ function Select({iconPosition, options, onChange, value, width, defaultValue}) {
borderRadius: 6,
height: 36,
backgroundColor: '#F9F9F9',
+ fontFamily : 'light'
}}
- rowTextStyle={{fontSize: Dimensions.get('window').width / 30}}
+ rowTextStyle={{fontSize: Dimensions.get('window').width / 36, fontFamily : 'light'}}
defaultButtonText={defaultValue}
statusBarTranslucent={true}
buttonTextStyle={{
textAlign: 'center',
justifyContent: 'flex-end',
flex: 0,
- fontSize: Dimensions.get('window').width / 30,
+ fontSize: Dimensions.get('window').width / 36,
color: '#707070',
+ fontFamily : 'light'
// display: 'inline'
}}
dropdownIconPosition={iconPosition}
diff --git a/src/reducers/index.js b/src/reducers/index.js
index f0b0c71..1d0c85e 100644
--- a/src/reducers/index.js
+++ b/src/reducers/index.js
@@ -11,4 +11,4 @@ const allReducers = combineReducers({
}),
});
-export default allReducers;
+export default allReducers;
\ No newline at end of file
diff --git a/src/redux/store.js b/src/redux/store.js
new file mode 100644
index 0000000..32172bb
--- /dev/null
+++ b/src/redux/store.js
@@ -0,0 +1,40 @@
+import AsyncStorage from "@react-native-async-storage/async-storage";
+import { applyMiddleware, createStore, compose } from "redux";
+import { createLogger } from "redux-logger";
+import thunk from "redux-thunk";
+import { persistStore, persistReducer } from "redux-persist";
+import autoMergeLevel2 from "redux-persist/lib/stateReconciler/autoMergeLevel2";
+import allReducers from "../reducers";
+
+const persistConfig = {
+ key: "root",
+ storage: AsyncStorage,
+ stateReconciler: autoMergeLevel2, // see "Merge Process" section for details.
+ whitelist: ["profile"],
+};
+const pReducer = persistReducer(persistConfig, allReducers);
+
+const middleWare = [];
+
+middleWare.push(thunk);
+
+const loggerMiddleware = createLogger({
+ predicate: () => process.env.NODE_ENV === "development",
+});
+middleWare.push(loggerMiddleware);
+
+const store = createStore(pReducer, compose(applyMiddleware(...middleWare)));
+
+const persistor = persistStore(store);
+
+const ReactNative = require("react-native");
+try {
+ ReactNative.I18nManager.allowRTL(true);
+ // enableScreens();
+} catch (e) {
+ console.log(e);
+}
+
+console.disableYellowBox = true;
+
+export default store;
\ No newline at end of file
diff --git a/src/screens/Home/components/Blogs.js b/src/screens/Home/components/Blogs.js
index 15c79e4..44e2431 100644
--- a/src/screens/Home/components/Blogs.js
+++ b/src/screens/Home/components/Blogs.js
@@ -1,4 +1,4 @@
-import React from 'react';
+import React from "react";
import {
View,
Image,
@@ -6,74 +6,99 @@ import {
Dimensions,
TouchableOpacity,
FlatList,
-} from 'react-native';
+} from "react-native";
-const width = Dimensions.get('window').width;
-const height = Dimensions.get('window').height;
+const width = Dimensions.get("window").width;
+const height = Dimensions.get("window").height;
-import Header from '../components/Header';
-import tw from 'tailwind-rn';
+import Header from "../components/Header";
+import tw from "tailwind-rn";
-import {connect} from 'react-redux';
+import { connect } from "react-redux";
//asssets
-import foodImage from '../assets/food.png';
-import userImage from '../assets/user.png';
-import messageIcon from '../assets/message.png';
+import foodImage from "../assets/food.png";
+import userImage from "../assets/user.png";
+import messageIcon from "../assets/message.png";
//Color
-import Color from '../../../constants/Colors';
+import Color from "../../../constants/Colors";
-function Blogs({products}) {
+function Blogs({ products }) {
return (
-
-
-
+
+
+
}
+ renderItem={({ item }) => }
+ keyExtractor={item => item.id}
/>
);
}
-const Blog = ({blog}) => {
+const Blog = ({ blog }) => {
return (
navigation.navigate('Product')}
>
-
+
+ { transform: [{ translateY: -20 }], marginHorizontal: 10 },
+ tw("flex flex-col bg-white rounded-md p-2"),
+ ]}
+ >
+ tw("mb-2"),
+ {
+ color: Color.theme1.light.blue7,
+ fontFamily: "bold",
+ fontSize: width / 36,
+ },
+ ]}
+ >
آیا مواد غذای پر فیبر مفید هستند؟
-
-
+
+
-
+
حامد دژبانی نسب
-
- ۳۰ دقیقه
+
+
+ ۳۰ دقیقه
+
@@ -82,7 +107,7 @@ const Blog = ({blog}) => {
);
};
-const mapStateToProps = state => ({
+const mapStateToProps = (state) => ({
// features: state.publicApi.home?.features,
});
export default connect(mapStateToProps, {})(Blogs);
@@ -91,27 +116,35 @@ Blogs.defaultProps = {
products: [
{
imageUrl: foodImage,
+ id: 0,
},
{
imageUrl: foodImage,
+ id: 1,
},
{
imageUrl: foodImage,
+ id: 2,
},
{
imageUrl: foodImage,
+ id: 3,
},
{
imageUrl: foodImage,
+ id: 4,
},
{
imageUrl: foodImage,
+ id: 5,
},
{
imageUrl: foodImage,
+ id: 6,
},
{
imageUrl: foodImage,
+ id: 7,
},
],
};
diff --git a/src/screens/Home/components/Header.js b/src/screens/Home/components/Header.js
index 251bf82..affa8ef 100644
--- a/src/screens/Home/components/Header.js
+++ b/src/screens/Home/components/Header.js
@@ -1,22 +1,32 @@
-import React from 'react';
-import {View, Text, Image, Pressable} from 'react-native';
-import {useNavigation} from '@react-navigation/native';
-import tw from 'tailwind-rn';
+import React from "react";
+import { View, Text, Image, Pressable, Dimensions } from "react-native";
+import {Entypo} from '@expo/vector-icons';
+import { useNavigation } from "@react-navigation/native";
+import tw from "tailwind-rn";
//assets
-import arrowIcon from '../assets/arrow.png';
+import arrowIcon from "../assets/arrow.png";
//Color
-import Color from '../../../constants/Colors';
+import Color from "../../../constants/Colors";
-const Header = ({title, route}) => {
+const width = Dimensions.get('window').width;
+
+const Header = ({ title, route }) => {
const navigation = useNavigation();
return (
-
+
+ style={[
+ {
+ color: Color.theme1.light.blue5,
+ fontFamily : 'bold',
+ fontSize : width / 30
+ },
+ ]}
+ >
{title}
navigation.navigate(route)}>
-
+
);
diff --git a/src/screens/Home/components/MyBooks.js b/src/screens/Home/components/MyBooks.js
index 03b13ea..c923949 100644
--- a/src/screens/Home/components/MyBooks.js
+++ b/src/screens/Home/components/MyBooks.js
@@ -1,4 +1,4 @@
-import React, {useState, useEffect} from 'react';
+import React, { useState, useEffect } from "react";
import {
View,
Text,
@@ -6,82 +6,103 @@ import {
TouchableOpacity,
Dimensions,
FlatList,
-} from 'react-native';
-import tw from 'tailwind-rn';
-import {connect} from 'react-redux';
-// import { book } from "../../../../../redux/actions";
-import Progress from '../../../components/Progress';
+} from "react-native";
+import tw from "tailwind-rn";
+import {useNavigation} from '@react-navigation/native';
+import { connect } from "react-redux";
+import Progress from "../../../components/Progress";
//assets
-import bookImage from '../assets/zist11.png';
+import bookImage from "../assets/zist11.png";
//Color
-import Color from '../../../constants/Colors';
+import Color from "../../../constants/Colors";
-const width = Dimensions.get('window').width;
-const height = Dimensions.get('window').height;
+const width = Dimensions.get("window").width;
+const height = Dimensions.get("window").height;
-function MyBooks({getList, list, grades}) {
+function MyBooks({ getList, list, grades }) {
return (
-
+
+ ]}
+ >
+ style={[
+ {
+ color: Color.theme1.light.blue5,
+ fontFamily: "bold",
+ fontSize: width / 30,
+ },
+ ]}
+ >
کتابهای من
}
+ renderItem={({ item }) => }
+ keyExtractor={(book) => book.name}
/>
);
}
-const Book = ({book, grades}) => {
+const Book = ({ book, grades }) => {
+ const navigation = useNavigation();
return (
-
+ navigation.navigate("Product")}
+ >
- {'نام کتاب'}
+ tw("mt-2 pr-1"),
+ {
+ color: Color.theme1.light.blue6,
+ fontFamily: "bold",
+ fontSize: width / 36,
+ },
+ ]}
+ >
+ {"نام کتاب"}
{`پایه ${'اول'}`}
-
+ tw("mt-1 pr-1"),
+ {
+ color: Color.theme1.light.blue5,
+ fontFamily: "light",
+ fontSize: width / 40,
+ },
+ ]}
+ >{`پایه ${"اول"}`}
+
);
};
-const mapStateToProps = state => ({
+const mapStateToProps = (state) => ({
// list: state.book.list,
// grades : state.publicApi.grades
});
@@ -89,5 +110,5 @@ const mapStateToProps = state => ({
export default connect(mapStateToProps, {})(MyBooks);
MyBooks.defaultProps = {
- list: [{name: 1}, {name: 2}, {name: 3}, {name: 4}, {name: 5}],
+ list: [{ name: 1 }, { name: 2 }, { name: 3 }, { name: 4 }, { name: 5 }],
};
diff --git a/src/screens/Home/components/Videos.js b/src/screens/Home/components/Videos.js
index 28e039e..c4c9765 100644
--- a/src/screens/Home/components/Videos.js
+++ b/src/screens/Home/components/Videos.js
@@ -24,11 +24,11 @@ const height = Dimensions.get('window').height;
function Videos({getList, list, grades}) {
return (
-
+
@@ -37,7 +37,8 @@ function Videos({getList, list, grades}) {
horizontal={true}
inverted={true}
data={list}
- renderItem={(video, index) => }
+ renderItem={(item) => }
+ keyExtractor={item => item.name}
/>
@@ -52,22 +53,22 @@ const Video = ({book, grades}) => {
style={[
tw('rounded-md'),
{
- height: 180,
- width: 114,
+ height: 160,
+ width: 110,
},
]}
/>
{'نام کتاب'}
{`پایه ${'اول'}`}
diff --git a/src/screens/Home/index.js b/src/screens/Home/index.js
index 9e04a47..0764b10 100644
--- a/src/screens/Home/index.js
+++ b/src/screens/Home/index.js
@@ -23,7 +23,7 @@ function Home(props) {
return (
diff --git a/src/screens/Login/assets/logo.png b/src/screens/Login/assets/logo.png
new file mode 100644
index 0000000..035ccf2
Binary files /dev/null and b/src/screens/Login/assets/logo.png differ
diff --git a/src/screens/Login/index.js b/src/screens/Login/index.js
index 6b88815..63ead7b 100644
--- a/src/screens/Login/index.js
+++ b/src/screens/Login/index.js
@@ -1,129 +1,132 @@
-import React, {useState} from 'react';
-import {View, Text, Image, ActivityIndicator, Dimensions, TextInput, TouchableHighlight} from 'react-native';
-import Logo from '../../assets/images/logo.png';
-import IranFlag from "./components/IranFlag";
-import {digitToEn, digitToPersian} from "../../utils";
+import React, { useState } from "react";
+import {
+ View,
+ Text,
+ Image,
+ ActivityIndicator,
+ Dimensions,
+ TextInput,
+ TouchableHighlight,
+} from "react-native";
+import Logo from "./assets/logo.png";
+import CustomTextInput from "../../components/CustomTextInput";
+import { digitToEn, digitToPersian } from "../../utils";
import services from "./services";
-import {asyncAwesomeAlert} from "../../utils/AsyncWrappers";
+import { asyncAwesomeAlert } from "../../utils/AsyncWrappers";
+import tw from "tailwind-rn";
-const {width, height} = Dimensions.get('window');
-let faNums = ['۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹', '۰']
+const { width, height } = Dimensions.get("window");
+let faNums = ["۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹", "۰"];
function Login(props) {
+ const [phone, setPhone] = useState("");
+ const [loading, setLoading] = useState(false);
- const [phone, setPhone] = useState('');
- const [loading, setLoading] = useState(false)
-
- const onChangePhone = (value) => {
- let items = digitToPersian(value).split('');
+ const onChangePhone = (name, value) => {
+ let items = digitToPersian(value).split("");
for (let item of items) {
if (!faNums.includes(item)) {
- return
+ return;
}
}
setPhone(digitToPersian(value));
- }
+ };
const checkPhoneNumber = () => {
- return phone.split('').length === 9;
- }
+ return phone.split("").length === 11;
+ };
const submit = async () => {
- setLoading(true)
- if (!checkPhoneNumber()) {
- setLoading(false)
- return asyncAwesomeAlert('خطا', 'شماره وارد شده اشتباه است', {showCancelButton: false});
- }
- let res = await services.getSmsCode({
- cellphone: '09' + digitToEn(phone)
- })
- if (res.ok) {
- setLoading(false)
- props.navigation.navigate('Otp', {phone: '09' + digitToEn(phone)});
- }
- setLoading(false)
- }
+ setLoading(true);
+ // if (!checkPhoneNumber()) {
+ // setLoading(false);
+ // return asyncAwesomeAlert("خطا", "شماره وارد شده اشتباه است", {
+ // showCancelButton: false,
+ // });
+ // }
+ // let res = await services.getSmsCode({
+ // cellphone: digitToEn(phone),
+ // });
+ // if (res.ok) {
+ // setLoading(false);
+ props.navigation.navigate("Otp", { phone: digitToEn(phone) });
+ // }
+ setLoading(false);
+ };
return (
-
-
- {'دانوین'}
- {'به دانوین خوش اومدی برای عضویت و ادامه شماره موبایلت رو وارد کن و روی گزینه ثبت بزن'}
-
-
-
- {'۰۹'}
-
-
+
+
+ {"سلام"}
+
+ {/*
+ {
+ "به دانوین خوش اومدی برای عضویت و ادامه شماره موبایلت رو وارد کن و روی گزینه ثبت بزن"
+ }
+ */}
+
+ onChangePhone(text)}
+ onChange={onChangePhone}
+ autoFocus={true}
/>
submit()}>
- {loading ?
-
- :
-
- {'ادامه'}
+ style={[
+ tw("w-full py-2 rounded-md"),
+ {
+ backgroundColor: "#196EC0",
+ alignItems: "center",
+ justifyContent: "center",
+ marginTop: 15,
+ fontFamily: "light",
+ },
+ ]}
+ onPress={() => submit()}
+ >
+ {loading ? (
+
+ ) : (
+
+ {"ادامه"}
- }
+ )}
);
diff --git a/src/screens/OrderDetails/index.js b/src/screens/OrderDetails/index.js
index dedcf35..80d39e1 100644
--- a/src/screens/OrderDetails/index.js
+++ b/src/screens/OrderDetails/index.js
@@ -135,7 +135,7 @@ function OrderDetails({order}) {
این کد را پس از دریافت کالا، به مامور ارسال دانوین اعلام فرمایید
-
+
{order.items.map((item, index) => (
))}
diff --git a/src/screens/Otp/index.js b/src/screens/Otp/index.js
index c8651d9..f2f8ba7 100644
--- a/src/screens/Otp/index.js
+++ b/src/screens/Otp/index.js
@@ -1,4 +1,4 @@
-import React, {useEffect, useState} from 'react'
+import React, { useEffect, useState } from "react";
import {
View,
Text,
@@ -9,17 +9,18 @@ import {
StyleSheet,
TouchableOpacity,
ActivityIndicator,
- AsyncStorage
-} from 'react-native';
-import {connect} from 'react-redux';
-import Logo from "../../assets/images/logo.png";
+} from "react-native";
+import tw from "tailwind-rn";
+import AsyncStorage from "@react-native-async-storage/async-storage";
+import { connect } from "react-redux";
+import Logo from "../Login/assets/logo.png";
import IranFlag from "../Login/components/IranFlag";
-import {digitToEn, digitToPersian} from "../../utils";
+// import { digitToEn, digitToPersian } from "../../utils";
import services from "./services";
-import {buildAction} from "../../reducers/DefaultReducer";
-import {PROFILE_RECORD} from "../../actions/actionTypes";
+import { buildAction } from "../../reducers/DefaultReducer";
+import { PROFILE_RECORD } from "../../actions/actionTypes";
-const {width} = Dimensions.get('window')
+const { width } = Dimensions.get("window");
let ref1;
let ref2;
let ref3;
@@ -27,189 +28,222 @@ let ref4;
let timer = 60;
-const mapStateToProps = state => {
+const mapStateToProps = (state) => {
return {
profile: state.profile,
- }
-}
+ };
+};
function Otp(props) {
- let faNums = ['۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹', '۰']
+ let faNums = ["۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹", "۰"];
- const [firstCode, setFirstCode] = useState('');
- const [secondCode, setSecondCode] = useState('');
- const [thirdCode, setThirdCode] = useState('');
- const [fourthCode, setFourthCode] = useState('');
+ const [firstCode, setFirstCode] = useState("");
+ const [secondCode, setSecondCode] = useState("");
+ const [thirdCode, setThirdCode] = useState("");
+ const [fourthCode, setFourthCode] = useState("");
const [time, setTime] = useState(60);
const [loading, setLoading] = useState(false);
const checkValue = (value) => {
return faNums.includes(digitToPersian(value));
- }
+ };
const onChangeCode = (value, key) => {
// if (!checkValue()) {
// return
// }
switch (key) {
- case '1':
- setFirstCode(digitToPersian(value));
- ref2.focus();
+ case "1":
+ setFirstCode(value);
+ if(value !== ''){
+ ref2.focus();
+ }
break;
- case '2':
- setSecondCode(digitToPersian(value));
- ref3.focus();
+ case "2":
+ setSecondCode(value);
+ if(value !== ''){
+ ref3.focus();
+ }else{
+ ref1.focus();
+ }
break;
- case '3':
- setThirdCode(digitToPersian(value));
- ref4.focus();
+ case "3":
+ setThirdCode(value);
+ if(value !== ''){
+ ref4.focus();
+ }else{
+ ref2.focus();
+ }
break;
- case '4':
- setFourthCode(digitToPersian(value))
- submit();
+ case "4":
+ setFourthCode(value);
+ if(value !== ''){
+ // ref3.focus();
+ }else{
+ ref3.focus();
+ }
+ // submit();
break;
}
- }
+ };
const getEnCode = () => {
- return Number(digitToEn(firstCode) + digitToEn(secondCode) + digitToEn(thirdCode) + digitToEn(fourthCode))
- }
+ return Number(
+ digitToEn(firstCode) +
+ digitToEn(secondCode) +
+ digitToEn(thirdCode) +
+ digitToEn(fourthCode)
+ );
+ };
const submit = async () => {
- setLoading(true)
+ setLoading(true);
let res = await services.sendOtpCode({
cellphone: props.route.params.phone,
otp: String(getEnCode()),
applicationToken: "1",
- userToken: "1"
- })
+ userToken: "1",
+ });
if (res.ok) {
- setLoading(false)
- await AsyncStorage.setItem('accessToken', res.data.accessToken);
- await AsyncStorage.setItem('refreshToken', res.data.refreshToken);
+ setLoading(false);
+ await AsyncStorage.setItem("accessToken", res.data.accessToken);
+ await AsyncStorage.setItem("refreshToken", res.data.refreshToken);
let action = buildAction(PROFILE_RECORD);
- await props.dispatch(action({
- accessToken: res.data.accessToken,
- refreshToken: res.data.refreshToken,
- ...res.data.profile,
- }))
+ await props.dispatch(
+ action({
+ accessToken: res.data.accessToken,
+ refreshToken: res.data.refreshToken,
+ ...res.data.profile,
+ })
+ );
props.navigation.reset({
index: 0,
- routes: [{name: 'Home'}]
- })
+ routes: [{ name: "Home" }],
+ });
}
- setLoading(false)
- }
+ setLoading(false);
+ };
useEffect(() => {
- let interval = setInterval(() => {
- if (time > 0) {
- setTime(timer - 1);
- timer -= 1;
- }
- }, 1000);
- let timeout = setTimeout(() => {
- clearInterval(interval)
- }, 60000)
- return () => {
- clearInterval(interval);
- clearTimeout(timeout)
- }
+ // let interval = setInterval(() => {
+ // if (time > 0) {
+ // setTime(timer - 1);
+ // timer -= 1;
+ // }
+ // }, 1000);
+ // let timeout = setTimeout(() => {
+ // clearInterval(interval)
+ // }, 60000)
+ // return () => {
+ // clearInterval(interval);
+ // clearTimeout(timeout)
+ // }
}, []);
return (
-
-
- {'دانوین'}
- {`یک کد تائیدیه به شماره ${props.route.params.phone} ارسال شد. آن را در قسمت زیر وارد کنید`}
-
+
+
+ {`یک کد تائیدیه به شماره ${props.route.params.phone} ارسال شد. آن را در قسمت زیر وارد کنید`}
+
ref1 = ref}
- onChangeText={text => onChangeCode(text, '1')}
+ ref={(ref) => (ref1 = ref)}
+ onChangeText={(text) => onChangeCode(text, "1")}
/>
ref2 = ref}
- onChangeText={text => onChangeCode(text, '2')}
+ ref={(ref) => (ref2 = ref)}
+ onChangeText={(text) => onChangeCode(text, "2")}
/>
ref3 = ref}
- onChangeText={text => onChangeCode(text, '3')}
+ ref={(ref) => (ref3 = ref)}
+ onChangeText={(text) => onChangeCode(text, "3")}
/>
ref4 = ref}
- onChangeText={text => onChangeCode(text, '4')}
+ ref={(ref) => (ref4 = ref)}
+ onChangeText={(text) => onChangeCode(text, "4")}
/>
submit()}>
- {loading ?
- :
-
- {'ثبت'}
+ style={[
+ tw("w-full rounded-md py-2 mt-6 items-center justify-center"),
+ {
+ backgroundColor: "#196EC0",
+ },
+ ]}
+ onPress={() => submit()}
+ >
+ {loading ? (
+
+ ) : (
+
+ {"ثبت"}
- }
+ )}
-
- {'زمان باقی مانده تا انقضای کد: ' + time}
+
+ {"زمان باقی مانده تا انقضای کد: " + time}
{
props.navigation.reset({
index: 0,
- routes: [{ name: 'Login' }],
+ routes: [{ name: "Login" }],
});
- }}>
-
- {'بازگشت به مرحله قبل و اصلاح شماره'}
+ }}
+ >
+
+ {"بازگشت به مرحله قبل و اصلاح شماره"}
- )
+ );
}
-const styles = StyleSheet.create({
- input: {
- width: width / 13 * 2,
- height: width / 16 * 2,
- backgroundColor: '#a2a2a2',
- color: '#000',
- fontSize: 22,
- borderRadius: 8,
- textAlign: 'center'
- }
-})
-
export default connect(mapStateToProps)(Otp);
diff --git a/src/screens/Product/components/Book.js b/src/screens/Product/components/Book.js
index 725cfff..b625c62 100644
--- a/src/screens/Product/components/Book.js
+++ b/src/screens/Product/components/Book.js
@@ -1,5 +1,5 @@
-import {t} from 'i18next';
-import React from 'react';
+import { t } from "i18next";
+import React from "react";
import {
View,
Text,
@@ -7,160 +7,176 @@ import {
Dimensions,
ScrollView,
Pressable,
-} from 'react-native';
-import CustomPressable from '../../../components/Pressable';
-import Description from './Description';
-import LinkBox from './LinkBox';
-import Comments from './Comments';
-import Rates from './Rates';
-import tw from 'tailwind-react-native-classnames';
-import arrowMoreIcon from '../assets/arrowMore.png';
+} from "react-native";
+import { Entypo } from '@expo/vector-icons';
+import CustomPressable from "../../../components/Pressable";
+import Description from "./Description";
+import LinkBox from "./LinkBox";
+import Comments from "./Comments";
+import Rates from "./Rates";
+import tw from "tailwind-react-native-classnames";
-const width = Dimensions.get('window').width;
-const height = Dimensions.get('window').height;
+const width = Dimensions.get("window").width;
+const height = Dimensions.get("window").height;
-export default function Book({product}) {
+export default function Book({ product }) {
return (
-
-
-
+
+
+
-
+ ]}
+ >
+
+ fontFamily: "bold",
+ }}
+ >
{product.name}
-
+
{product.grade}
+ tw.style("text-right w-full"),
+ { color: "#323232", fontSize: width / 38, fontFamily: "light" },
+ ]}
+ >
{product.text}
+ "flex flex-row-reverse items-center justify-around py-6"
+ )}
+ >
- {' '}
- {473 + '\n' + 'صفحه'}
+ color: "#196EC0",
+ textAlign: "center",
+ fontSize: width / 37,
+ fontFamily: "light",
+ }}
+ >
+ {" "}
+ {473 + "\n" + "صفحه"}
+ style={{ backgroundColor: "#196EC055", height: 20, width: 2 }}
+ >
- {' '}
- {'فیزیکی- دیجیتالی - ویدئو' + '\n' + 'در دسترس'}
+ color: "#196EC0",
+ textAlign: "center",
+ fontSize: width / 37,
+ fontFamily: "light",
+ }}
+ >
+ {" "}
+ {"فیزیکی- دیجیتالی - ویدئو" + "\n" + "در دسترس"}
+ style={{ backgroundColor: "#196EC055", height: 20, width: 2 }}
+ >
- {' '}
- {4.8 + '\n' + 'امتیاز'}
+ color: "#196EC0",
+ textAlign: "center",
+ fontSize: width / 37,
+ fontFamily: "light",
+ }}
+ >
+ {" "}
+ {4.8 + "\n" + "امتیاز"}
-
+
+ tw.style("w-full text-right font-medium"),
+ { color: "#196EC0", fontSize: width / 36, fontFamily: "regular" },
+ ]}
+ >
نسخه محصول را انتخاب کنید
-
+
+ style={tw.style("flex flex-row-reverse justify-between flex-wrap py-3")}
+ >
-
-
+ { backgroundColor: "#196EC01a" },
+ ]}
+ >
+
+ style={[
+ tw.style(""),
+ { color: "#275077", fontSize: width / 36, fontFamily: "light" },
+ ]}
+ >
مشاهده دوره ویدئویی این محصول
@@ -171,19 +187,15 @@ export default function Book({product}) {
+ "flex flex-row-reverse justify-between items-center my-6"
+ )}
+ >
+ style={[{ fontSize: width / 36, color: "#275077", fontFamily: "regular"}, tw.style("")]}
+ >
امتیازات و نظرات
-
+
diff --git a/src/screens/Product/components/Comments.js b/src/screens/Product/components/Comments.js
index b2e904c..c887d45 100644
--- a/src/screens/Product/components/Comments.js
+++ b/src/screens/Product/components/Comments.js
@@ -1,59 +1,82 @@
-import React from 'react';
-import {View, Text, ScrollView, Image, Dimensions} from 'react-native';
-import tw from 'tailwind-react-native-classnames';
+import React from "react";
+import { View, Text, FlatList, Image, Dimensions } from "react-native";
+import tw from "tailwind-rn";
-const width = Dimensions.get('window').width;
+const width = Dimensions.get("window").width;
-export default function Commnets({comments}) {
+export default function Commnets({ comments }) {
+ console.log(comments);
return (
-
- {comments.map((comment, index) => (
-
- ))}
-
+ }
+ keyExtractor={(item) => item.id}
+ />
);
}
-const Comment = ({comment}) => {
+const Comment = ({ comment }) => {
+ console.log(comment);
return (
-
-
+ tw("flex flex-col rounded-md p-4 ml-2"),
+ { width: width / 1.3, borderWidth: 1, borderColor: "#7070701a" },
+ ]}
+ >
+
+
+ { fontSize: width / 36, color: "#132F52", fontFamily: "bold" },
+ ,
+ ]}
+ >
{comment.name}
-
- 18:20
+
+
+ 18:20
+
-
+ }}
+ >
+
1400/08/19
+ { fontSize: width / 40, lineHeight: 20, color: "#132F52", fontFamily: "light",},
+ tw("mt-2"),
+ ]}
+ >
{comment.message}
diff --git a/src/screens/Product/components/Description.js b/src/screens/Product/components/Description.js
index 082c894..c9e9d06 100644
--- a/src/screens/Product/components/Description.js
+++ b/src/screens/Product/components/Description.js
@@ -1,7 +1,7 @@
import React from 'react';
import {View, Text, Dimensions, Image} from 'react-native';
import tw from 'tailwind-react-native-classnames';
-import arrowMoreIcon from '../assets/arrowMore.png';
+import {Entypo} from '@expo/vector-icons';
const width = Dimensions.get('window').width;
const height = Dimensions.get('window').height;
@@ -13,20 +13,17 @@ export default function Description({description}) {
style={tw.style('flex flex-row-reverse justify-between items-center mb-2')}>
توضیحات
-
+
{description}
diff --git a/src/screens/Product/components/LinkBox.js b/src/screens/Product/components/LinkBox.js
index 9f04945..0075d27 100644
--- a/src/screens/Product/components/LinkBox.js
+++ b/src/screens/Product/components/LinkBox.js
@@ -1,7 +1,7 @@
import React from 'react';
import {View, Text, Dimensions, Image} from 'react-native';
import tw from 'tailwind-react-native-classnames';
-import arrowMoreIcon from '../assets/arrowMore.png';
+import {Entypo} from '@expo/vector-icons';
const width = Dimensions.get('window').width;
const height = Dimensions.get('window').height;
@@ -10,22 +10,19 @@ export default function Description({title, path}) {
return (
{title}
-
+
);
}
diff --git a/src/screens/Product/components/Rates.js b/src/screens/Product/components/Rates.js
index 2a41ca6..752c162 100644
--- a/src/screens/Product/components/Rates.js
+++ b/src/screens/Product/components/Rates.js
@@ -14,12 +14,11 @@ export default function Rates({rates}) {
]}>
{rates.mid}
-
+
{'از' + ' ' + rates.allRates + ' ' + 'نفر'}
@@ -35,7 +34,7 @@ export default function Rates({rates}) {
const Progress = ({data}) => {
return (
- {data.name}
+ {data.name}
{
-
+
+
{/* */}
-
+
{product.name}
-
+
{product.grade}
{product.text}
@@ -87,7 +89,8 @@ export default function Video({product}) {
style={{
color: '#196EC0',
textAlign: 'center',
- fontSize: width / 27,
+ fontSize: width / 37,
+ fontFamily: 'light'
}}>
{' '}
{473 + '\n' + 'صفحه'}
@@ -100,7 +103,8 @@ export default function Video({product}) {
style={{
color: '#196EC0',
textAlign: 'center',
- fontSize: width / 27,
+ fontSize: width / 37,
+ fontFamily: 'light'
}}>
{' '}
{'فیزیکی- دیجیتالی - ویدئو' + '\n' + 'در دسترس'}
@@ -113,7 +117,8 @@ export default function Video({product}) {
style={{
color: '#196EC0',
textAlign: 'center',
- fontSize: width / 27,
+ fontSize: width / 37,
+ fontFamily: 'light'
}}>
{' '}
{4.8 + '\n' + 'امتیاز'}
@@ -123,16 +128,16 @@ export default function Video({product}) {
نسخه محصول را انتخاب کنید
-
+
-
+
+ style={[tw(''), {color: '#275077', fontSize: width / 36, fontFamily : 'light'}]}>
مشاهده دوره ویدئویی این محصول
@@ -185,20 +187,16 @@ export default function Video({product}) {
امتیازات و نظرات
-
+
diff --git a/src/screens/Product/index.js b/src/screens/Product/index.js
index d48bb75..b86cff9 100644
--- a/src/screens/Product/index.js
+++ b/src/screens/Product/index.js
@@ -16,7 +16,7 @@ import Navbar from "../../components/Navbar";
function Product({
product = {
- type: "ویدئوها",
+ type: "کتاب ها",
name: "ریاضی",
price: "145.000 تومان",
imageUrl: "https://dnvn.ir/api/v1/file/2105",
@@ -38,6 +38,7 @@ function Product({
},
comments: [
{
+ id: 0,
name: "سورنا عابدی",
imageUrl: userImage,
vote: 4,
@@ -46,6 +47,7 @@ function Product({
"خالد حسینی تو رمان باد بادک باز مینویسه : ﻣﺮﺩ ﺁﻫﺴﺘﻪ ﺩﺭ ﮔﻮﺵ ﻓﺮﺯﻧﺪ ﺗﺎﺯﻩ ﺑﻪ ﺑﻠﻮﻍ ﺭﺳﯿﺪﻩ ﺍﺵ ﺑﺮﺍﯼ ﭘﻨﺪ ﭼﻨﯿﻦ ﻧﺠﻮﺍ ﮐﺮﺩ : ” ﭘﺴﺮﻡ ﺩﺭ ﺯﻧﺪﮔﯽ ﻫﺮﮔﺰ ﺩﺯﺩﯼ ﻧﮑﻦ ” ﭘﺴﺮ ﻣﺘﻌﺠﺐ ﻭ ﻣﺒﻬﻮﺕ ﺑﻪ ﭘﺪﺭ ﻧﮕﺎﻩ ﮐﺮﺩ ﺑﺪﯾﻦ ﻣﻌﻨﺎ ﮐﻪ ﺍﻭ ﻫﺮﮔﺰ ﺩﺳﺖ ﮐﺞ ﻧﺪﺍﺷﺘﻪ ﭘﺪﺭ ﺑﻪ ﻧﮕﺎﻩ ﻣﺘﻌﺠﺐ ﻓﺮﺯﻧﺪ ﻟﺒﺨﻨﺪﯼ ﺯﺩ ﻭ ﺍﺩﺍﻣﻪ ",
},
{
+ id : 1,
name: "سورنا عابدی",
imageUrl: userImage,
vote: 4,
diff --git a/src/screens/Products/components/Book.js b/src/screens/Products/components/Book.js
index e1e64ab..d7aeffd 100644
--- a/src/screens/Products/components/Book.js
+++ b/src/screens/Products/components/Book.js
@@ -1,16 +1,16 @@
-import React from 'react';
-import {View, Image, Text, Dimensions, Pressable} from 'react-native';
-import { useNavigation } from '@react-navigation/native';
-import tw from 'tailwind-react-native-classnames';
-const width = Dimensions.get('window').width;
-const height = Dimensions.get('window').height;
+import React from "react";
+import { View, Image, Text, Dimensions, Pressable } from "react-native";
+import { useNavigation } from "@react-navigation/native";
+import tw from "tailwind-react-native-classnames";
+const width = Dimensions.get("window").width;
+const height = Dimensions.get("window").height;
function Book({
item = {
- name: 'ریاضی',
- price: '145.000 تومان',
- grade : '4',
- imageUrl: 'https://dnvn.ir/api/v1/file/2105',
+ name: "ریاضی",
+ price: "145.000 تومان",
+ grade: "4",
+ imageUrl: "https://dnvn.ir/api/v1/file/2105",
},
}) {
const navigation = useNavigation();
@@ -25,21 +25,37 @@ function Book({
// shadowOpacity : 1,
marginBottom: 15,
borderWidth: 1,
- borderColor: '#ddd',
+ borderColor: "#ddd",
},
- tw.style('flex flex-col items-end p-2 rounded-md'),
+ tw.style("flex flex-col items-end p-2 rounded-md"),
]}
- onPress={() => navigation.navigate('Product')}
- >
+ onPress={() => navigation.navigate("Product")}
+ >
-
+
{item.name}
- {'پایه' + ' ' + item.grade }
- {item.price}
+
+ {"پایه" + " " + item.grade}
+
+
+ {item.price}
+
);
}
diff --git a/src/screens/Products/components/Video.js b/src/screens/Products/components/Video.js
index 2385f38..c07f6b6 100644
--- a/src/screens/Products/components/Video.js
+++ b/src/screens/Products/components/Video.js
@@ -54,11 +54,18 @@ function Video({
source={{ uri: item.imageUrl }}
style={[
tw.style("rounded-md h-full absolute left-2 bottom-2 rounded-md"),
- { width: width / 5, height: height / 7 },
+ { width: 70, height: 100 },
]}
/>
-
+
{item.name}
@@ -67,13 +74,25 @@ function Video({
>
{item.price}
-
+
{"پایه" + " " + item.grade}
diff --git a/src/screens/QR/Content/index.js b/src/screens/QR/Content/index.js
index f47e906..d651d26 100644
--- a/src/screens/QR/Content/index.js
+++ b/src/screens/QR/Content/index.js
@@ -15,7 +15,7 @@ export default function Content({data}) {
source={{uri: 'https://dnvn.ir/api/v1/file/2094'}}
style={{width: 80, height: 120}}
/>
-
+
{data.name}
{data.grade}
{`شما در حال مشاهده `}
diff --git a/src/screens/QR/index.js b/src/screens/QR/index.js
index e20b304..00ddf60 100644
--- a/src/screens/QR/index.js
+++ b/src/screens/QR/index.js
@@ -48,9 +48,9 @@ function QR({ data }) {
style={[tw.style("rounded"), { width: width / 5, height: 120 }]}
/>
-
+
{data.name}
- ثبت کد
+ ثبت کد
diff --git a/src/screens/ShoppingCart/components/Product.js b/src/screens/ShoppingCart/components/Product.js
index ed19749..288f41e 100644
--- a/src/screens/ShoppingCart/components/Product.js
+++ b/src/screens/ShoppingCart/components/Product.js
@@ -1,87 +1,116 @@
-import React from 'react';
-import {View, Text, Image, Dimensions, Pressable} from 'react-native';
-import tw from 'tailwind-react-native-classnames';
-import bookImage from '../assets/book.png';
-import deleteIcon from '../assets/delete.png';
-import plusIcon from '../assets/+.png';
-import minus from '../assets/_.png';
+import React from "react";
+import { View, Text, Image, Dimensions, Pressable } from "react-native";
+import { AntDesign } from "@expo/vector-icons";
+import tw from "tailwind-react-native-classnames";
+import bookImage from "../assets/book.png";
+import deleteIcon from "../assets/delete.png";
-const width = Dimensions.get('window').width;
-const height = Dimensions.get('window').height;
+const width = Dimensions.get("window").width;
+const height = Dimensions.get("window").height;
-export default function Product({product}) {
+export default function Product({ product }) {
return (
-
+ tw.style("flex flex-row-reverse justify-between py-2"),
+ { borderBottomWidth: 1, borderColor: "#7070701a", direction: "rtl" },
+ ]}
+ >
+
-
+
+ style={{
+ fontSize: width / 31,
+ color: "#05335F",
+ marginBottom: 5,
+ fontFamily: "bold",
+ }}
+ >
علوم اجتماعی
+ style={{
+ fontSize: width / 36,
+ color: "#707070",
+ marginBottom: 5,
+ fontFamily: "light",
+ }}
+ >
پایه دوم
-
+
نسخه فیزیکی
-
-
-
-
+
+
+
+
- +
+ ]}
+ >
+
+ +
+
+ ]}
+ >
1
+ ]}
+ >
+ fontSize: width / 24,
+ color: "#DBDBDB",
+ fontFamily: "light",
+ }}
+ >
-
-
+
145.000
diff --git a/src/screens/ShoppingCart/index.js b/src/screens/ShoppingCart/index.js
index c15cc1e..f2e73ff 100644
--- a/src/screens/ShoppingCart/index.js
+++ b/src/screens/ShoppingCart/index.js
@@ -10,12 +10,12 @@ import {
SafeAreaView,
StatusBar,
} from "react-native";
+import { Ionicons } from '@expo/vector-icons';
import Product from "./components/Product";
import Code from "./components/Code";
import CustomPressable from "../../components/Pressable";
import Navbar from "../../components/Navbar";
import tw from "tailwind-react-native-classnames";
-import alertIcon from "./assets/alert.png";
import { connect } from "react-redux";
@@ -26,18 +26,19 @@ const PriceStatus = ({ name, value, type }) => {
{name}
@@ -85,13 +86,13 @@ function ShoppingCart({}) {
"flex flex-row-reverse justify-between items-center w-full py-3"
)}
>
-
+
جمع کل سبد خرید
235.000 تومان
@@ -100,20 +101,17 @@ function ShoppingCart({}) {
هزینه ارسال کالا پس از تعیین محل آدرس مشخص میشود
-
+
{
+const mapStateToProps = (state) => {
return {
- profile: state.profile
- }
-}
-
-function Splash({navigation, profile}) {
+ profile: state.profile,
+ };
+};
+function Splash({ navigation, profile }) {
useEffect(() => {
setTimeout(() => {
- !profile.accessToken ? navigation.reset({
- index: 0,
- routes: [{ name: 'Login' }],
- }) : navigation.reset({
- index: 0,
- routes: [{ name: 'Home' }],
- })
- }, 2000)
- }, [profile])
+ // !profile.accessToken ? navigation.reset({
+ 1
+ ? navigation.reset({
+ index: 0,
+ routes: [{ name: "Login" }],
+ })
+ : navigation.reset({
+ index: 0,
+ routes: [{ name: "Home" }],
+ });
+ }, 2000);
+ }, [profile]);
return (
-
-
-
+
+
+
- )
+ );
}
export default connect(mapStateToProps)(Splash);
diff --git a/yarn-error.log b/yarn-error.log
index db87696..bea3b9c 100644
--- a/yarn-error.log
+++ b/yarn-error.log
@@ -1,5 +1,5 @@
Arguments:
- /opt/homebrew/Cellar/node/17.0.1/bin/node /usr/local/bin/yarn add react-native-permisson
+ /opt/homebrew/Cellar/node/17.0.1/bin/node /usr/local/bin/yarn add @react-navigation/draweryarn add react-native-reanimated
PATH:
/Library/Frameworks/Python.framework/Versions/3.10/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/reza/Library/Android/sdk/emulator:/Users/reza/Library/Android/sdk/tools:/Users/reza/Library/Android/sdk/tools/bin:/Users/reza/Library/Android/sdk/platform-tools:/Users/reza/Library/Android/sdk/emulator:/Users/reza/Library/Android/sdk/tools:/Users/reza/Library/Android/sdk/tools/bin:/Users/reza/Library/Android/sdk/platform-tools
@@ -14,7 +14,7 @@ Platform:
darwin arm64
Trace:
- Error: https://registry.yarnpkg.com/react-native-permisson: Not found
+ Error: https://registry.yarnpkg.com/@react-navigation%2fdraweryarn: Not found
at Request.params.callback [as _callback] (/usr/local/lib/node_modules/yarn/lib/cli.js:67029:18)
at Request.self.callback (/usr/local/lib/node_modules/yarn/lib/cli.js:140883:22)
at Request.emit (node:events:390:28)
@@ -39,22 +39,27 @@ npm manifest:
"eject": "expo eject"
},
"dependencies": {
+ "@expo-google-fonts/noto-sans": "^0.2.0",
"@react-native-async-storage/async-storage": "~1.15.0",
"@react-navigation/bottom-tabs": "^6.0.9",
+ "@react-navigation/drawer": "^6.1.8",
"@react-navigation/native": "^6.0.6",
"@react-navigation/native-stack": "^6.2.5",
- "expo": "~44.0.0",
+ "expo": "^44.0.1",
+ "expo-app-loading": "~1.3.0",
+ "expo-barcode-scanner": "~11.2.0",
"expo-camera": "~12.1.0",
"expo-device": "~4.1.0",
+ "expo-font": "^10.0.4",
"expo-status-bar": "~1.2.0",
"i18next": "^21.6.3",
+ "install": "^0.13.0",
"lodash": "^4.17.21",
"react": "17.0.1",
"react-dom": "17.0.1",
"react-i18next": "^11.15.1",
"react-native": "0.64.3",
"react-native-awesome-alerts": "^1.5.2",
- "react-native-camera": "^4.2.1",
"react-native-qrcode-scanner": "^1.5.4",
"react-native-restart": "^0.0.22",
"react-native-safe-area-context": "3.3.2",
@@ -1132,6 +1137,11 @@ Lockfile:
exec-sh "^0.3.2"
minimist "^1.2.0"
+ "@expo-google-fonts/noto-sans@^0.2.0":
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/@expo-google-fonts/noto-sans/-/noto-sans-0.2.0.tgz#e5bb0d73235e963d318d38b859c3470aa197ab58"
+ integrity sha512-Qk9goIvIQxAF0FRHSpw63smmp0uGBKmcRdhIqI4SvJNYEomQzH/Xzy5MA5MJanh/UhYx9KnyaidSH6FiJLLXeg==
+
"@expo/config-plugins@4.0.15", "@expo/config-plugins@^4.0.2":
version "4.0.15"
resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-4.0.15.tgz#cc170a0cf890973b6491cf357540e9955296019c"
@@ -1180,15 +1190,15 @@ Lockfile:
resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-43.0.1.tgz#3e047dccb371741a540980eaff26fb0c95039c30"
integrity sha512-EtllpCGDdB/UdwAIs5YXJwBLpbFQNdlLLrxIvoILA9cXrpQMWkeDCT9lQPJzFRMFcLUaMuGvkzX2tR4tx5EQFQ==
- "@expo/config@6.0.6":
- version "6.0.6"
- resolved "https://registry.yarnpkg.com/@expo/config/-/config-6.0.6.tgz#64b49b93f07cb046f5a8538a1793bef9070d8d52"
- integrity sha512-GPI8EIdMAtZ5VaB4p5GcfuX50xyfGFdpEqLi0QmcfrCfTsGry1/j/Qy28hovHM1oJYHlaZylTcbGy+1ET+AO2w==
+ "@expo/config@6.0.15", "@expo/config@^6.0.6":
+ version "6.0.15"
+ resolved "https://registry.yarnpkg.com/@expo/config/-/config-6.0.15.tgz#aa610f8b714e0b1103e13c8210059519479d11d6"
+ integrity sha512-nrG+OUe/2n3ulNSgHRs9V70zXu3lpkuzJ6F0VmCuhjyHqT7UYimkgSCJGqaE3N+AayBTK+YffOT6bTWH17wxjQ==
dependencies:
"@babel/code-frame" "~7.10.4"
- "@expo/config-plugins" "4.0.6"
+ "@expo/config-plugins" "4.0.15"
"@expo/config-types" "^43.0.1"
- "@expo/json-file" "8.2.33"
+ "@expo/json-file" "8.2.34"
getenv "^1.0.0"
glob "7.1.6"
require-from-string "^2.0.2"
@@ -1197,15 +1207,15 @@ Lockfile:
slugify "^1.3.4"
sucrase "^3.20.0"
- "@expo/config@^6.0.6":
- version "6.0.15"
- resolved "https://registry.yarnpkg.com/@expo/config/-/config-6.0.15.tgz#aa610f8b714e0b1103e13c8210059519479d11d6"
- integrity sha512-nrG+OUe/2n3ulNSgHRs9V70zXu3lpkuzJ6F0VmCuhjyHqT7UYimkgSCJGqaE3N+AayBTK+YffOT6bTWH17wxjQ==
+ "@expo/config@6.0.6":
+ version "6.0.6"
+ resolved "https://registry.yarnpkg.com/@expo/config/-/config-6.0.6.tgz#64b49b93f07cb046f5a8538a1793bef9070d8d52"
+ integrity sha512-GPI8EIdMAtZ5VaB4p5GcfuX50xyfGFdpEqLi0QmcfrCfTsGry1/j/Qy28hovHM1oJYHlaZylTcbGy+1ET+AO2w==
dependencies:
"@babel/code-frame" "~7.10.4"
- "@expo/config-plugins" "4.0.15"
+ "@expo/config-plugins" "4.0.6"
"@expo/config-types" "^43.0.1"
- "@expo/json-file" "8.2.34"
+ "@expo/json-file" "8.2.33"
getenv "^1.0.0"
glob "7.1.6"
require-from-string "^2.0.2"
@@ -1214,6 +1224,37 @@ Lockfile:
slugify "^1.3.4"
sucrase "^3.20.0"
+ "@expo/configure-splash-screen@^0.6.0":
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/@expo/configure-splash-screen/-/configure-splash-screen-0.6.0.tgz#07d97ee512fd859fcc09506ba3762fd6263ebc39"
+ integrity sha512-4DyPoNXJqx9bN4nEwF3HQreo//ECu7gDe1Xor3dnnzFm9P/VDxAKdbEhA0n+R6fgkNfT2onVHWijqvdpTS3Xew==
+ dependencies:
+ color-string "^1.5.3"
+ commander "^5.1.0"
+ fs-extra "^9.0.0"
+ glob "^7.1.6"
+ lodash "^4.17.15"
+ pngjs "^5.0.0"
+ xcode "^3.0.0"
+ xml-js "^1.6.11"
+
+ "@expo/image-utils@0.3.18":
+ version "0.3.18"
+ resolved "https://registry.yarnpkg.com/@expo/image-utils/-/image-utils-0.3.18.tgz#36a41ab2925974ac5707e02cb0d3694349140497"
+ integrity sha512-77/ub2aGuf7SYfaFhvCHE54Hs/jRuU5j+pemS5seLfVHNwHbJSse91TMhsTLLNz3GwwqTxFVe3KMycSccJ73nA==
+ dependencies:
+ "@expo/spawn-async" "1.5.0"
+ chalk "^4.0.0"
+ fs-extra "9.0.0"
+ getenv "^1.0.0"
+ jimp-compact "0.16.1"
+ mime "^2.4.4"
+ node-fetch "^2.6.0"
+ parse-png "^2.1.0"
+ resolve-from "^5.0.0"
+ semver "7.3.2"
+ tempy "0.3.0"
+
"@expo/json-file@8.2.33":
version "8.2.33"
resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-8.2.33.tgz#78f56f33a2cfb807b23c81e00237a33159aa1f32"
@@ -1261,11 +1302,35 @@ Lockfile:
base64-js "^1.2.3"
xmlbuilder "^14.0.0"
+ "@expo/prebuild-config@^3.0.15":
+ version "3.0.15"
+ resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-3.0.15.tgz#bfc920bdbd01ab4d785cbf64c3a9deb74a6bb6a4"
+ integrity sha512-fP35AajhPIyUoqexTCxjcfSLZwK4OeedLZbxgUb32+k5kl1b7uSbmdAMtGHfLgnI18Mhk2QprerXOMK4zxo9mQ==
+ dependencies:
+ "@expo/config" "6.0.15"
+ "@expo/config-plugins" "4.0.15"
+ "@expo/config-types" "^43.0.1"
+ "@expo/image-utils" "0.3.18"
+ "@expo/json-file" "8.2.34"
+ debug "^4.3.1"
+ expo-modules-autolinking "~0.5.1"
+ fs-extra "^9.0.0"
+ resolve-from "^5.0.0"
+ semver "7.3.2"
+ xml2js "0.4.23"
+
"@expo/sdk-runtime-versions@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz#d7ebd21b19f1c6b0395e50d78da4416941c57f7c"
integrity sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==
+ "@expo/spawn-async@1.5.0":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@expo/spawn-async/-/spawn-async-1.5.0.tgz#799827edd8c10ef07eb1a2ff9dcfe081d596a395"
+ integrity sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==
+ dependencies:
+ cross-spawn "^6.0.5"
+
"@expo/vector-icons@^12.0.4":
version "12.0.5"
resolved "https://registry.yarnpkg.com/@expo/vector-icons/-/vector-icons-12.0.5.tgz#bc508ad05fb7e9a3e008704977cfec6c18aa7728"
@@ -1507,6 +1572,15 @@ Lockfile:
query-string "^7.0.0"
react-is "^16.13.0"
+ "@react-navigation/drawer@^6.1.8":
+ version "6.1.8"
+ resolved "https://registry.yarnpkg.com/@react-navigation/drawer/-/drawer-6.1.8.tgz#82e2a06d17166a82dd18233678ebf63ed523aaab"
+ integrity sha512-kYE2EO5dianUuUcaYmAlYBcgtmvGm2fxWTQ5sn103cgPNidp4KBUR9ClkhF+btfRaHKq+8Ul5M6qvL0mBAv/Lg==
+ dependencies:
+ "@react-navigation/elements" "^1.2.1"
+ color "^3.1.3"
+ warn-once "^0.1.0"
+
"@react-navigation/elements@^1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@react-navigation/elements/-/elements-1.2.1.tgz#86f19781c6f34a5c9dd25dca99915e0306f477d1"
@@ -2303,7 +2377,7 @@ Lockfile:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
- color-string@^1.6.0, color-string@^1.9.0:
+ color-string@^1.5.3, color-string@^1.6.0, color-string@^1.9.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa"
integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==
@@ -2352,6 +2426,11 @@ Lockfile:
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
+ commander@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
+ integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
+
commander@^7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
@@ -2494,6 +2573,11 @@ Lockfile:
shebang-command "^1.2.0"
which "^1.2.9"
+ crypto-random-string@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
+ integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=
+
css-color-keywords@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05"
@@ -2814,6 +2898,13 @@ Lockfile:
snapdragon "^0.8.1"
to-regex "^3.0.1"
+ expo-app-loading@~1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/expo-app-loading/-/expo-app-loading-1.3.0.tgz#2023f11e1420d423478474942c0d1c74e1afa335"
+ integrity sha512-IbMI1w2a79IXw2uH/dgwxWmXW9uR5DNjY/mDKdUCGR0tjMeeliZRq66gGdRLgCkfXS2b2WMIi03gB05l7SiQeg==
+ dependencies:
+ expo-splash-screen "~0.14.0"
+
expo-application@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-4.0.1.tgz#d38a1315c06c253b843c951ddc6fbb9a026f05cc"
@@ -2830,6 +2921,14 @@ Lockfile:
path-browserify "^1.0.0"
url-parse "^1.4.4"
+ expo-barcode-scanner@~11.2.0:
+ version "11.2.0"
+ resolved "https://registry.yarnpkg.com/expo-barcode-scanner/-/expo-barcode-scanner-11.2.0.tgz#9d316a36962f74f117f19f7c722de1334a4fd8d2"
+ integrity sha512-Dmp6KTzkMa9E561gR7kRP8ZXfVdAn9SLUwQ5DdeEGTC7D1NIqEO8WmyfVtWSLUUSArF6QxL+oYOZyzJ+LVjkHA==
+ dependencies:
+ "@expo/config-plugins" "^4.0.2"
+ expo-image-loader "~3.1.0"
+
expo-camera@~12.1.0:
version "12.1.0"
resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-12.1.0.tgz#d968b282d2155956655e217b35bade66ed361ad7"
@@ -2867,13 +2966,18 @@ Lockfile:
"@expo/config-plugins" "^4.0.2"
uuid "^3.4.0"
- expo-font@~10.0.4:
+ expo-font@^10.0.4, expo-font@~10.0.4:
version "10.0.4"
resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-10.0.4.tgz#c06ff88079c857ef71c24414a583fd270b3f34e7"
integrity sha512-ieEsT6tD6yD6qT7WUzzJ5el0UvACr53RqICu0GI9GUiWuwDFPM2Oi5WfWwYFFStCRuaP6kEtpkJDUZ9cjT5F+w==
dependencies:
fontfaceobserver "^2.1.0"
+ expo-image-loader@~3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/expo-image-loader/-/expo-image-loader-3.1.0.tgz#d60d57d6d36d1ea9b07ed2e8bed87574edd2ad1e"
+ integrity sha512-86oT25SDTO018hWO61HGnoB4l+DEgT9sOoW24rvXX99VBe/MPheGo+DDNKtLNf6k06n/OFL3LgtR0m9YpOCT8Q==
+
expo-keep-awake@~10.0.1:
version "10.0.1"
resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-10.0.1.tgz#9f1176216c41eee20843c8232acfdca2bc32d334"
@@ -2890,6 +2994,17 @@ Lockfile:
find-up "^5.0.0"
fs-extra "^9.1.0"
+ expo-modules-autolinking@~0.5.1:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.5.3.tgz#e66d36db9c67dad6247ed72ce050dee4cb50eb64"
+ integrity sha512-l6jbfApkU7AX8FLr8o+O7/yXamxdaP6a8yZ/mNBudZIV6AVeMI602O0AFErsDj8xTcJSe0puIX2WjK29XlVayg==
+ dependencies:
+ chalk "^4.1.0"
+ commander "^7.2.0"
+ fast-glob "^3.2.5"
+ find-up "^5.0.0"
+ fs-extra "^9.1.0"
+
expo-modules-core@0.6.3:
version "0.6.3"
resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-0.6.3.tgz#e5326169a888144f2691ffd49b7686dfac235227"
@@ -2898,12 +3013,20 @@ Lockfile:
compare-versions "^3.4.0"
invariant "^2.2.4"
+ expo-splash-screen@~0.14.0:
+ version "0.14.1"
+ resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.14.1.tgz#7647c8b98c679b8313d24a7c14729402c3c16631"
+ integrity sha512-Y08wMIVjRuPbBnH2N6KwUfQYYnAiBrZMFAfXjjPPObyMDZ7v5VXTcbAWHqGdnYDcIbXRpat+fiWpTeU2HanBBg==
+ dependencies:
+ "@expo/configure-splash-screen" "^0.6.0"
+ "@expo/prebuild-config" "^3.0.15"
+
expo-status-bar@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-1.2.0.tgz#16e73205da563f9536f562e439081e30e318a82e"
integrity sha512-pVZZ/kDCXFK79E4dCtRecs3XLC8aiwlciutSd/fFmUPJSQZ1Txia6hlKajPt0GAYft8/YnT0V3URXzWZOBniYQ==
- expo@~44.0.0:
+ expo@^44.0.1:
version "44.0.1"
resolved "https://registry.yarnpkg.com/expo/-/expo-44.0.1.tgz#998a29c8e7eeab1c72d4e51d907494e16a49ed1c"
integrity sha512-r3UXg8d2ypcK2I8ds5r9WP6luOLKH4tTqtdgOS+rQt3jpMpkF89VRnNB/Ux3GnzxHnxIHcEmTYBmfoI3qA4abg==
@@ -3165,7 +3288,7 @@ Lockfile:
jsonfile "^4.0.0"
universalify "^0.1.0"
- fs-extra@^9.1.0:
+ fs-extra@^9.0.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==
@@ -3483,6 +3606,11 @@ Lockfile:
dependencies:
css-in-js-utils "^2.0.0"
+ install@^0.13.0:
+ version "0.13.0"
+ resolved "https://registry.yarnpkg.com/install/-/install-0.13.0.tgz#6af6e9da9dd0987de2ab420f78e60d9c17260776"
+ integrity sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==
+
interpret@^1.0.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
@@ -3784,6 +3912,11 @@ Lockfile:
resolved "https://registry.yarnpkg.com/jetifier/-/jetifier-1.6.8.tgz#e88068697875cbda98c32472902c4d3756247798"
integrity sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw==
+ jimp-compact@0.16.1:
+ version "0.16.1"
+ resolved "https://registry.yarnpkg.com/jimp-compact/-/jimp-compact-0.16.1.tgz#9582aea06548a2c1e04dd148d7c3ab92075aefa3"
+ integrity sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==
+
joi@^17.2.1:
version "17.5.0"
resolved "https://registry.yarnpkg.com/joi/-/joi-17.5.0.tgz#7e66d0004b5045d971cf416a55fb61d33ac6e011"
@@ -4462,7 +4595,7 @@ Lockfile:
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
- mime@^2.4.1:
+ mime@^2.4.1, mime@^2.4.4:
version "2.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367"
integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
@@ -4850,6 +4983,13 @@ Lockfile:
json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"
+ parse-png@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/parse-png/-/parse-png-2.1.0.tgz#2a42ad719fedf90f81c59ebee7ae59b280d6b338"
+ integrity sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==
+ dependencies:
+ pngjs "^3.3.0"
+
parseurl@~1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
@@ -4937,6 +5077,16 @@ Lockfile:
base64-js "^1.5.1"
xmlbuilder "^9.0.7"
+ pngjs@^3.3.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f"
+ integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==
+
+ pngjs@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb"
+ integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==
+
posix-character-classes@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
@@ -5035,7 +5185,7 @@ Lockfile:
kleur "^3.0.3"
sisteransi "^1.0.5"
- prop-types@^15.5.10, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2:
+ prop-types@^15.5.10, prop-types@^15.6.0, prop-types@^15.7.2:
version "15.8.0"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.0.tgz#d237e624c45a9846e469f5f31117f970017ff588"
integrity sha512-fDGekdaHh65eI3lMi5OnErU6a8Ighg2KjcjQxO7m8VHyWjcPyj5kiOgV1LQDOOOgVy3+5FgjXvdSSX7B8/5/4g==
@@ -5145,13 +5295,6 @@ Lockfile:
dependencies:
prop-types "^15.7.2"
- react-native-camera@^4.2.1:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/react-native-camera/-/react-native-camera-4.2.1.tgz#caf74081f055e89d7e9b0cd5108965d808c60e90"
- integrity sha512-+Vkql24PFYQfsPRznJCvPwJQfyzCnjlcww/iZ4Ej80bgivKjL9eU0IMQIXp4yi6XCrKi4voWXxIDPMupQZKeIQ==
- dependencies:
- prop-types "^15.6.2"
-
react-native-codegen@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/react-native-codegen/-/react-native-codegen-0.0.6.tgz#b3173faa879cf71bfade8d030f9c4698388f6909"
@@ -5592,7 +5735,7 @@ Lockfile:
minimist "^1.1.1"
walker "~1.0.5"
- sax@>=0.6.0, sax@^1.2.1:
+ sax@>=0.6.0, sax@^1.2.1, sax@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
@@ -6072,6 +6215,11 @@ Lockfile:
resolve "^1.20.0"
tmp "^0.2.1"
+ temp-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"
+ integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=
+
temp@0.8.3:
version "0.8.3"
resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59"
@@ -6087,6 +6235,15 @@ Lockfile:
dependencies:
rimraf "~2.6.2"
+ tempy@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.3.0.tgz#6f6c5b295695a16130996ad5ab01a8bd726e8bf8"
+ integrity sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==
+ dependencies:
+ temp-dir "^1.0.0"
+ type-fest "^0.3.1"
+ unique-string "^1.0.0"
+
thenify-all@^1.0.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
@@ -6193,6 +6350,11 @@ Lockfile:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934"
integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==
+ type-fest@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1"
+ integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==
+
type-fest@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
@@ -6259,6 +6421,13 @@ Lockfile:
is-extendable "^0.1.1"
set-value "^2.0.1"
+ unique-string@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a"
+ integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=
+ dependencies:
+ crypto-random-string "^1.0.0"
+
universalify@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
@@ -6462,7 +6631,7 @@ Lockfile:
simple-plist "^1.0.0"
uuid "^3.3.2"
- xcode@^3.0.1:
+ xcode@^3.0.0, xcode@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/xcode/-/xcode-3.0.1.tgz#3efb62aac641ab2c702458f9a0302696146aa53c"
integrity sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==
@@ -6470,6 +6639,13 @@ Lockfile:
simple-plist "^1.1.0"
uuid "^7.0.3"
+ xml-js@^1.6.11:
+ version "1.6.11"
+ resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9"
+ integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==
+ dependencies:
+ sax "^1.2.4"
+
xml2js@0.4.23:
version "0.4.23"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66"
diff --git a/yarn.lock b/yarn.lock
index 08e4621..b047327 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1051,6 +1051,11 @@
exec-sh "^0.3.2"
minimist "^1.2.0"
+"@expo-google-fonts/noto-sans@^0.2.0":
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/@expo-google-fonts/noto-sans/-/noto-sans-0.2.0.tgz#e5bb0d73235e963d318d38b859c3470aa197ab58"
+ integrity sha512-Qk9goIvIQxAF0FRHSpw63smmp0uGBKmcRdhIqI4SvJNYEomQzH/Xzy5MA5MJanh/UhYx9KnyaidSH6FiJLLXeg==
+
"@expo/config-plugins@4.0.15", "@expo/config-plugins@^4.0.2":
version "4.0.15"
resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-4.0.15.tgz#cc170a0cf890973b6491cf357540e9955296019c"
@@ -1099,15 +1104,15 @@
resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-43.0.1.tgz#3e047dccb371741a540980eaff26fb0c95039c30"
integrity sha512-EtllpCGDdB/UdwAIs5YXJwBLpbFQNdlLLrxIvoILA9cXrpQMWkeDCT9lQPJzFRMFcLUaMuGvkzX2tR4tx5EQFQ==
-"@expo/config@6.0.6":
- version "6.0.6"
- resolved "https://registry.yarnpkg.com/@expo/config/-/config-6.0.6.tgz#64b49b93f07cb046f5a8538a1793bef9070d8d52"
- integrity sha512-GPI8EIdMAtZ5VaB4p5GcfuX50xyfGFdpEqLi0QmcfrCfTsGry1/j/Qy28hovHM1oJYHlaZylTcbGy+1ET+AO2w==
+"@expo/config@6.0.15", "@expo/config@^6.0.6":
+ version "6.0.15"
+ resolved "https://registry.yarnpkg.com/@expo/config/-/config-6.0.15.tgz#aa610f8b714e0b1103e13c8210059519479d11d6"
+ integrity sha512-nrG+OUe/2n3ulNSgHRs9V70zXu3lpkuzJ6F0VmCuhjyHqT7UYimkgSCJGqaE3N+AayBTK+YffOT6bTWH17wxjQ==
dependencies:
"@babel/code-frame" "~7.10.4"
- "@expo/config-plugins" "4.0.6"
+ "@expo/config-plugins" "4.0.15"
"@expo/config-types" "^43.0.1"
- "@expo/json-file" "8.2.33"
+ "@expo/json-file" "8.2.34"
getenv "^1.0.0"
glob "7.1.6"
require-from-string "^2.0.2"
@@ -1116,15 +1121,15 @@
slugify "^1.3.4"
sucrase "^3.20.0"
-"@expo/config@^6.0.6":
- version "6.0.15"
- resolved "https://registry.yarnpkg.com/@expo/config/-/config-6.0.15.tgz#aa610f8b714e0b1103e13c8210059519479d11d6"
- integrity sha512-nrG+OUe/2n3ulNSgHRs9V70zXu3lpkuzJ6F0VmCuhjyHqT7UYimkgSCJGqaE3N+AayBTK+YffOT6bTWH17wxjQ==
+"@expo/config@6.0.6":
+ version "6.0.6"
+ resolved "https://registry.yarnpkg.com/@expo/config/-/config-6.0.6.tgz#64b49b93f07cb046f5a8538a1793bef9070d8d52"
+ integrity sha512-GPI8EIdMAtZ5VaB4p5GcfuX50xyfGFdpEqLi0QmcfrCfTsGry1/j/Qy28hovHM1oJYHlaZylTcbGy+1ET+AO2w==
dependencies:
"@babel/code-frame" "~7.10.4"
- "@expo/config-plugins" "4.0.15"
+ "@expo/config-plugins" "4.0.6"
"@expo/config-types" "^43.0.1"
- "@expo/json-file" "8.2.34"
+ "@expo/json-file" "8.2.33"
getenv "^1.0.0"
glob "7.1.6"
require-from-string "^2.0.2"
@@ -1133,6 +1138,37 @@
slugify "^1.3.4"
sucrase "^3.20.0"
+"@expo/configure-splash-screen@^0.6.0":
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/@expo/configure-splash-screen/-/configure-splash-screen-0.6.0.tgz#07d97ee512fd859fcc09506ba3762fd6263ebc39"
+ integrity sha512-4DyPoNXJqx9bN4nEwF3HQreo//ECu7gDe1Xor3dnnzFm9P/VDxAKdbEhA0n+R6fgkNfT2onVHWijqvdpTS3Xew==
+ dependencies:
+ color-string "^1.5.3"
+ commander "^5.1.0"
+ fs-extra "^9.0.0"
+ glob "^7.1.6"
+ lodash "^4.17.15"
+ pngjs "^5.0.0"
+ xcode "^3.0.0"
+ xml-js "^1.6.11"
+
+"@expo/image-utils@0.3.18":
+ version "0.3.18"
+ resolved "https://registry.yarnpkg.com/@expo/image-utils/-/image-utils-0.3.18.tgz#36a41ab2925974ac5707e02cb0d3694349140497"
+ integrity sha512-77/ub2aGuf7SYfaFhvCHE54Hs/jRuU5j+pemS5seLfVHNwHbJSse91TMhsTLLNz3GwwqTxFVe3KMycSccJ73nA==
+ dependencies:
+ "@expo/spawn-async" "1.5.0"
+ chalk "^4.0.0"
+ fs-extra "9.0.0"
+ getenv "^1.0.0"
+ jimp-compact "0.16.1"
+ mime "^2.4.4"
+ node-fetch "^2.6.0"
+ parse-png "^2.1.0"
+ resolve-from "^5.0.0"
+ semver "7.3.2"
+ tempy "0.3.0"
+
"@expo/json-file@8.2.33":
version "8.2.33"
resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-8.2.33.tgz#78f56f33a2cfb807b23c81e00237a33159aa1f32"
@@ -1180,11 +1216,35 @@
base64-js "^1.2.3"
xmlbuilder "^14.0.0"
+"@expo/prebuild-config@^3.0.15":
+ version "3.0.15"
+ resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-3.0.15.tgz#bfc920bdbd01ab4d785cbf64c3a9deb74a6bb6a4"
+ integrity sha512-fP35AajhPIyUoqexTCxjcfSLZwK4OeedLZbxgUb32+k5kl1b7uSbmdAMtGHfLgnI18Mhk2QprerXOMK4zxo9mQ==
+ dependencies:
+ "@expo/config" "6.0.15"
+ "@expo/config-plugins" "4.0.15"
+ "@expo/config-types" "^43.0.1"
+ "@expo/image-utils" "0.3.18"
+ "@expo/json-file" "8.2.34"
+ debug "^4.3.1"
+ expo-modules-autolinking "~0.5.1"
+ fs-extra "^9.0.0"
+ resolve-from "^5.0.0"
+ semver "7.3.2"
+ xml2js "0.4.23"
+
"@expo/sdk-runtime-versions@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz#d7ebd21b19f1c6b0395e50d78da4416941c57f7c"
integrity sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==
+"@expo/spawn-async@1.5.0":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@expo/spawn-async/-/spawn-async-1.5.0.tgz#799827edd8c10ef07eb1a2ff9dcfe081d596a395"
+ integrity sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==
+ dependencies:
+ cross-spawn "^6.0.5"
+
"@expo/vector-icons@^12.0.4":
version "12.0.5"
resolved "https://registry.yarnpkg.com/@expo/vector-icons/-/vector-icons-12.0.5.tgz#bc508ad05fb7e9a3e008704977cfec6c18aa7728"
@@ -1426,6 +1486,15 @@
query-string "^7.0.0"
react-is "^16.13.0"
+"@react-navigation/drawer@^6.1.8":
+ version "6.1.8"
+ resolved "https://registry.yarnpkg.com/@react-navigation/drawer/-/drawer-6.1.8.tgz#82e2a06d17166a82dd18233678ebf63ed523aaab"
+ integrity sha512-kYE2EO5dianUuUcaYmAlYBcgtmvGm2fxWTQ5sn103cgPNidp4KBUR9ClkhF+btfRaHKq+8Ul5M6qvL0mBAv/Lg==
+ dependencies:
+ "@react-navigation/elements" "^1.2.1"
+ color "^3.1.3"
+ warn-once "^0.1.0"
+
"@react-navigation/elements@^1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@react-navigation/elements/-/elements-1.2.1.tgz#86f19781c6f34a5c9dd25dca99915e0306f477d1"
@@ -2222,7 +2291,7 @@ color-name@^1.0.0, color-name@~1.1.4:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-color-string@^1.6.0, color-string@^1.9.0:
+color-string@^1.5.3, color-string@^1.6.0, color-string@^1.9.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa"
integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==
@@ -2271,6 +2340,11 @@ commander@^4.0.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
+commander@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
+ integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
+
commander@^7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
@@ -2413,6 +2487,11 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5:
shebang-command "^1.2.0"
which "^1.2.9"
+crypto-random-string@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
+ integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=
+
css-color-keywords@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05"
@@ -2733,6 +2812,13 @@ expand-brackets@^2.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
+expo-app-loading@~1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/expo-app-loading/-/expo-app-loading-1.3.0.tgz#2023f11e1420d423478474942c0d1c74e1afa335"
+ integrity sha512-IbMI1w2a79IXw2uH/dgwxWmXW9uR5DNjY/mDKdUCGR0tjMeeliZRq66gGdRLgCkfXS2b2WMIi03gB05l7SiQeg==
+ dependencies:
+ expo-splash-screen "~0.14.0"
+
expo-application@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-4.0.1.tgz#d38a1315c06c253b843c951ddc6fbb9a026f05cc"
@@ -2794,7 +2880,7 @@ expo-file-system@~13.1.0:
"@expo/config-plugins" "^4.0.2"
uuid "^3.4.0"
-expo-font@~10.0.4:
+expo-font@^10.0.4, expo-font@~10.0.4:
version "10.0.4"
resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-10.0.4.tgz#c06ff88079c857ef71c24414a583fd270b3f34e7"
integrity sha512-ieEsT6tD6yD6qT7WUzzJ5el0UvACr53RqICu0GI9GUiWuwDFPM2Oi5WfWwYFFStCRuaP6kEtpkJDUZ9cjT5F+w==
@@ -2822,6 +2908,17 @@ expo-modules-autolinking@0.5.2:
find-up "^5.0.0"
fs-extra "^9.1.0"
+expo-modules-autolinking@~0.5.1:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.5.3.tgz#e66d36db9c67dad6247ed72ce050dee4cb50eb64"
+ integrity sha512-l6jbfApkU7AX8FLr8o+O7/yXamxdaP6a8yZ/mNBudZIV6AVeMI602O0AFErsDj8xTcJSe0puIX2WjK29XlVayg==
+ dependencies:
+ chalk "^4.1.0"
+ commander "^7.2.0"
+ fast-glob "^3.2.5"
+ find-up "^5.0.0"
+ fs-extra "^9.1.0"
+
expo-modules-core@0.6.3:
version "0.6.3"
resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-0.6.3.tgz#e5326169a888144f2691ffd49b7686dfac235227"
@@ -2830,6 +2927,14 @@ expo-modules-core@0.6.3:
compare-versions "^3.4.0"
invariant "^2.2.4"
+expo-splash-screen@~0.14.0:
+ version "0.14.1"
+ resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.14.1.tgz#7647c8b98c679b8313d24a7c14729402c3c16631"
+ integrity sha512-Y08wMIVjRuPbBnH2N6KwUfQYYnAiBrZMFAfXjjPPObyMDZ7v5VXTcbAWHqGdnYDcIbXRpat+fiWpTeU2HanBBg==
+ dependencies:
+ "@expo/configure-splash-screen" "^0.6.0"
+ "@expo/prebuild-config" "^3.0.15"
+
expo-status-bar@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-1.2.0.tgz#16e73205da563f9536f562e439081e30e318a82e"
@@ -3097,7 +3202,7 @@ fs-extra@^8.1.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
-fs-extra@^9.1.0:
+fs-extra@^9.0.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==
@@ -3721,6 +3826,11 @@ jetifier@^1.6.2:
resolved "https://registry.yarnpkg.com/jetifier/-/jetifier-1.6.8.tgz#e88068697875cbda98c32472902c4d3756247798"
integrity sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw==
+jimp-compact@0.16.1:
+ version "0.16.1"
+ resolved "https://registry.yarnpkg.com/jimp-compact/-/jimp-compact-0.16.1.tgz#9582aea06548a2c1e04dd148d7c3ab92075aefa3"
+ integrity sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==
+
joi@^17.2.1:
version "17.5.0"
resolved "https://registry.yarnpkg.com/joi/-/joi-17.5.0.tgz#7e66d0004b5045d971cf416a55fb61d33ac6e011"
@@ -4399,7 +4509,7 @@ mime@1.6.0:
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
-mime@^2.4.1:
+mime@^2.4.1, mime@^2.4.4:
version "2.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367"
integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
@@ -4787,6 +4897,13 @@ parse-json@^5.0.0:
json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"
+parse-png@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/parse-png/-/parse-png-2.1.0.tgz#2a42ad719fedf90f81c59ebee7ae59b280d6b338"
+ integrity sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==
+ dependencies:
+ pngjs "^3.3.0"
+
parseurl@~1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
@@ -4874,6 +4991,16 @@ plist@^3.0.1, plist@^3.0.4:
base64-js "^1.5.1"
xmlbuilder "^9.0.7"
+pngjs@^3.3.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f"
+ integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==
+
+pngjs@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb"
+ integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==
+
posix-character-classes@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
@@ -5522,7 +5649,7 @@ sane@^4.0.3:
minimist "^1.1.1"
walker "~1.0.5"
-sax@>=0.6.0, sax@^1.2.1:
+sax@>=0.6.0, sax@^1.2.1, sax@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
@@ -6002,6 +6129,11 @@ tailwindcss@^2.0.0:
resolve "^1.20.0"
tmp "^0.2.1"
+temp-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"
+ integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=
+
temp@0.8.3:
version "0.8.3"
resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59"
@@ -6017,6 +6149,15 @@ temp@^0.8.1:
dependencies:
rimraf "~2.6.2"
+tempy@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.3.0.tgz#6f6c5b295695a16130996ad5ab01a8bd726e8bf8"
+ integrity sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==
+ dependencies:
+ temp-dir "^1.0.0"
+ type-fest "^0.3.1"
+ unique-string "^1.0.0"
+
thenify-all@^1.0.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
@@ -6123,6 +6264,11 @@ type-fest@^0.13.1:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934"
integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==
+type-fest@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1"
+ integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==
+
type-fest@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
@@ -6189,6 +6335,13 @@ union-value@^1.0.0:
is-extendable "^0.1.1"
set-value "^2.0.1"
+unique-string@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a"
+ integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=
+ dependencies:
+ crypto-random-string "^1.0.0"
+
universalify@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
@@ -6392,7 +6545,7 @@ xcode@^2.0.0:
simple-plist "^1.0.0"
uuid "^3.3.2"
-xcode@^3.0.1:
+xcode@^3.0.0, xcode@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/xcode/-/xcode-3.0.1.tgz#3efb62aac641ab2c702458f9a0302696146aa53c"
integrity sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==
@@ -6400,6 +6553,13 @@ xcode@^3.0.1:
simple-plist "^1.1.0"
uuid "^7.0.3"
+xml-js@^1.6.11:
+ version "1.6.11"
+ resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9"
+ integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==
+ dependencies:
+ sax "^1.2.4"
+
xml2js@0.4.23:
version "0.4.23"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66"