diff --git a/assets/chest.png b/assets/chest.png
new file mode 100644
index 0000000..1631dec
Binary files /dev/null and b/assets/chest.png differ
diff --git a/assets/trofeu-azul.png b/assets/trofeu-azul.png
new file mode 100644
index 0000000..20ba3b7
Binary files /dev/null and b/assets/trofeu-azul.png differ
diff --git a/assets/trofeu-vermelho.png b/assets/trofeu-vermelho.png
new file mode 100644
index 0000000..a6d0843
Binary files /dev/null and b/assets/trofeu-vermelho.png differ
diff --git a/src/App.js b/src/App.js
index 902a8e7..801bcd3 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,5 +1,5 @@
import React from "react";
-import { Text, View, StatusBar } from "react-native";
+import { Text, View } from "react-native";
import { NavigationContainer } from "@react-navigation/native";
import { createNativeStackNavigator } from "@react-navigation/native-stack";
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
@@ -17,6 +17,7 @@ import HelpIcon from "../assets/icons/help.svg";
import WelcomePage from "./pages/WelcomePage";
import HomePage from "./pages/HomePage";
import TrophiesPage from "./pages/TrophiesPage";
+import AllTasksPage from "./pages/AllTasksPage";
import DataPage from "./pages/DataPage";
import ProfilePage from "./pages/ProfilePage";
import HelpPage from "./pages/HelpPage";
@@ -93,7 +94,6 @@ export default function App() {
// Stack Navigator (para gerenciar Welcome e HomeTabs)
return (
<>
-
{/* Tela de boas-vindas sem navbar */}
@@ -113,6 +113,11 @@ export default function App() {
component={HomeTabs}
options={{ headerShown: false }}
/>
+
>
diff --git a/src/components/Achievements.js b/src/components/Achievements.js
new file mode 100644
index 0000000..6318f8a
--- /dev/null
+++ b/src/components/Achievements.js
@@ -0,0 +1,27 @@
+import React from 'react';
+import { View, Text, Image } from 'react-native';
+import { MaterialIcons } from '@expo/vector-icons'; // Pacote de ícones do Expo
+
+const Achievements = ({ text, description, icon }) => {
+ return (
+
+ {/* Ícone */}
+
+
+
+
+ {/* Conteúdo de progresso */}
+
+ {/* Texto */}
+ {text}
+ {description}
+
+
+
+
+
+
+ );
+};
+
+export default Achievements;
diff --git a/src/components/Task.js b/src/components/Task.js
index bcdb4d7..76a693f 100644
--- a/src/components/Task.js
+++ b/src/components/Task.js
@@ -4,7 +4,7 @@ import CheckIcon from "../../assets/icons/check.svg";
const Task = ({ taskText, isCompleted }) => (
- {taskText}
+ {taskText}
(
+
+ {taskText}
+
+);
+
+export default Task;
\ No newline at end of file
diff --git a/src/components/TrophyProgress.js b/src/components/TrophyProgress.js
new file mode 100644
index 0000000..9d9bc19
--- /dev/null
+++ b/src/components/TrophyProgress.js
@@ -0,0 +1,31 @@
+import React from 'react';
+import { View, Text, Image } from 'react-native';
+
+const TrophyProgress = ({ text, progress, total, icon }) => {
+ const progressWidth = `${(progress / total) * 100}%`;
+
+ return (
+
+ {/* Ícone */}
+
+
+
+
+ {/* Conteúdo de progresso */}
+
+ {/* Texto */}
+ {text}
+
+ {/* Barra de progresso */}
+
+
+
+
+ {/* Contador */}
+ {`${progress}/${total}`}
+
+
+ );
+};
+
+export default TrophyProgress;
diff --git a/src/pages/AllTasksPage.js b/src/pages/AllTasksPage.js
new file mode 100644
index 0000000..218f7bf
--- /dev/null
+++ b/src/pages/AllTasksPage.js
@@ -0,0 +1,81 @@
+import React from "react";
+import { View, Text, TouchableOpacity, ScrollView } from "react-native";
+import { LinearGradient } from "expo-linear-gradient";
+import Task from "../components/Task";
+import TaskFinished from "../components/TaskFinished";
+import { Ionicons } from "@expo/vector-icons";
+
+export default function AllTasksPage({ navigation }) {
+ // Lista de tarefas
+ const tasksdiarias = [
+ "Estar apenas 2 horas no Insta hoje",
+ "Falar com os amigos"
+ ];
+
+ const tasksconcluidas = [
+ "Ler um livro",
+ "Fazer exercício físico",
+ "Aprender algo novo",
+ "Meditar por 10 minutos",
+ "Desconectar do celular por 1 hora",
+ "Passar tempo com a família",
+ "Planejar a próxima semana",
+ "Escrever um diário sobre o dia"
+ ];
+
+ return (
+
+
+
+
+
+ {/* Botão de voltar */}
+
+ navigation.goBack()}
+ >
+
+
+
+
+
+ {/* Secção de Tarefas Diárias */}
+
+ {/* Cabeçalho */}
+
+ Tarefas Diárias
+ 7 HORAS
+
+
+ {/* Lista de tarefas */}
+ {tasksdiarias.map((task, index) => (
+
+ ))}
+
+
+
+ {/* Secção de Tarefas Concluidas */}
+
+ {/* Cabeçalho */}
+
+ Tarefas Concluidas
+
+
+ {/* Lista de tarefas */}
+ {tasksconcluidas.map((task, index) => (
+
+ ))}
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/pages/HomePage.js b/src/pages/HomePage.js
index b1808d5..4d92d61 100644
--- a/src/pages/HomePage.js
+++ b/src/pages/HomePage.js
@@ -68,10 +68,10 @@ export default function HomePage() {
{/* Literacia */}
- Sabias que
+ Sabias que
Ter uma adição pode prejudicar seriamente o nosso trabalho e as nossas relações.
- Aprender mais em
+ Aprender mais em
{/* Ver todas */}
+ navigation.navigate("AllTasks")}>
+
+ VER TODAS
+
+
+
+
+ {/* Secção de Trofeus */}
+
+ {/* Cabeçalho */}
- VER TODAS
+ Icon Exclusivo
+
+
+ {/* Icon exclusivo */}
+
+
+
+
+
+
+
+ Outros Prémios
+
+
+
+
+
+
+
- {/* Literacia */}
-
- Sabias que
- Ter uma adição pode prejudicar seriamente o nosso trabalho e as nossas relações.
-
- Aprender mais em
-
+ {/* Cabeçalho */}
+
+ As Minhas Conquistas
+
+
+ {/* Icon exclusivo */}
+
+
+
+
+
+
+
+
+
+
-
- {/* Informação de contactos */}
-
-
- Existem 96 profissionais de saúde à tua disposição. Não hesites em contacta-los.
-
+ {/* Ver todas */}
+ console.log("Ver todas as conquistas clicado")}>
+
+ VER TODAS
+
+
+
diff --git a/src/pages/WelcomePage.js b/src/pages/WelcomePage.js
index 725d97e..79499c7 100644
--- a/src/pages/WelcomePage.js
+++ b/src/pages/WelcomePage.js
@@ -1,96 +1,93 @@
import React, { useState, useRef } from "react";
import {
- View,
- Text,
- Image,
- Animated,
- FlatList,
- Dimensions,
+ View,
+ Text,
+ Image,
+ Animated,
+ FlatList,
+ Dimensions,
} from "react-native";
const { width: SCREEN_WIDTH } = Dimensions.get("window");
export default function WelcomePage({ navigation }) {
- const [currentStep, setCurrentStep] = useState(0);
+ const [currentStep, setCurrentStep] = useState(0);
- const steps = [
- { id: 0, text: "Olá! Bem-vindo ao LUMICHECK!" },
- { id: 1, text: "Eu sou a Lumi. É um prazer poder conhecer-te!" },
- { id: 2, text: "Vamos começar?" },
- { id: 3, text: " " },
- ];
+ const steps = [
+ { id: 0, text: "Olá! Bem-vindo ao LUMICHECK!" },
+ { id: 1, text: "Eu sou a Lumi. É um prazer poder conhecer-te!" },
+ { id: 2, text: "Vamos começar?" },
+ { id: 3, text: " " },
+ ];
- const flatListRef = useRef(null);
+ const flatListRef = useRef(null);
- const handleScroll = (event) => {
- const offsetX = event.nativeEvent.contentOffset.x;
- const currentIndex = Math.round(offsetX / SCREEN_WIDTH);
- setCurrentStep(currentIndex);
- if (currentStep === steps.length - 1) {
- navigation.replace("Login");
- }
- };
+ const handleScroll = (event) => {
+ const offsetX = event.nativeEvent.contentOffset.x;
+ const currentIndex = Math.round(offsetX / SCREEN_WIDTH);
+ setCurrentStep(currentIndex);
+ if (currentStep === steps.length - 1) {
+ navigation.replace("HomeTabs");
+ }
+ };
- return (
-
- {/* Texto principal */}
-
- (
-
-
-
- {item.text}
-
-
- {/* Imagem */}
-
-
-
+ return (
+
+ {/* Texto principal */}
+
+ (
+
+
+
+ {item.text}
+
+
+ {/* Imagem */}
+
+
+
+
+ )}
+ horizontal
+ showsHorizontalScrollIndicator={false}
+ pagingEnabled
+ onScroll={handleScroll}
+ keyExtractor={(item) => item.id.toString()}
+ scrollEventThrottle={16} // Optimize scroll updates
+ />
- )}
- horizontal
- showsHorizontalScrollIndicator={false}
- pagingEnabled
- onScroll={handleScroll}
- keyExtractor={(item) => item.id.toString()}
- scrollEventThrottle={16} // Optimize scroll updates
- />
-
- {/* Barra de progresso */}
-
-
- {steps.map((_, index) => (
-
- ))}
-
+ {/* Barra de progresso */}
+
+
+ {steps.map((_, index) => (
+
+ ))}
+
- {/* Texto fixo indicando para deslizar */}
-
-
- Desliza
-
-
-
- );
+ {/* Texto fixo indicando para deslizar */}
+
+
+ Desliza
+
+
+
+ );
}
diff --git a/tailwind.config.js b/tailwind.config.js
index 0c2203c..71ba61d 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -14,7 +14,7 @@ module.exports = {
"light-gray": "#d0d0d0",
},
fontFamily: {
- sans: ["Quicksand_Regular"],
+ regular: ["Quicksand_Regular"],
bold: ["Quicksand_Bold"],
},
},