diff --git a/assets/icons/check.svg b/assets/icons/check.svg
new file mode 100644
index 0000000..9fd33d4
--- /dev/null
+++ b/assets/icons/check.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/icons/helpcontacts.svg b/assets/icons/helpcontacts.svg
new file mode 100644
index 0000000..acfa9f6
--- /dev/null
+++ b/assets/icons/helpcontacts.svg
@@ -0,0 +1,4 @@
+
diff --git a/assets/icons/question.svg b/assets/icons/question.svg
new file mode 100644
index 0000000..5fb4a5f
--- /dev/null
+++ b/assets/icons/question.svg
@@ -0,0 +1,9 @@
+
diff --git a/assets/icons/trophygold.svg b/assets/icons/trophygold.svg
new file mode 100644
index 0000000..67d83ed
--- /dev/null
+++ b/assets/icons/trophygold.svg
@@ -0,0 +1,12 @@
+
diff --git a/assets/sintome.png b/assets/sintome.png
new file mode 100644
index 0000000..8cb43d3
Binary files /dev/null and b/assets/sintome.png differ
diff --git a/package-lock.json b/package-lock.json
index 322183a..065fd07 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,6 +16,7 @@
"@react-navigation/native-stack": "^7.2.0",
"expo": "~52.0.23",
"expo-font": "~13.0.2",
+ "expo-linear-gradient": "~14.0.1",
"expo-splash-screen": "~0.29.18",
"expo-status-bar": "~2.0.0",
"nativewind": "^4.1.23",
@@ -26,7 +27,7 @@
"react-native-reanimated": "^3.16.6",
"react-native-safe-area-context": "4.12.0",
"react-native-screens": "^4.4.0",
- "react-native-svg": "^15.10.1",
+ "react-native-svg": "15.8.0",
"react-native-svg-transformer": "^1.5.0",
"react-native-vector-icons": "^10.2.0",
"react-native-web": "~0.19.13"
@@ -6328,6 +6329,17 @@
"react": "*"
}
},
+ "node_modules/expo-linear-gradient": {
+ "version": "14.0.1",
+ "resolved": "https://registry.npmjs.org/expo-linear-gradient/-/expo-linear-gradient-14.0.1.tgz",
+ "integrity": "sha512-apGtUO9AZ52ZWvX9f6K9TamWw8XcUby7jZ0Pcvd5LxUO7pl7tDPx2VlKqpzbhhS4yfCiUwX58wqocwVnE/0ZVg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "expo": "*",
+ "react": "*",
+ "react-native": "*"
+ }
+ },
"node_modules/expo-modules-autolinking": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-2.0.4.tgz",
@@ -10187,9 +10199,9 @@
}
},
"node_modules/react-native-svg": {
- "version": "15.10.1",
- "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.10.1.tgz",
- "integrity": "sha512-Hqz/doQciVFK/Df2v+wsW96oY5jxlta7rZ31KQYo78dlgvAHEaGr6paEOAMvlIruw7EHNQ0Vc1ZmJPJF2kfIPQ==",
+ "version": "15.8.0",
+ "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.8.0.tgz",
+ "integrity": "sha512-KHJzKpgOjwj1qeZzsBjxNdoIgv2zNCO9fVcoq2TEhTRsVV5DGTZ9JzUZwybd7q4giT/H3RdtqC3u44dWdO0Ffw==",
"license": "MIT",
"dependencies": {
"css-select": "^5.1.0",
diff --git a/package.json b/package.json
index 8582bf9..3e91be9 100644
--- a/package.json
+++ b/package.json
@@ -27,10 +27,11 @@
"react-native-reanimated": "^3.16.6",
"react-native-safe-area-context": "4.12.0",
"react-native-screens": "^4.4.0",
- "react-native-svg": "^15.10.1",
+ "react-native-svg": "15.8.0",
"react-native-svg-transformer": "^1.5.0",
"react-native-vector-icons": "^10.2.0",
- "react-native-web": "~0.19.13"
+ "react-native-web": "~0.19.13",
+ "expo-linear-gradient": "~14.0.1"
},
"devDependencies": {
"@babel/core": "^7.20.0",
diff --git a/src/App.js b/src/App.js
index e303162..902a8e7 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,5 +1,5 @@
import React from "react";
-import { Text, View } from "react-native";
+import { Text, View, StatusBar } from "react-native";
import { NavigationContainer } from "@react-navigation/native";
import { createNativeStackNavigator } from "@react-navigation/native-stack";
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
@@ -30,7 +30,7 @@ export default function App() {
if (!fontsLoaded) {
return (
-
+
Carregando fontes...
);
@@ -46,9 +46,14 @@ export default function App() {
screenOptions={({ route }) => ({
headerShown: false,
tabBarShowLabel: false,
+ tabBarStyle: {
+ paddingTop: 5, // Espaçamento superior dentro da barra
+ paddingBottom: 5, // Espaçamento inferior dentro da barra
+ backgroundColor: "#fff", // Cor de fundo da barra
+ },
tabBarIcon: ({ focused, size }) => {
let IconComponent;
- let color = focused ? "#fcc766" : "#d0d0d0"; // Define as cores: ativo e inativo
+ let color = focused ? "#fcc766" : "#d0d0d0";
switch (route.name) {
case "Home":
@@ -70,7 +75,7 @@ export default function App() {
IconComponent = null;
}
- return ;
+ return ;
},
tabBarActiveTintColor: "#fcc766",
tabBarInactiveTintColor: "#d0d0d0",
@@ -87,26 +92,29 @@ export default function App() {
// Stack Navigator (para gerenciar Welcome e HomeTabs)
return (
-
-
- {/* Tela de boas-vindas sem navbar */}
-
-
- {/* Tela HomeTabs com navbar */}
-
-
-
+ <>
+
+
+
+ {/* Tela de boas-vindas sem navbar */}
+
+
+ {/* Tela HomeTabs com navbar */}
+
+
+
+ >
);
}
diff --git a/src/components/Task.js b/src/components/Task.js
new file mode 100644
index 0000000..bcdb4d7
--- /dev/null
+++ b/src/components/Task.js
@@ -0,0 +1,17 @@
+import React from "react";
+import { Text, View } from "react-native";
+import CheckIcon from "../../assets/icons/check.svg";
+
+const Task = ({ taskText, isCompleted }) => (
+
+ {taskText}
+
+
+
+);
+
+export default Task;
\ No newline at end of file
diff --git a/src/pages/HomePage.js b/src/pages/HomePage.js
index c6d649b..b1808d5 100644
--- a/src/pages/HomePage.js
+++ b/src/pages/HomePage.js
@@ -1,10 +1,96 @@
import React from "react";
-import { Text, View } from "react-native";
+import { Text, View, Image, TouchableOpacity, ScrollView } from "react-native";
+import { LinearGradient } from "expo-linear-gradient";
+import Task from "../components/Task";
+
+// Importar os ícones SVG diretamente
+import TrophyGoldIcon from "../../assets/icons/trophygold.svg";
+import QuestionIcon from "../../assets/icons/question.svg";
+import HelpContactsIcon from "../../assets/icons/helpcontacts.svg";
export default function HomePage() {
return (
-
- Home
-
+
+
+
+
+
+ {/* Secção de Ícones e Pontos */}
+
+ {/* Ícone de "?" */}
+
+ 14
+
+
+
+ {/* Ícone de troféu */}
+
+ 2
+
+
+
+
+
+
+ {/* Ícone PNG */}
+
+
+ {/* Texto de boas-vindas */}
+
+ Olá, Rodrigo!
+
+
+ {/* Botão de Monitorização */}
+
+ Começar Monitorização
+
+
+ {/* Secção de Tarefas Diárias */}
+
+ {/* Cabeçalho da seção */}
+
+ Tarefas Diárias
+ 7 HORAS
+
+
+ {/* Tarefas */}
+
+
+
+
+ {/* Literacia */}
+
+ Sabias que
+ Ter uma adição pode prejudicar seriamente o nosso trabalho e as nossas relações.
+
+ Aprender mais em
+
+
+
+
+ {/* Informação de contactos */}
+
+
+ Existem 96 profissionais de saúde à tua disposição. Não hesites em contacta-los.
+
+
+
+
+
+
+
+
);
}
diff --git a/src/pages/TrophiesPage.js b/src/pages/TrophiesPage.js
index fd10d9b..05a558b 100644
--- a/src/pages/TrophiesPage.js
+++ b/src/pages/TrophiesPage.js
@@ -1,10 +1,66 @@
import React from "react";
-import { Text, View } from "react-native";
+import { Text, View, Image, TouchableOpacity, ScrollView } from "react-native";
+import { LinearGradient } from "expo-linear-gradient";
+import Task from "../components/Task";
+// Importar os ícones SVG diretamente
+import TrophyGoldIcon from "../../assets/icons/trophygold.svg";
+import QuestionIcon from "../../assets/icons/question.svg";
+import HelpContactsIcon from "../../assets/icons/helpcontacts.svg";
export default function TrophiesPage() {
return (
-
- Troféus
-
+
+
+
+
+
+
+ {/* Secção de Tarefas Diárias */}
+
+ {/* Cabeçalho */}
+
+ Tarefas Diárias
+
+
+ {/* Tarefas */}
+
+
+
+ {/* Ver todas */}
+
+ VER TODAS
+
+
+
+ {/* Literacia */}
+
+ Sabias que
+ Ter uma adição pode prejudicar seriamente o nosso trabalho e as nossas relações.
+
+ Aprender mais em
+
+
+
+
+ {/* Informação de contactos */}
+
+
+ Existem 96 profissionais de saúde à tua disposição. Não hesites em contacta-los.
+
+
+
+
+
+
+
+
);
}