diff --git a/src/components/Background/Background.jsx b/src/components/Background/Background.tsx similarity index 56% rename from src/components/Background/Background.jsx rename to src/components/Background/Background.tsx index 88cd57d..a578004 100644 --- a/src/components/Background/Background.jsx +++ b/src/components/Background/Background.tsx @@ -1,13 +1,18 @@ import styles from "./Background.module.css"; -import { useEffect, useRef, useState } from "react"; +import { useEffect, useRef, useState, ReactNode } from "react"; -const Background = ({ children, className }) => { +interface BackgroundProps { + children?: ReactNode; + className?: string; +} - const circlesRef = useRef([]); +const Background = ({ children, className }: BackgroundProps) => { + + const circlesRef = useRef<(HTMLDivElement | null)[]>([]); const [theme, setTheme] = useState("light"); - const getRandomTranslation = () => { - const randomX = Math.floor(Math.random() * 100) - 30; + const getRandomTranslation = (): { x: number; y: number } => { + const randomX = Math.floor(Math.random() * 100) - 30; const randomY = Math.floor(Math.random() * 100) - 30; return { x: randomX, y: randomY }; }; @@ -27,7 +32,7 @@ const Background = ({ children, className }) => { setTheme(localStorage.getItem("theme") || "light"); }; - updateTheme(); // Initial load + updateTheme(); window.addEventListener("theme-changed", updateTheme); @@ -40,29 +45,29 @@ const Background = ({ children, className }) => { return (
Quentin T'jampens
-Antoine Ordonneau
-Malo Leblond
+Quentin T'JAMPENS
+Antoine ORDONNEAU
+Malo LEBLOND
- Giovanni Josserand ( + Giovanni JOSSERAND ( linktree )
@@ -60,4 +60,4 @@ export default function Footer(){ > -} \ No newline at end of file +} diff --git a/src/components/Header/Header.jsx b/src/components/Header/Header.tsx similarity index 84% rename from src/components/Header/Header.jsx rename to src/components/Header/Header.tsx index bd4b821..ea8bf8c 100644 --- a/src/components/Header/Header.jsx +++ b/src/components/Header/Header.tsx @@ -1,5 +1,5 @@ import { Link, NavLink } from "react-router"; -import {useContext, useEffect, useRef, useState} from "react"; +import { useContext, useEffect, useRef, useState } from "react"; import styles from "./Header.module.css" import getUserNotifications from "../../utils/notifications/getUserNotifications.js"; import deleteNotificationUser from "../../utils/notifications/deleteNotificationUser.js"; @@ -7,34 +7,35 @@ import initEcho from "../../utils/echo/initEcho.js" import readNotifications from "../../utils/notifications/readNotifications.js"; import { userCreatedListener } from "../../utils/echo/listeners/userCreatedListener"; import { userNotificationsListener } from "../../utils/echo/listeners/userNotificationsListener.js"; -import NotificationCard from "../NotificationCard/NotificationCard.jsx"; +import NotificationCard from "../NotificationCard/NotificationCard"; import { EventContext } from "../../contexts/Events/EventContext.js"; -import {AuthContext} from "../../contexts/Auth/AuthContext.js"; +import { AuthContext } from "../../contexts/Auth/AuthContext.js"; import { PendingMembersContext } from "../../contexts/PendingMembers/PendingMembersContext"; +import Notification from "../../interfaces/notification.interface"; function Header() { - const { update, user } = useContext(AuthContext); - const { updateEvent } = useContext(EventContext); - const [notificationMenu, setnotificationMenu] = useState(false); - const [unreadNotification, setunreadNotification] = useState(false); - const [mobileMenu, setMobileMenu] = useState(false); - const [notifications, setNotifications] = useState([]); - const notificationRef = useRef(null); - const { updatePendingMembers } = useContext(PendingMembersContext); + const { update, user } = useContext(AuthContext)!; + const { updateEvent } = useContext(EventContext)!; + const { updatePendingMembers } = useContext(PendingMembersContext) as unknown as { updatePendingMembers: () => void }; + const [notificationMenu, setnotificationMenu] = useState
Le responsable du traitement des données personnelles est Monsieur FRÈRE Robin
-
Il est responsable de la collecte et de l’utilisation des données personnelles conformément au Règlement Général sur la Protection des Données (RGPD – UE 2016/679).
+
Il est responsable de la collecte et de l'utilisation des données personnelles conformément au Règlement Général sur la Protection des Données (RGPD – UE 2016/679).
Les données susceptibles d’être collectées sont notamment :
+Les données susceptibles d'être collectées sont notamment :
Les traitements reposent sur :
Les données sont conservées :
Les logs techniques sont conservés pour une durée maximale de 2 mois.
@@ -83,10 +83,10 @@ export default function RGPDPage() {Les données sont accessibles uniquement :
Aucune donnée n’est vendue ou cédée à des tiers.
+Aucune donnée n'est vendue ou cédée à des tiers.
L’hébergeur garantit un niveau de sécurité conforme au RGPD.
+L'hébergeur garantit un niveau de sécurité conforme au RGPD.
Conformément au RGPD, vous disposez des droits suivants :
Si vous estimez que vos droits ne sont pas respectés, vous pouvez introduire une réclamation auprès de la :
-
CNIL – Commission Nationale de l’Informatique et des Libertés
+
CNIL – Commission Nationale de l'Informatique et des Libertés
Site : https://www.cnil.fr