diff --git a/app/(tabs)/(add)/AddScreen.tsx b/app/(tabs)/(add)/AddScreen.tsx
index e420054..04f5310 100644
--- a/app/(tabs)/(add)/AddScreen.tsx
+++ b/app/(tabs)/(add)/AddScreen.tsx
@@ -1,13 +1,16 @@
import {SafeAreaView, View, Text} from "react-native";
import React from "react";
+import InternalError from "@/components/error/InternalErrorProblem";
export default function AddScreen() {
return (
- Welcome to Add Screen
- We will do it soon
+
);
-}
\ No newline at end of file
+}
+
+//Welcome to Add Screen
+// We will do it soon
\ No newline at end of file
diff --git a/app/(tabs)/(help)/HelpsScreen.tsx b/app/(tabs)/(help)/HelpsScreen.tsx
index 48e20f0..c478b22 100644
--- a/app/(tabs)/(help)/HelpsScreen.tsx
+++ b/app/(tabs)/(help)/HelpsScreen.tsx
@@ -1,12 +1,12 @@
import {SafeAreaView, Text, View} from "react-native";
import React from "react";
+import Blocked from "@/components/error/BlockedProblem";
export default function HelpsScreen() {
return (
- Welcome to Help Screen
- We will do it soon
+
diff --git a/app/(utility)/Error.tsx b/app/(utility)/Error.tsx
new file mode 100644
index 0000000..259cedb
--- /dev/null
+++ b/app/(utility)/Error.tsx
@@ -0,0 +1,37 @@
+import Text from "@/components/ui/Text";
+import React, {forwardRef} from "react";
+import {Image, View, ViewProps} from "react-native";
+import BackButton from "@/components/BackButton";
+
+import {Entypo} from "@expo/vector-icons";
+
+export interface ProblemProps extends ViewProps{
+ picture: string;
+ problem: string;
+ description: string;
+ information: string;
+ isVisible?: boolean;
+}
+
+export default forwardRef (({className, ...Props}, ref) => {
+ return (
+
+
+
+
+
+
+
+
+
+ {Props.problem}
+ {Props.description}
+
+
+
+ {Props.information}
+
+
+
+ );
+});
\ No newline at end of file
diff --git a/app/+not-found.tsx b/app/+not-found.tsx
index 04514bf..dcac0d4 100644
--- a/app/+not-found.tsx
+++ b/app/+not-found.tsx
@@ -1,55 +1,18 @@
-import React from "react";
-import {
- Image,
- SafeAreaView,
- StatusBar,
- Text,
- TouchableOpacity,
- View,
-} from "react-native";
+import {Link, router, Stack, usePathname, useRouter} from 'expo-router';
+import {Button, StyleSheet, Text, View} from 'react-native';
-export default function NotFoundScreen() {
- return (
-
-
-
- {/* Back Button Area */}
-
- ⟨
-
-
- {/* Main Content */}
-
- {/* Magnifying Glass Image */}
-
- {/* Error Text */}
- Not Found
-
- {/* Error Message */}
-
- Whoops! Coach S can't find this page :(
-
-
- {/* Status Code */}
-
-
- :warning: Status Code: 404
-
-
+export default function NotFoundScreen() {
+ const pathname = usePathname();
+ const router = useRouter();
- {/* Home Button */}
-
-
- Take Me Home
-
-
+ return (
+ <>
+
+
+ This screen {pathname} doesn't exist: {pathname}
+
);
diff --git a/assets/images/Blocked.png b/assets/images/Blocked.png
new file mode 100644
index 0000000..eed9be7
Binary files /dev/null and b/assets/images/Blocked.png differ
diff --git a/assets/images/InternalError.png b/assets/images/InternalError.png
new file mode 100644
index 0000000..cc5854b
Binary files /dev/null and b/assets/images/InternalError.png differ
diff --git a/assets/images/Maintenance.png b/assets/images/Maintenance.png
new file mode 100644
index 0000000..4d35432
Binary files /dev/null and b/assets/images/Maintenance.png differ
diff --git a/assets/images/NoInternet.png b/assets/images/NoInternet.png
new file mode 100644
index 0000000..19be02a
Binary files /dev/null and b/assets/images/NoInternet.png differ
diff --git a/assets/images/NotAllowed.png b/assets/images/NotAllowed.png
new file mode 100644
index 0000000..be1ebf4
Binary files /dev/null and b/assets/images/NotAllowed.png differ
diff --git a/assets/images/NotFound.png b/assets/images/NotFound.png
new file mode 100644
index 0000000..651b820
Binary files /dev/null and b/assets/images/NotFound.png differ
diff --git a/components/Errors.tsx b/components/Errors.tsx
index f0e9a38..b85981e 100644
--- a/components/Errors.tsx
+++ b/components/Errors.tsx
@@ -1,3 +1,10 @@
export const EMPTY_FIELD = "Un des champs est vide !";
export const INVALID_EMAIL = "Adresse mail invalide !";
export const NOT_MATCHING_PASSWORD = "Les mots de passe sont différents";
+
+export const NOT_FOUND = "Ressource introuvable :<";
+export const NO_INTERNET = "Pas de connexion à internet";
+export const INTERNAL_ERROR = "Erreur interne, veuillez nous pardonner";
+export const MAINTENANCE = "Le serveur est en maintenance, veuillez réessayer plus tard";
+export const NOT_AUTHORIZED = "Vous n'êtes pas autorisé à accéder à cette ressource";
+export const FEATURE_LOCKED = "Cette fonctionnalité est verrouillée";
\ No newline at end of file
diff --git a/components/WorkoutCardComponent.tsx b/components/WorkoutCardComponent.tsx
index 310895c..8bc119b 100644
--- a/components/WorkoutCardComponent.tsx
+++ b/components/WorkoutCardComponent.tsx
@@ -2,7 +2,6 @@ import { Workout } from "@/model/Workout";
import { AntDesign, MaterialCommunityIcons } from "@expo/vector-icons";
import { useRouter } from "expo-router";
import React from "react";
-import { ImageBackground, Text, TouchableOpacity, View } from "react-native";
interface WorkoutCardComponentProps {
exercise?: Workout;
diff --git a/components/error/BlockedProblem.tsx b/components/error/BlockedProblem.tsx
new file mode 100644
index 0000000..be92d2a
--- /dev/null
+++ b/components/error/BlockedProblem.tsx
@@ -0,0 +1,15 @@
+import React from "react";
+import {FEATURE_LOCKED} from "@/components/Errors";
+import Error from "@/app/(utility)/Error";
+import blockedPict from "@/assets/images/Blocked.png";
+
+export default function Blocked() {
+ return (
+
+ );
+}
\ No newline at end of file
diff --git a/components/error/InternalErrorProblem.tsx b/components/error/InternalErrorProblem.tsx
new file mode 100644
index 0000000..371a33f
--- /dev/null
+++ b/components/error/InternalErrorProblem.tsx
@@ -0,0 +1,15 @@
+import React from "react";
+import {INTERNAL_ERROR} from "@/components/Errors";
+import Error from "@/app/(utility)/Error";
+import internalErrorPict from "@/assets/images/InternalError.png";
+
+export default function InternalError() {
+ return (
+
+ );
+}
\ No newline at end of file
diff --git a/components/error/MaintenanceProblem.tsx b/components/error/MaintenanceProblem.tsx
new file mode 100644
index 0000000..f1de7f6
--- /dev/null
+++ b/components/error/MaintenanceProblem.tsx
@@ -0,0 +1,15 @@
+import React from "react";
+import {MAINTENANCE} from "@/components/Errors";
+import Error from "@/app/(utility)/Error";
+import maintenancePict from "@/assets/images/Maintenance.png";
+
+export default function Maintenance() {
+ return (
+
+ );
+}
\ No newline at end of file
diff --git a/components/error/NoInternetProblem.tsx b/components/error/NoInternetProblem.tsx
new file mode 100644
index 0000000..70544a7
--- /dev/null
+++ b/components/error/NoInternetProblem.tsx
@@ -0,0 +1,15 @@
+import React from "react";
+import {NO_INTERNET} from "@/components/Errors";
+import Error from "@/app/(utility)/Error";
+import noInternetPict from "@/assets/images/NoInternet.png";
+
+export default function NoInternet() {
+ return (
+
+ );
+}
\ No newline at end of file
diff --git a/components/error/NotAllowedProblem.tsx b/components/error/NotAllowedProblem.tsx
new file mode 100644
index 0000000..e9351db
--- /dev/null
+++ b/components/error/NotAllowedProblem.tsx
@@ -0,0 +1,15 @@
+import React from "react";
+import {NOT_AUTHORIZED} from "@/components/Errors";
+import Error from "@/app/(utility)/Error";
+import notAllowedPict from "@/assets/images/NotAllowed.png";
+
+export default function NotAllowedProblem() {
+ return (
+
+ );
+}
\ No newline at end of file
diff --git a/components/error/NotFoundProblem.tsx b/components/error/NotFoundProblem.tsx
new file mode 100644
index 0000000..21cab7b
--- /dev/null
+++ b/components/error/NotFoundProblem.tsx
@@ -0,0 +1,15 @@
+import React from "react";
+import {NOT_FOUND} from "@/components/Errors";
+import Error from "@/app/(utility)/Error";
+import notFoundPict from "@/assets/images/NotFound.png";
+
+export default function NotFound() {
+ return (
+
+ );
+}
\ No newline at end of file