└── Colecionaveis03
├── .expo-shared
└── assets.json
├── .gitignore
├── App.js
├── app.json
├── assets
├── adaptive-icon.png
├── favicon.png
├── icon.png
├── imagens
│ ├── aco.jpg
│ ├── couro.jpg
│ ├── espaco.jpg
│ ├── foto.jpg
│ ├── matrix.jpg
│ ├── oceano.jpg
│ └── ring.jpg
├── itens
│ ├── 1.jpg
│ ├── 2.jpg
│ ├── 3.jpg
│ └── 4.jpg
└── splash.png
├── babel.config.js
├── package.json
├── src
├── components
│ ├── ItemLista
│ │ ├── ItemLista.js
│ │ └── estiloItemLista.js
│ ├── rotasDrawer
│ │ ├── DrawerPersonalizado.js
│ │ ├── RotasDrawer.js
│ │ └── estiloRotasDrawer.js
│ ├── rotasStack
│ │ ├── RotasLoginStack.js
│ │ └── estiloRotasStack.js
│ └── rotasTab
│ │ └── RotasTab.js
└── views
│ ├── Colecao
│ ├── Colecao.js
│ └── estiloColecao.js
│ ├── Inicial
│ ├── Inicial.js
│ └── estiloInicial.js
│ ├── Item
│ ├── Item.js
│ └── estiloItem.js
│ ├── Login
│ ├── Login.js
│ └── estiloLogin.js
│ └── Perfil
│ ├── Perfil.js
│ └── estiloPerfil.js
└── yarn.lock
/Colecionaveis03/.expo-shared/assets.json:
--------------------------------------------------------------------------------
1 | {
2 | "12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb": true,
3 | "40b842e832070c58deac6aa9e08fa459302ee3f9da492c7e77d93d2fbf4a56fd": true
4 | }
5 |
--------------------------------------------------------------------------------
/Colecionaveis03/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/**/*
2 | .expo/*
3 | npm-debug.*
4 | *.jks
5 | *.p8
6 | *.p12
7 | *.key
8 | *.mobileprovision
9 | *.orig.*
10 | web-build/
11 |
12 | # macOS
13 | .DS_Store
14 |
--------------------------------------------------------------------------------
/Colecionaveis03/App.js:
--------------------------------------------------------------------------------
1 | import 'react-native-gesture-handler';
2 | import React from 'react';
3 | import { StatusBar } from 'react-native';
4 | import { NavigationContainer } from '@react-navigation/native';
5 | import RotasLoginStack from './src/components/rotasStack/RotasLoginStack';
6 |
7 | const App = () => {
8 | return (
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | );
17 | };
18 |
19 | export default App;
20 |
--------------------------------------------------------------------------------
/Colecionaveis03/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "name": "Colecionaveis03",
4 | "slug": "Colecionaveis03",
5 | "version": "1.0.0",
6 | "orientation": "portrait",
7 | "icon": "./assets/icon.png",
8 | "splash": {
9 | "image": "./assets/splash.png",
10 | "resizeMode": "contain",
11 | "backgroundColor": "#ffffff"
12 | },
13 | "updates": {
14 | "fallbackToCacheTimeout": 0
15 | },
16 | "assetBundlePatterns": [
17 | "**/*"
18 | ],
19 | "ios": {
20 | "supportsTablet": true
21 | },
22 | "android": {
23 | "adaptiveIcon": {
24 | "foregroundImage": "./assets/adaptive-icon.png",
25 | "backgroundColor": "#FFFFFF"
26 | }
27 | },
28 | "web": {
29 | "favicon": "./assets/favicon.png"
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Colecionaveis03/assets/adaptive-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gangludev/react-native-firebase/a4899ac20ad81aa01a3f17d6a346eec25f038313/Colecionaveis03/assets/adaptive-icon.png
--------------------------------------------------------------------------------
/Colecionaveis03/assets/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gangludev/react-native-firebase/a4899ac20ad81aa01a3f17d6a346eec25f038313/Colecionaveis03/assets/favicon.png
--------------------------------------------------------------------------------
/Colecionaveis03/assets/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gangludev/react-native-firebase/a4899ac20ad81aa01a3f17d6a346eec25f038313/Colecionaveis03/assets/icon.png
--------------------------------------------------------------------------------
/Colecionaveis03/assets/imagens/aco.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gangludev/react-native-firebase/a4899ac20ad81aa01a3f17d6a346eec25f038313/Colecionaveis03/assets/imagens/aco.jpg
--------------------------------------------------------------------------------
/Colecionaveis03/assets/imagens/couro.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gangludev/react-native-firebase/a4899ac20ad81aa01a3f17d6a346eec25f038313/Colecionaveis03/assets/imagens/couro.jpg
--------------------------------------------------------------------------------
/Colecionaveis03/assets/imagens/espaco.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gangludev/react-native-firebase/a4899ac20ad81aa01a3f17d6a346eec25f038313/Colecionaveis03/assets/imagens/espaco.jpg
--------------------------------------------------------------------------------
/Colecionaveis03/assets/imagens/foto.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gangludev/react-native-firebase/a4899ac20ad81aa01a3f17d6a346eec25f038313/Colecionaveis03/assets/imagens/foto.jpg
--------------------------------------------------------------------------------
/Colecionaveis03/assets/imagens/matrix.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gangludev/react-native-firebase/a4899ac20ad81aa01a3f17d6a346eec25f038313/Colecionaveis03/assets/imagens/matrix.jpg
--------------------------------------------------------------------------------
/Colecionaveis03/assets/imagens/oceano.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gangludev/react-native-firebase/a4899ac20ad81aa01a3f17d6a346eec25f038313/Colecionaveis03/assets/imagens/oceano.jpg
--------------------------------------------------------------------------------
/Colecionaveis03/assets/imagens/ring.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gangludev/react-native-firebase/a4899ac20ad81aa01a3f17d6a346eec25f038313/Colecionaveis03/assets/imagens/ring.jpg
--------------------------------------------------------------------------------
/Colecionaveis03/assets/itens/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gangludev/react-native-firebase/a4899ac20ad81aa01a3f17d6a346eec25f038313/Colecionaveis03/assets/itens/1.jpg
--------------------------------------------------------------------------------
/Colecionaveis03/assets/itens/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gangludev/react-native-firebase/a4899ac20ad81aa01a3f17d6a346eec25f038313/Colecionaveis03/assets/itens/2.jpg
--------------------------------------------------------------------------------
/Colecionaveis03/assets/itens/3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gangludev/react-native-firebase/a4899ac20ad81aa01a3f17d6a346eec25f038313/Colecionaveis03/assets/itens/3.jpg
--------------------------------------------------------------------------------
/Colecionaveis03/assets/itens/4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gangludev/react-native-firebase/a4899ac20ad81aa01a3f17d6a346eec25f038313/Colecionaveis03/assets/itens/4.jpg
--------------------------------------------------------------------------------
/Colecionaveis03/assets/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gangludev/react-native-firebase/a4899ac20ad81aa01a3f17d6a346eec25f038313/Colecionaveis03/assets/splash.png
--------------------------------------------------------------------------------
/Colecionaveis03/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = function(api) {
2 | api.cache(true);
3 | return {
4 | presets: ['babel-preset-expo'],
5 | };
6 | };
7 |
--------------------------------------------------------------------------------
/Colecionaveis03/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "main": "node_modules/expo/AppEntry.js",
3 | "scripts": {
4 | "start": "expo start",
5 | "android": "expo start --android",
6 | "ios": "expo start --ios",
7 | "web": "expo start --web",
8 | "eject": "expo eject"
9 | },
10 | "dependencies": {
11 | "@react-native-community/masked-view": "0.1.10",
12 | "@react-navigation/bottom-tabs": "^5.9.2",
13 | "@react-navigation/drawer": "^5.9.3",
14 | "@react-navigation/native": "^5.7.6",
15 | "@react-navigation/stack": "^5.9.3",
16 | "expo": "~39.0.2",
17 | "expo-linear-gradient": "~8.3.0",
18 | "expo-status-bar": "~1.0.2",
19 | "react": "16.13.1",
20 | "react-dom": "16.13.1",
21 | "react-native": "https://github.com/expo/react-native/archive/sdk-39.0.3.tar.gz",
22 | "react-native-gesture-handler": "~1.7.0",
23 | "react-native-reanimated": "~1.13.0",
24 | "react-native-safe-area-context": "3.1.4",
25 | "react-native-screens": "~2.10.1",
26 | "react-native-web": "~0.13.12"
27 | },
28 | "devDependencies": {
29 | "@babel/core": "~7.9.0"
30 | },
31 | "private": true
32 | }
33 |
--------------------------------------------------------------------------------
/Colecionaveis03/src/components/ItemLista/ItemLista.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react';
2 | import { Text, View, Image } from 'react-native';
3 | import estiloItemLista from './estiloItemLista';
4 | import { LinearGradient } from 'expo-linear-gradient';
5 |
6 | const ItemLista = ({data}) => {
7 |
8 | const [item, setItem] = useState(data);
9 |
10 | return (
11 |
12 |
13 |
14 | {item.titulo}
15 |
16 | {item.autor} ({item.anoPublicacao})
17 |
18 |
19 |
24 |
25 |
26 |
27 | );
28 | }
29 |
30 | export default ItemLista;
--------------------------------------------------------------------------------
/Colecionaveis03/src/components/ItemLista/estiloItemLista.js:
--------------------------------------------------------------------------------
1 | import { StyleSheet } from 'react-native';
2 |
3 | const estiloItemLista = StyleSheet.create({
4 | areaItens: {
5 | flex: 1,
6 | backgroundColor: '#92afd7',
7 | },
8 | itemTitulo: {
9 | height: 40,
10 | fontSize: 20,
11 | textAlign: 'center',
12 | fontWeight: 'bold',
13 | paddingTop: 15,
14 | },
15 | itemSubTitulo: {
16 | fontSize: 18,
17 | textAlign: 'center',
18 | },
19 | itemFoto: {
20 | flex: 1,
21 | height: 300,
22 | marginTop: 20,
23 | marginBottom: 20
24 | },
25 | });
26 |
27 | export default estiloItemLista;
28 |
--------------------------------------------------------------------------------
/Colecionaveis03/src/components/rotasDrawer/DrawerPersonalizado.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { View, Text, Image } from 'react-native';
3 | import { DrawerContentScrollView, DrawerItemList } from '@react-navigation/drawer';
4 | import estiloRotasDrawer from './estiloRotasDrawer';
5 |
6 | function DrawerPersonalizado(props) {
7 | return (
8 |
9 |
10 |
11 |
15 | Administrador
16 |
17 |
18 |
19 |
20 |
21 | );
22 | }
23 |
24 | export default DrawerPersonalizado;
--------------------------------------------------------------------------------
/Colecionaveis03/src/components/rotasDrawer/RotasDrawer.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { createDrawerNavigator } from '@react-navigation/drawer';
3 | import DrawerPersonalizado from './DrawerPersonalizado';
4 | import Inicial from '../../views/Inicial/Inicial';
5 | import Colecao from '../../views/Colecao/Colecao';
6 | import Item from '../../views/Item/Item';
7 | import Perfil from '../../views/Perfil/Perfil';
8 | import { MaterialIcons } from '@expo/vector-icons';
9 |
10 | const Drawer = createDrawerNavigator();
11 |
12 | const RotasDrawer = () => {
13 | return (
14 |
17 |
18 | (
23 |
24 | )
25 | }}
26 | />
27 |
28 | (
33 |
34 | )
35 | }}
36 | />
37 | (
43 |
44 | )
45 | }}
46 | />
47 | (
52 |
53 | )
54 | }}
55 | />
56 |
57 |
58 | );
59 | }
60 |
61 | export default RotasDrawer;
--------------------------------------------------------------------------------
/Colecionaveis03/src/components/rotasDrawer/estiloRotasDrawer.js:
--------------------------------------------------------------------------------
1 | import { StyleSheet } from 'react-native';
2 |
3 | const estiloRotasDrawer = StyleSheet.create({
4 | fotoContainer: {
5 | width: '100%',
6 | height: 150,
7 | alignItems: 'center',
8 | justifyContent: 'center',
9 | marginTop: 15,
10 | },
11 | foto: {
12 | width: 100,
13 | height: 100,
14 | borderRadius: 50,
15 | },
16 | nome: {
17 | color: '#000000',
18 | fontSize: 18,
19 | marginTop: 5,
20 | marginBottom: 25,
21 | }
22 | });
23 |
24 | export default estiloRotasDrawer;
--------------------------------------------------------------------------------
/Colecionaveis03/src/components/rotasStack/RotasLoginStack.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { createStackNavigator } from "@react-navigation/stack";
3 | import estiloRotasStack from './estiloRotasStack';
4 | import Login from '../../views/Login/Login';
5 | import RotasTab from '../rotasTab/RotasTab';
6 |
7 | const Stack = createStackNavigator();
8 |
9 | const RotasLoginStack = () => {
10 | return (
11 |
12 |
21 |
30 |
31 | );
32 | }
33 |
34 | export default RotasLoginStack;
--------------------------------------------------------------------------------
/Colecionaveis03/src/components/rotasStack/estiloRotasStack.js:
--------------------------------------------------------------------------------
1 | import { StyleSheet } from 'react-native';
2 |
3 | const estiloRotasStack = StyleSheet.create({
4 | screenLogin: {
5 | backgroundColor: '#000000'
6 | },
7 | screenInicial: {
8 | backgroundColor: '#92afd7'
9 | },
10 | screenColecao: {
11 | backgroundColor: '#d0f4ea'
12 | },
13 | screenItem: {
14 | backgroundColor: '#d1d1d1'
15 | }
16 | });
17 |
18 | export default estiloRotasStack;
--------------------------------------------------------------------------------
/Colecionaveis03/src/components/rotasTab/RotasTab.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
3 | import Colecao from '../../views/Colecao/Colecao';
4 | import Item from '../../views/Item/Item';
5 | import { MaterialIcons } from '@expo/vector-icons';
6 | import RotasDrawer from '../rotasDrawer/RotasDrawer';
7 |
8 | const Tab = createBottomTabNavigator();
9 |
10 | const icones = {
11 | Inicial: { name: 'home' },
12 | Colecao: { name: 'storage' },
13 | Item: { name: 'done-all' },
14 | }
15 |
16 | const RotasTab = () => {
17 | return (
18 | ({
27 | tabBarIcon: ({color}) => {
28 | const {name} = icones[route.name];
29 | return
30 | }
31 | })
32 | }
33 | >
34 |
41 |
48 |
49 |
50 | );
51 | }
52 |
53 | export default RotasTab;
--------------------------------------------------------------------------------
/Colecionaveis03/src/views/Colecao/Colecao.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react';
2 | import { Text, View, TouchableOpacity, FlatList } from 'react-native';
3 | import estiloColecao from './estiloColecao';
4 | import ItemLista from '../../components/ItemLista/ItemLista';
5 | import { MaterialIcons } from '@expo/vector-icons';
6 |
7 | function Colecao({ navigation }) {
8 |
9 | const [colecao, setColecao] = useState( [
10 | {
11 | id: '1',
12 | titulo: 'Admirável Mundo Novo',
13 | descricao: 'Um clássico moderno, o romance distópico de Aldous Huxley é indispensável para quem busca leituras sobre autoritarismo, manipulação genética, ficção especulativa e outros temas que, embora tenham surgido com força durante a primeira metade do século XX, se tornam cada dia mais atuais.',
14 | autor: 'Aldous Huxley',
15 | anoPublicacao: '1932',
16 | foto: require('../../../assets/itens/1.jpg'),
17 | },
18 | {
19 | id: '2',
20 | titulo: '1984',
21 | descricao: 'Uma das obras mais contundentes e influentes do século XX ganha nova e definitiva edição com projeto especial e ampla fortuna crítica. Romance incontornável, 1984 continua sendo o livro ao qual nos voltamos sempre que se mutila a verdade, distorce-se a linguagem e viola-se o poder.',
22 | autor: 'George Orwell',
23 | anoPublicacao: '1949',
24 | foto: require('../../../assets/itens/2.jpg'),
25 | },
26 | {
27 | id: '3',
28 | titulo: 'Laranja Mecânica',
29 | descricao: 'Publicado pela primeira vez em 1962, e imortalizado 9 anos depois pelo filme de Stanley Kubrick, Laranja Mecânica não só está entre os clássicos eternos da ficção como representa um marco na cultura pop do século 20.',
30 | autor: 'Anthony Burgess',
31 | anoPublicacao: '1962',
32 | foto: require('../../../assets/itens/3.jpg'),
33 | },
34 | {
35 | id: '4',
36 | titulo: 'Neuromancer',
37 | descricao: 'O Céu sobre o porto tinha cor de televisão num canal fora do ar. Considerada a obra precursora do movimento cyberpunk e um clássico da ficção científica moderna, Neuromancer conta a história de Case, um cowboy do ciberespaço e hacker da matrix.',
38 | autor: 'William Gibson',
39 | anoPublicacao: '1984',
40 | foto: require('../../../assets/itens/4.jpg'),
41 | }
42 | ] );
43 |
44 |
45 | const voltar = () => {
46 | navigation.navigate('Inicial')
47 | }
48 |
49 | return (
50 |
51 |
52 |
53 |
54 |
55 |
56 | Coleção
57 |
58 |
59 |
60 | item.id}
63 | data={colecao}
64 | renderItem={ ({item}) => }
65 | />
66 |
67 |
68 | )
69 | }
70 |
71 | export default Colecao;
72 |
--------------------------------------------------------------------------------
/Colecionaveis03/src/views/Colecao/estiloColecao.js:
--------------------------------------------------------------------------------
1 | import { StyleSheet } from 'react-native';
2 |
3 | const estiloColecao = StyleSheet.create({
4 | container: {
5 | flex: 1,
6 | },
7 | header: {
8 | height: 50,
9 | backgroundColor: '#14417b',
10 | flexDirection: 'row',
11 | alignItems: 'center',
12 | justifyContent: 'space-between',
13 | padding: 5,
14 | },
15 | texto: {
16 | fontSize: 20,
17 | color: '#FFFFFF',
18 | fontWeight: 'bold',
19 | },
20 |
21 | });
22 |
23 | export default estiloColecao;
--------------------------------------------------------------------------------
/Colecionaveis03/src/views/Inicial/Inicial.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react';
2 | import { Text, View, TouchableOpacity, ImageBackground } from 'react-native';
3 | import estiloInicial from './estiloInicial';
4 | import { AntDesign } from '@expo/vector-icons';
5 | import { useIsDrawerOpen } from '@react-navigation/drawer';
6 |
7 | function Inicial({ navigation }) {
8 |
9 | const isDrawerOpen = useIsDrawerOpen();
10 |
11 | const exibirDrawer = () => {
12 | if(!isDrawerOpen){
13 | navigation.openDrawer();
14 | }
15 | }
16 |
17 | const abrirColecao = () => {
18 | navigation.navigate('Colecao')
19 | }
20 |
21 | const abrirItem = () => {
22 | navigation.navigate('Item')
23 | }
24 |
25 | return (
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | Coleção
39 |
40 |
41 |
42 |
43 |
44 | Item
45 |
46 |
47 |
48 |
49 |
50 | )
51 | }
52 |
53 | export default Inicial;
54 |
--------------------------------------------------------------------------------
/Colecionaveis03/src/views/Inicial/estiloInicial.js:
--------------------------------------------------------------------------------
1 | import { StyleSheet } from 'react-native';
2 |
3 | const estiloInicial = StyleSheet.create({
4 | container: {
5 | flex: 1,
6 | justifyContent: 'center',
7 | alignItems: 'center',
8 | },
9 | header: {
10 | height: 50,
11 | width: '100%',
12 | backgroundColor: '#081a31',
13 | flexDirection: 'row',
14 | alignItems: 'flex-end',
15 | },
16 | fundo: {
17 | flexDirection: 'row',
18 | justifyContent: 'space-evenly',
19 | alignItems: 'center',
20 | width: '100%',
21 | height: '100%',
22 | },
23 | botaoBackground: {
24 | width: 160,
25 | height: 120,
26 | borderRadius: 10,
27 | overflow: 'hidden',
28 | justifyContent: 'flex-end',
29 | alignItems: 'center',
30 | padding: 10,
31 | borderWidth: 1,
32 | borderColor: '#14417b',
33 | },
34 | botaoTexto: {
35 | fontSize: 22,
36 | color: '#FFFFFF',
37 | },
38 | });
39 |
40 | export default estiloInicial;
--------------------------------------------------------------------------------
/Colecionaveis03/src/views/Item/Item.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Text, View, TouchableOpacity } from 'react-native';
3 | import estiloItem from './estiloItem';
4 |
5 | function Item({ navigation }) {
6 |
7 | const voltar = () => {
8 | navigation.navigate('Inicial')
9 | }
10 |
11 | return (
12 |
13 |
14 |
15 | Item
16 |
17 |
18 | Voltar
19 |
20 |
21 |
22 |
23 | )
24 | }
25 |
26 | export default Item;
27 |
--------------------------------------------------------------------------------
/Colecionaveis03/src/views/Item/estiloItem.js:
--------------------------------------------------------------------------------
1 | import { StyleSheet } from 'react-native';
2 |
3 | const estiloItem = StyleSheet.create({
4 | container: {
5 | flex: 1,
6 | justifyContent: 'center',
7 | alignItems: 'center',
8 | },
9 | borda: {
10 | backgroundColor: '#081a31',
11 | width: '80%',
12 | height: '25%',
13 | borderRadius: 10,
14 | },
15 | texto: {
16 | fontSize: 20,
17 | color: '#FFFFFF',
18 | fontWeight: 'bold',
19 | textAlign: "center",
20 | padding: 10
21 | },
22 | botaoContainer: {
23 | marginTop: 20,
24 | marginBottom: 20,
25 | marginLeft: 40,
26 | marginRight: 40,
27 | borderRadius: 5,
28 | height: 40,
29 | borderWidth: 2,
30 | borderColor: '#e8f2e9',
31 | backgroundColor: '#14417b',
32 | justifyContent: 'center',
33 | alignItems: 'center',
34 | },
35 | botaoTexto: {
36 | fontSize: 18,
37 | color: '#FFFFFF',
38 | fontWeight: 'bold'
39 | },
40 | });
41 |
42 | export default estiloItem;
--------------------------------------------------------------------------------
/Colecionaveis03/src/views/Login/Login.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react';
2 | import { ImageBackground, Text, View, TextInput, TouchableOpacity, Alert } from 'react-native';
3 | import estiloLogin from './estiloLogin';
4 | import { AntDesign } from '@expo/vector-icons';
5 | import { MaterialIcons } from '@expo/vector-icons';
6 | import { MaterialCommunityIcons } from '@expo/vector-icons';
7 | import { LinearGradient } from 'expo-linear-gradient';
8 |
9 | function Login({ navigation }) {
10 |
11 | const [login, setLogin] = useState('');
12 | const [senha, setSenha] = useState('');
13 |
14 | const entrar = () => {
15 | if (login == '' || senha == '') {
16 | Alert.alert(
17 | 'Preencimento obrigatório',
18 | 'Informe o login e a senha!',
19 | [
20 | { text: 'OK' },
21 | ],
22 | );
23 | } else {
24 |
25 | navigation.replace('Inicial');
26 | }
27 | }
28 |
29 | return (
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | setLogin(login)}
46 | value={login}
47 | />
48 |
49 |
50 |
51 |
52 | setSenha(senha)}
56 | value={senha}
57 | />
58 |
59 |
60 |
61 |
62 |
63 | Entrar
64 |
65 |
66 |
67 |
68 |
69 |
70 | )
71 | }
72 |
73 | export default Login;
74 |
--------------------------------------------------------------------------------
/Colecionaveis03/src/views/Login/estiloLogin.js:
--------------------------------------------------------------------------------
1 | import { StyleSheet } from 'react-native';
2 |
3 | const estiloLogin = StyleSheet.create({
4 | container: {
5 | flex: 1,
6 | },
7 | fundo: {
8 | justifyContent: 'center',
9 | width: '100%',
10 | height: '100%',
11 | },
12 | logoContainer: {
13 | alignItems: 'center',
14 | marginBottom: 20,
15 | },
16 | logo: {
17 | width: 90,
18 | height: 90,
19 | borderRadius: 50,
20 | justifyContent: 'center',
21 | alignItems: "center",
22 | padding: 20,
23 | },
24 | campoContainer: {
25 | flexDirection: 'row',
26 | padding: 10,
27 | paddingLeft: 50,
28 | paddingRight: 50,
29 | margin: 10,
30 | marginRight: 50,
31 | alignItems: 'center',
32 | },
33 | campo: {
34 | width: '100%',
35 | fontSize: 18,
36 | color: '#FFFFFF',
37 | marginLeft: 15,
38 | paddingBottom: 10,
39 | borderBottomWidth: 1,
40 | borderColor: 'white',
41 | },
42 | botaoLinearGradient: {
43 | flexDirection: 'row',
44 | justifyContent: 'center',
45 | alignItems: 'center',
46 | margin: 20,
47 | marginLeft: 50,
48 | marginRight: 50,
49 | height: 50,
50 | paddingLeft: 15,
51 | paddingRight: 15,
52 | borderRadius: 8,
53 | },
54 | botaoTexto: {
55 | fontSize: 18,
56 | color: '#FFFFFF',
57 | paddingLeft: 15,
58 | backgroundColor: 'transparent',
59 | },
60 | });
61 |
62 | export default estiloLogin;
--------------------------------------------------------------------------------
/Colecionaveis03/src/views/Perfil/Perfil.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { StatusBar, Text, View, TouchableOpacity } from 'react-native';
3 | import estiloPerfil from './estiloPerfil';
4 |
5 | function Perfil({ navigation }) {
6 |
7 | const voltar = () => {
8 | navigation.navigate('Inicial')
9 | }
10 |
11 | return (
12 |
13 |
14 |
15 | Perfil
16 |
17 |
18 | Voltar
19 |
20 |
21 |
22 |
23 | )
24 | }
25 |
26 | export default Perfil;
27 |
--------------------------------------------------------------------------------
/Colecionaveis03/src/views/Perfil/estiloPerfil.js:
--------------------------------------------------------------------------------
1 | import { StyleSheet } from 'react-native';
2 |
3 | const estiloPerfil = StyleSheet.create({
4 | container: {
5 | flex: 1,
6 | justifyContent: 'center',
7 | alignItems: 'center',
8 | },
9 | borda: {
10 | backgroundColor: '#081a31',
11 | width: '80%',
12 | height: '25%',
13 | borderRadius: 10,
14 | },
15 | texto: {
16 | fontSize: 20,
17 | color: '#FFFFFF',
18 | fontWeight: 'bold',
19 | textAlign: "center",
20 | padding: 10
21 | },
22 | botaoContainer: {
23 | marginTop: 20,
24 | marginBottom: 20,
25 | marginLeft: 40,
26 | marginRight: 40,
27 | borderRadius: 5,
28 | height: 40,
29 | borderWidth: 2,
30 | borderColor: '#e8f2e9',
31 | backgroundColor: '#14417b',
32 | justifyContent: 'center',
33 | alignItems: 'center',
34 | },
35 | botaoTexto: {
36 | fontSize: 18,
37 | color: '#FFFFFF',
38 | fontWeight: 'bold'
39 | },
40 | });
41 |
42 | export default estiloPerfil;
--------------------------------------------------------------------------------