diff --git a/src/components/ui/Input/Input.tsx b/src/components/ui/Input/Input.tsx index 0ced004..8f523b2 100644 --- a/src/components/ui/Input/Input.tsx +++ b/src/components/ui/Input/Input.tsx @@ -11,14 +11,14 @@ interface TextInputProps extends InputHTMLAttributes { } const TextInput = ({ - placeholder, - onChange, - value, - borderStyle = "square", - password, - className = "", - ...props - }: TextInputProps) => { + placeholder = "", + onChange, + value = "", + borderStyle = "square", + password = false, + className = "", + ...props +}: TextInputProps) => { const [showPassword, setShowPassword] = useState(false); let inputBorderStyle = styles.square; @@ -28,15 +28,16 @@ const TextInput = ({ setShowPassword((prev) => !prev); }; - if (password) + if (password) { return (
-
); + } return ( void; login: (email: string, password: string) => Promise<{ status: number }>; } diff --git a/src/contexts/Events/EventContext.ts b/src/contexts/Events/EventContext.ts index f3c7792..166a883 100644 --- a/src/contexts/Events/EventContext.ts +++ b/src/contexts/Events/EventContext.ts @@ -1,8 +1,3 @@ -/*import { createContext } from "react"; - -export const EventContext = createContext(null);*/ - - import { createContext } from "react"; export type Task = { diff --git a/src/layout.jsx b/src/layout.jsx index d4a492b..4f94287 100644 --- a/src/layout.jsx +++ b/src/layout.jsx @@ -5,13 +5,16 @@ import Background from "./components/Background/Background.jsx"; import { Navigate } from "react-router"; import { useContext} from "react"; import { AuthContext } from "./contexts/Auth/AuthContext.js"; +import Loading from "./components/ui/Loading/Loading.tsx"; function Layout(){ const { user, loading } = useContext(AuthContext); - if (loading) return

Loading

; + if (loading) return + + ; if (!user) return ; if(user && user.validate === 0) return ; diff --git a/src/pages/Admin/AdminPage.jsx b/src/pages/Admin/AdminPage.jsx index 7d36503..5765849 100644 --- a/src/pages/Admin/AdminPage.jsx +++ b/src/pages/Admin/AdminPage.jsx @@ -1,8 +1,8 @@ import { useContext } from "react"; import styles from "./AdminPage.module.css"; -import IncompleteEvents from "./components/IncompleteEvent/IncompleteEvent.jsx"; -import PendingMembers from "./components/PendingMembers/PendingMembers.jsx"; -import { AuthContext } from "../../contexts/Auth/AuthContext.js"; +import IncompleteEvents from "./components/IncompleteEvent/IncompleteEvent"; +import PendingMembers from "./components/PendingMembers/PendingMembers"; +import { AuthContext } from "../../contexts/Auth/AuthContext"; import { useNavigate } from "react-router"; import RegisterMember from "./components/RegisterMember/RegisterMember"; diff --git a/src/pages/Admin/components/PendingMembers/PendingMembers.jsx b/src/pages/Admin/components/PendingMembers/PendingMembers.jsx index d93714a..473e536 100644 --- a/src/pages/Admin/components/PendingMembers/PendingMembers.jsx +++ b/src/pages/Admin/components/PendingMembers/PendingMembers.jsx @@ -7,8 +7,6 @@ import deleteOtherUser from "../../../../utils/users/deleteOtherUser.js"; import { PendingMembersContext } from "../../../../contexts/PendingMembers/PendingMembersContext"; function PendingMembers() { - - const [open, setOpen] = useState(false); const [message, setMessage] = useState(""); const [title, setTitle] = useState(""); diff --git a/src/pages/Home/components/EventList/EventList.tsx b/src/pages/Home/components/EventList/EventList.tsx index 711d057..5d36f63 100644 --- a/src/pages/Home/components/EventList/EventList.tsx +++ b/src/pages/Home/components/EventList/EventList.tsx @@ -1,38 +1,3 @@ -/*import { useMemo } from "react"; -import styles from "./eventList.module.css"; -import EventItem from "./eventItem.jsx"; -import { EventContext } from "../../../../contexts/events/EventContext.js"; -import { useContext } from "react"; - -function EventList() { - // Utilise une valeur par défaut pour `events` si elle est `undefined` - const { events = [] } = useContext(EventContext); - - const sortedEvents = useMemo(() => { - // Vérifie explicitement que `events` est un tableau avant de trier - if (!Array.isArray(events)) return []; - return [...events].sort( - (a, b) => new Date(a.start) - new Date(b.start) - ); - }, [events]); - - return ( -
-

Liste des événements à venir

- {sortedEvents.length > 0 ? ( -
- {sortedEvents.map((eventGroup, index) => ( - - ))} -
- ) : ( -

Aucun événement planifié pour l'instant.

- )} -
- ); -} - -export default EventList;*/ import { useMemo, useContext } from "react"; import styles from "./EventList.module.css"; import EventItem from "./EventItem"; diff --git a/src/pages/Login/LoginPage.tsx b/src/pages/Login/LoginPage.tsx new file mode 100644 index 0000000..9868eaa --- /dev/null +++ b/src/pages/Login/LoginPage.tsx @@ -0,0 +1,28 @@ +import styles from "./LoginPage.module.css"; +import LoginForm from "./components/LoginForm/LoginForm"; +import Background from "../../components/Background/Background.jsx"; +import { useEffect, useContext } from "react"; +import { AuthContext, AuthContextType } from "../../../src/contexts/Auth/AuthContext"; +import { useNavigate } from "react-router"; + +function LoginPage() { + const { user, loading } = useContext(AuthContext) as AuthContextType; + const navigate = useNavigate(); + + useEffect(() => { + if (!loading && user) { + navigate("/"); + } + }, [loading, user, navigate]); + + return ( + +
+

Connexion

+ +
+
+ ); +} + +export default LoginPage; \ No newline at end of file diff --git a/src/pages/Profile/ProfilePage.module.css b/src/pages/Profile/ProfilePage.module.css index 2bcecee..a47a7a7 100644 --- a/src/pages/Profile/ProfilePage.module.css +++ b/src/pages/Profile/ProfilePage.module.css @@ -1,4 +1,3 @@ -/* Conteneur principal */ .container { width: 100%; padding: 12px; @@ -113,7 +112,6 @@ margin: 0; } -/* Conteneur des informations principales */ .topDescription { display: flex; flex-direction: column; @@ -122,14 +120,12 @@ margin-bottom: 20px; } -/* Bloc d'informations */ .infoBlock { width: 100%; padding: 12px; box-sizing: border-box; } -/* Conteneur pour les paramètres */ .settingImage { width: 100%; display: flex; @@ -137,7 +133,6 @@ margin-top: 16px; } -/* Adaptation pour tablette et PC */ @media (min-width: 768px) { .contentWrapper { flex-direction: row; diff --git a/src/pages/Profile/ProfilePage.tsx b/src/pages/Profile/ProfilePage.tsx index 9ec3b79..897ff61 100644 --- a/src/pages/Profile/ProfilePage.tsx +++ b/src/pages/Profile/ProfilePage.tsx @@ -1,6 +1,7 @@ +import getXSRFToken from "../../utils/getXSRF.js"; import {useContext, useEffect, useState} from "react"; import styles from "./ProfilePage.module.css"; -import {AuthContext} from "../../contexts/Auth/AuthContext"; +import {AuthContext} from "../../../src/contexts/Auth/AuthContext.js"; import formatDate from "../../utils/date/formatDate"; import Task from "../../components/Task/Task"; import SettingsModal from "./components/SettingsModal/SettingsModal"; @@ -9,26 +10,24 @@ import {useNavigate} from "react-router"; import {useRef} from "react"; import getUserById from "../../utils/users/getUserById.js"; import ManageMember from "./components/ManageMember/ManageMember.jsx"; - import uploadProfilePhoto from "../../utils/users/uploadProfilePhoto"; import deleteProfilePhoto from "../../utils/users/deleteProfilePhoto.js"; - interface TaskType { - id: number; - name: string; - description: string; - location: string; - start: string; - end: string; - max_participants: number; - events_id: number; - created_at: string; - updated_at: string; - pivot: { - user_id: number; - task_id: number; - }; + id: number; + name: string; + description: string; + location: string; + start: string; + end: string; + max_participants: number; + events_id: number; + created_at: string; + updated_at: string; + pivot: { + user_id: number; + task_id: number; + }; } @@ -51,162 +50,139 @@ interface AuthContextType { } function ProfilePage() { - const navigate = useNavigate(); - const {id} = useParams(); - const {user, update} = useContext(AuthContext) as AuthContextType; - const [profileUser, setProfileUser] = useState(null); - const [profilePicture, setProfilePicture] = useState(null); - const [error, setError] = useState(null); - const [success, setSuccess] = useState(null); - const fileInputRef = useRef(null); + const navigate = useNavigate(); + const { id } = useParams(); + const { user, update } = useContext(AuthContext) as AuthContextType; + const [profileUser, setProfileUser] = useState(null); + const [profilePicture, setProfilePicture] = useState(null); + const fileInputRef = useRef(null); - const isOwnProfile = !id || user?.id.toString() === id; + const isOwnProfile = !id || user?.id.toString() === id; - useEffect(() => { - (async () => { - if (!isOwnProfile && id) { - const res = await getUserById(id); - if (res.status === 404) { - navigate("/404"); - return; - } - if (res.status !== 200) { - console.error("Erreur lors du chargement du profil", res); - return; - } - setProfileUser(res.data); - } else { - update(); - setProfileUser(user); - if (user?.profile_photo_path) { - setProfilePicture(`${import.meta.env.VITE_API_URL}/storage/${user.profile_photo_path}`); - } - } - })(); - }, [user, id]); - - const handleEditPictureClick = () => { - if (fileInputRef.current) { - fileInputRef.current.click(); + useEffect(() => { + (async () => { + console.log(JSON.stringify(import.meta.env.VITE_API_URL)); + if (!isOwnProfile && id) { + const res = await getUserById(id); + if (res.status === 404) { + navigate("/404"); + return; } - }; - - // Remplacé : handleFileChange extrait vers utils/users/uploadProfilePhoto - const handleFileChange = async (e: React.ChangeEvent) => { - const file = e.target.files?.[0]; - if (!file) return; - - try { - const res = await uploadProfilePhoto(file); - if (res.ok) { - setProfilePicture(`${import.meta.env.VITE_API_URL}/storage/${res.data.profile_photo_path}`); - setSuccess("Photo mise à jour !"); - setError(null); - await update(); - } else { - setError(res.data?.message || res.error || "Erreur lors de l'upload."); - setSuccess(null); - } - } catch (err) { - setError("Erreur réseau."); - setSuccess(null); + if (res.status !== 200) { + console.log("Erreur lors du chargement du profil", res); + return; } - }; - - // Remplacé : handleDeletePicture extrait vers utils/users/deleteProfilePhoto - const handleDeletePicture = async () => { - try { - const res = await deleteProfilePhoto(); - if (res.status >= 200 && res.status < 300) { - setProfilePicture(null); - setSuccess("Photo supprimée !"); - setError(null); - await update(); - } else { - setError(res.data?.message || "Erreur lors de la suppression."); - setSuccess(null); - } - } catch (err) { - setError("Erreur réseau."); - setSuccess(null); + setProfileUser(res.data); + } else { + setProfileUser(user); + if (user?.profile_photo_path) { + setProfilePicture(`${import.meta.env.VITE_API_URL}/storage/${user.profile_photo_path}`); } - }; + } + })(); + }, [user, id]); - return ( -
-
-
-
- Photo de profil -
+ const handleEditPictureClick = () => { + if (fileInputRef.current) { + fileInputRef.current.click(); + } + }; - {isOwnProfile && ( -
- - {user?.profile_photo_path && ( - - )} -
- )} + const handleFileChange = async (e: React.ChangeEvent) => { + const file = e.target.files?.[0]; + if (!file) return; - - {error &&

{error}

} - {success &&

{success}

} + try { + const res = await uploadProfilePhoto(file); + if (res.ok) { + setProfilePicture(`${import.meta.env.VITE_API_URL}/storage/${res.data.profile_photo_path}`); + console.log("Photo mise à jour") + await update(); + } else { + console.log(res.data?.message || res.error || "Erreur lors de l'upload."); + } + } catch (err) { + console.log("Erreur réseau."); + } + }; + const handleDeletePicture = async () => { + + deleteProfilePhoto(); + setProfilePicture(null); + }; -
-
-

- {profileUser?.name} {profileUser?.lastname} -

- {user?.isAdmin && profileUser && !isOwnProfile && ( - - )} -
+ return ( +
+
+
+
+ Photo de profil +
-
-
-

Role : {profileUser?.role}

-

Membre depuis : {profileUser && formatDate(profileUser.created_at)} -

-
- -
-

Mail : {profileUser?.email}

-

Téléphone : {profileUser?.phone ?? "Non renseigné"}

-
- - {isOwnProfile && ( -
- -
- )} -
- -

Tâches :

- {profileUser?.tasks.length ? ( - profileUser.tasks.map((task) =>) - ) : ( -

Aucune tâche.

- )} -
-
+ {isOwnProfile && ( +
+ + {user?.profile_photo_path && ( + + )}
+ )} + + + +
+
+

+ {profileUser?.name} {profileUser?.lastname} +

+ {user?.isAdmin && profileUser && !isOwnProfile && ( + + )} +
+ +
+
+

Role : {profileUser?.role}

+

Membre depuis : {profileUser && formatDate(profileUser.created_at)}

+
+ +
+

Mail : {profileUser?.email}

+

Téléphone : {profileUser?.phone ?? "Non renseigné"}

+
+ + {isOwnProfile && ( +
+ +
+ )} +
+ +

Tâches :

+ {profileUser?.tasks.length ? ( + profileUser.tasks.map((task) => ) + ) : ( +

Aucune tâche.

+ )} +
- ); +
+
+ ); } export default ProfilePage; \ No newline at end of file diff --git a/src/utils/auth/login.js b/src/utils/auth/login.js deleted file mode 100644 index 1d99d02..0000000 --- a/src/utils/auth/login.js +++ /dev/null @@ -1,13 +0,0 @@ -import fetchWrapper from "../fetchWrapper.js"; -import getXSRFToken from "../getXSRF.js"; - -export default async function login(email, password) { - const csrfToken = await getXSRFToken(); - - return fetchWrapper( - "/api/users/login", - { email, password }, - "POST", - { "X-XSRF-TOKEN": csrfToken } - ); -} diff --git a/src/utils/auth/login.ts b/src/utils/auth/login.ts new file mode 100644 index 0000000..3c7c6e2 --- /dev/null +++ b/src/utils/auth/login.ts @@ -0,0 +1,14 @@ +import fetchWrapper from "../fetchWrapper"; +import getXSRFToken from "../getXSRF"; + + + +export default async function login(email: string, password: string) { + const csrfToken: string = await getXSRFToken(); + return fetchWrapper( + "/api/users/login", + { email, password }, + "POST", + { "X-XSRF-TOKEN": csrfToken } + ); +} \ No newline at end of file diff --git a/src/utils/auth/logout.js b/src/utils/auth/logout.ts similarity index 100% rename from src/utils/auth/logout.js rename to src/utils/auth/logout.ts diff --git a/src/utils/date/formatDateLetter.ts b/src/utils/date/formatDateLetter.ts index f4c3f91..1da9160 100644 --- a/src/utils/date/formatDateLetter.ts +++ b/src/utils/date/formatDateLetter.ts @@ -1,35 +1,3 @@ - - -/*export function formatDateLetter(d) { - if (!d) return "Date inconnue"; - - const dateObj = new Date(d); - if (isNaN(dateObj.getTime())) return "Date invalide"; - - const monthNames = [ - "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", - "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre" - ]; - - const day = dateObj.getDate().toString().padStart(2, "0"); - const month = monthNames[dateObj.getMonth()]; - const year = dateObj.getFullYear(); - const hours = dateObj.getHours().toString().padStart(2, "0"); - const minutes = dateObj.getMinutes().toString().padStart(2, "0"); - - return `${day} ${month} ${year} à ${hours}:${minutes}`; -} - - -export function formatDateLetterJS(d) { - const monthNames = [ - "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", - "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre" - ]; - const [year, month, day] = d.split('-'); - return `${day} ${monthNames[parseInt(month) - 1]} ${year}`; -}*/ - export function formatDateLetter(d: string | Date | null | undefined): string { if (!d) return "Date inconnue"; diff --git a/src/utils/events/createEvent.js b/src/utils/events/createEvent.ts similarity index 52% rename from src/utils/events/createEvent.js rename to src/utils/events/createEvent.ts index 764d419..eac4b13 100644 --- a/src/utils/events/createEvent.js +++ b/src/utils/events/createEvent.ts @@ -1,7 +1,7 @@ -import fetchWrapper from "../fetchWrapper.js"; -import getXSRFToken from "../getXSRF.js"; +import fetchWrapper from "../fetchWrapper"; +import getXSRFToken from "../getXSRF"; -export default async function createEvent(name, description, start, end) { +export default async function createEvent(name:string, description:string, start:string, end:string) { const csrfToken = await getXSRFToken(); return fetchWrapper( diff --git a/src/utils/events/deleteEvent.js b/src/utils/events/deleteEvent.ts similarity index 57% rename from src/utils/events/deleteEvent.js rename to src/utils/events/deleteEvent.ts index 10c8a49..7a748a1 100644 --- a/src/utils/events/deleteEvent.js +++ b/src/utils/events/deleteEvent.ts @@ -1,7 +1,7 @@ -import fetchWrapper from "../fetchWrapper.js"; -import getXSRFToken from "../getXSRF.js"; +import fetchWrapper from "../fetchWrapper"; +import getXSRFToken from "../getXSRF"; -export default async function deleteEvent(eventId) { +export default async function deleteEvent(eventId:number) { const csrfToken = await getXSRFToken(); return fetchWrapper( diff --git a/src/utils/events/getAllEvents.js b/src/utils/events/getAllEvents.ts similarity index 68% rename from src/utils/events/getAllEvents.js rename to src/utils/events/getAllEvents.ts index b35f979..79bfc67 100644 --- a/src/utils/events/getAllEvents.js +++ b/src/utils/events/getAllEvents.ts @@ -1,4 +1,4 @@ -import fetchWrapper from "../fetchWrapper.js"; +import fetchWrapper from "../fetchWrapper"; export default async function getAllEvents() { return fetchWrapper("/api/events/", null, "GET"); diff --git a/src/utils/events/getEventById.js b/src/utils/events/getEventById.js index 97d6272..0b41625 100644 --- a/src/utils/events/getEventById.js +++ b/src/utils/events/getEventById.js @@ -1,4 +1,4 @@ -import fetchWrapper from "../fetchWrapper.js"; +import fetchWrapper from "../fetchWrapper"; export default async function GetEventById(id) { return fetchWrapper(`/api/events/${id}`, null, "GET"); diff --git a/src/utils/events/getEventById.ts b/src/utils/events/getEventById.ts new file mode 100644 index 0000000..70cb6db --- /dev/null +++ b/src/utils/events/getEventById.ts @@ -0,0 +1,5 @@ +import fetchWrapper from "../fetchWrapper"; + +export default async function GetEventById(id:number) { + return fetchWrapper(`/api/events/${id}`, null, "GET"); +} diff --git a/src/utils/fetchWrapper.ts b/src/utils/fetchWrapper.ts index a130373..4f04e5e 100644 --- a/src/utils/fetchWrapper.ts +++ b/src/utils/fetchWrapper.ts @@ -1,44 +1,3 @@ -/*export default async function fetchWrapper(path,data = null,method = "GET",headers = {}) { - try { - const res = await fetch( - `${import.meta.env.VITE_API_URL}${path}`, - { - method, - credentials: "include", - headers: { - "Accept": "application/json", - "Content-Type": "application/json", - ...headers, - }, - body: data ? JSON.stringify(data) : null, - } - ); - - let responseData = null; - - try { - responseData = await res.json(); - } catch (_) { - responseData = null; - } - - return { - status: res.status, - data: responseData, - }; - - } catch (err) { - console.error("❌ Erreur réseau :", err); - - return { - status: 0, - data: { - message: "Network error", - }, - }; - } -}*/ - interface FetchResponse { status: number; data: T | null; @@ -79,7 +38,7 @@ export default async function fetchWrapper( }; } catch (err) { - console.error("❌ Erreur réseau :", err); + console.error("Erreur réseau :", err); return { status: 0, diff --git a/src/utils/getRoles.js b/src/utils/getRoles.ts similarity index 68% rename from src/utils/getRoles.js rename to src/utils/getRoles.ts index 99cadb6..fd8d0d4 100644 --- a/src/utils/getRoles.js +++ b/src/utils/getRoles.ts @@ -1,4 +1,4 @@ -import fetchWrapper from "./fetchWrapper.js"; +import fetchWrapper from "./fetchWrapper"; export default async function getRoles() { return fetchWrapper("/api/roles", null, "GET"); diff --git a/src/utils/getUser.js b/src/utils/getUser.ts similarity index 67% rename from src/utils/getUser.js rename to src/utils/getUser.ts index 6d71295..811c2b5 100644 --- a/src/utils/getUser.js +++ b/src/utils/getUser.ts @@ -1,5 +1,5 @@ -import fetchWrapper from "./fetchWrapper.js"; +import fetchWrapper from "./fetchWrapper"; export default async function getUser() { return fetchWrapper("/api/users/me", null, "GET"); -} +} \ No newline at end of file diff --git a/src/utils/getXSRF.ts b/src/utils/getXSRF.ts index f96606d..c7b8048 100644 --- a/src/utils/getXSRF.ts +++ b/src/utils/getXSRF.ts @@ -1,23 +1,3 @@ -/*export default async function getXSRFToken() { - const response = await fetch(`${import.meta.env.VITE_API_URL}/sanctum/csrf-cookie`, { - method: 'GET', - credentials: 'include' - }); - - if (!response.ok && response.status !== 204) { - throw new Error(`Error : ${response.status}`); - } - - const name = 'XSRF-TOKEN'; - const value = `; ${document.cookie}`; - const parts = value.split(`; ${name}=`); - if (parts.length === 2) { - return decodeURIComponent(parts.pop().split(';').shift()); - } - - throw new Error('Error: Invalid XSRF-TOKEN'); -}*/ - export default async function getXSRFToken(): Promise { const response = await fetch(`${import.meta.env.VITE_API_URL}/sanctum/csrf-cookie`, { method: 'GET', diff --git a/src/utils/notifications/deleteNotificationUser.js b/src/utils/notifications/deleteNotificationUser.ts similarity index 92% rename from src/utils/notifications/deleteNotificationUser.js rename to src/utils/notifications/deleteNotificationUser.ts index b7d7a93..4322722 100644 --- a/src/utils/notifications/deleteNotificationUser.js +++ b/src/utils/notifications/deleteNotificationUser.ts @@ -1,6 +1,6 @@ -import getXSRFToken from "../getXSRF.js"; +import getXSRFToken from "../getXSRF"; -export default async function deleteNotificationUser(notificationId) { +export default async function deleteNotificationUser(notificationId:number) { const csrfToken = await getXSRFToken(); try { diff --git a/src/utils/notifications/getUserNotifications.js b/src/utils/notifications/getUserNotifications.ts similarity index 100% rename from src/utils/notifications/getUserNotifications.js rename to src/utils/notifications/getUserNotifications.ts diff --git a/src/utils/notifications/readNotifications.js b/src/utils/notifications/readNotifications.ts similarity index 94% rename from src/utils/notifications/readNotifications.js rename to src/utils/notifications/readNotifications.ts index 0f406ce..5b7f998 100644 --- a/src/utils/notifications/readNotifications.js +++ b/src/utils/notifications/readNotifications.ts @@ -1,4 +1,4 @@ -import getXSRFToken from "../getXSRF.js"; +import getXSRFToken from "../getXSRF"; export default async function readNotifications() { diff --git a/src/utils/register.js b/src/utils/register.ts similarity index 52% rename from src/utils/register.js rename to src/utils/register.ts index 489f07c..69a983c 100644 --- a/src/utils/register.js +++ b/src/utils/register.ts @@ -1,7 +1,7 @@ -import fetchWrapper from "./fetchWrapper.js"; -import getXSRFToken from "./getXSRF.js"; +import fetchWrapper from "./fetchWrapper"; +import getXSRFToken from "./getXSRF"; -export default async function register(email, password, name, lastname, phone) { +export default async function register(email:string, password:string, name:string, lastname:string, phone:string) { const csrfToken = await getXSRFToken(); return fetchWrapper( diff --git a/src/utils/scrollToTop.js b/src/utils/scrollToTop.ts similarity index 100% rename from src/utils/scrollToTop.js rename to src/utils/scrollToTop.ts diff --git a/src/utils/users/adminCreateUser.ts b/src/utils/users/adminCreateUser.ts index 01860d3..86f02bd 100644 --- a/src/utils/users/adminCreateUser.ts +++ b/src/utils/users/adminCreateUser.ts @@ -1,8 +1,8 @@ -import fetchWrapper from "../fetchWrapper.js"; -import getXSRFToken from "../getXSRF.js"; +import fetchWrapper from "../fetchWrapper"; +import getXSRFToken from "../getXSRF"; import Response from "../../interfaces/response.interface"; -export default async function adminCreateUser(email: string, name: string, lastname: string, phone: string): Promise { +export default async function adminCreateUser(email: string, name: string, lastname: string, phone: string) { const csrfToken = await getXSRFToken(); return fetchWrapper( diff --git a/src/utils/users/deactivateUser.js b/src/utils/users/deactivateUser.ts similarity index 58% rename from src/utils/users/deactivateUser.js rename to src/utils/users/deactivateUser.ts index fdf4c44..bbb4161 100644 --- a/src/utils/users/deactivateUser.js +++ b/src/utils/users/deactivateUser.ts @@ -1,7 +1,7 @@ -import fetchWrapper from "../fetchWrapper.js"; -import getXSRFToken from "../getXSRF.js"; +import fetchWrapper from "../fetchWrapper"; +import getXSRFToken from "../getXSRF"; -export default async function deactivateUser(userId) { +export default async function deactivateUser(userId:number) { const csrfToken = await getXSRFToken(); return fetchWrapper( diff --git a/src/utils/users/deleteOtherUser.js b/src/utils/users/deleteOtherUser.ts similarity index 56% rename from src/utils/users/deleteOtherUser.js rename to src/utils/users/deleteOtherUser.ts index ece6425..daf5d4d 100644 --- a/src/utils/users/deleteOtherUser.js +++ b/src/utils/users/deleteOtherUser.ts @@ -1,7 +1,7 @@ -import fetchWrapper from "../fetchWrapper.js"; -import getXSRFToken from "../getXSRF.js"; +import fetchWrapper from "../fetchWrapper"; +import getXSRFToken from "../getXSRF"; -export default async function deleteOtherUser(userId) { +export default async function deleteOtherUser(userId:number) { const csrfToken = await getXSRFToken(); return fetchWrapper( diff --git a/src/utils/users/deleteProfilePhoto.ts b/src/utils/users/deleteProfilePhoto.ts index a5e830f..ca55ef4 100644 --- a/src/utils/users/deleteProfilePhoto.ts +++ b/src/utils/users/deleteProfilePhoto.ts @@ -1,4 +1,4 @@ -import getXSRFToken from "../getXSRF.js"; +import getXSRFToken from "../getXSRF"; export default async function deleteProfilePhoto(): Promise<{ status: number; ok: boolean; data?: any; error?: string }> { try { diff --git a/src/utils/users/getAllUsers.js b/src/utils/users/getAllUsers.ts similarity index 64% rename from src/utils/users/getAllUsers.js rename to src/utils/users/getAllUsers.ts index 584c39f..1b75dc9 100644 --- a/src/utils/users/getAllUsers.js +++ b/src/utils/users/getAllUsers.ts @@ -1,4 +1,4 @@ -import fetchWrapper from "../fetchWrapper.js"; +import fetchWrapper from "../fetchWrapper"; export default async function getAllUser() { return fetchWrapper("/api/users"); diff --git a/src/utils/users/getUserById.js b/src/utils/users/getUserById.js index e9a2c75..9acd7bd 100644 --- a/src/utils/users/getUserById.js +++ b/src/utils/users/getUserById.js @@ -1,4 +1,4 @@ -import fetchWrapper from "../fetchWrapper.js"; +import fetchWrapper from "../fetchWrapper"; export default async function getUserById(id) { return fetchWrapper(`/api/users/${id}`); diff --git a/src/utils/users/getUserById.ts b/src/utils/users/getUserById.ts new file mode 100644 index 0000000..d08943a --- /dev/null +++ b/src/utils/users/getUserById.ts @@ -0,0 +1,5 @@ +import fetchWrapper from "../fetchWrapper"; + +export default async function getUserById(id:number) { + return fetchWrapper(`/api/users/${id}`); +} diff --git a/src/utils/users/getUserToValidate.js b/src/utils/users/getUserToValidate.ts similarity index 68% rename from src/utils/users/getUserToValidate.js rename to src/utils/users/getUserToValidate.ts index 5176f1f..b0fde0e 100644 --- a/src/utils/users/getUserToValidate.js +++ b/src/utils/users/getUserToValidate.ts @@ -1,4 +1,4 @@ -import fetchWrapper from "../fetchWrapper.js"; +import fetchWrapper from "../fetchWrapper"; export default async function getUserToValidate() { return fetchWrapper("/api/users/invalid"); diff --git a/src/utils/users/modifyRole.js b/src/utils/users/modifyRole.ts similarity index 55% rename from src/utils/users/modifyRole.js rename to src/utils/users/modifyRole.ts index 6526cea..592f739 100644 --- a/src/utils/users/modifyRole.js +++ b/src/utils/users/modifyRole.ts @@ -1,7 +1,7 @@ -import fetchWrapper from "../fetchWrapper.js"; -import getXSRFToken from "../getXSRF.js"; +import fetchWrapper from "../fetchWrapper"; +import getXSRFToken from "../getXSRF"; -export default async function modifyRole(role, userId) { +export default async function modifyRole(role:number, userId:number) { const csrfToken = await getXSRFToken(); return fetchWrapper( diff --git a/src/utils/users/updateUser.ts b/src/utils/users/updateUser.ts index 6714250..48f5b51 100644 --- a/src/utils/users/updateUser.ts +++ b/src/utils/users/updateUser.ts @@ -1,33 +1,12 @@ -/*import fetchWrapper from "../fetchWrapper.js"; -import getXSRFToken from "../getXSRF.js"; - -export default async function updateUser(name, lastname, phone) { - const csrfToken = await getXSRFToken(); - - return fetchWrapper( - "/api/users/update", - { name, lastname, phone }, - "POST", - { "X-XSRF-TOKEN": csrfToken } - ); -}*/ - import fetchWrapper from "../fetchWrapper"; import getXSRFToken from "../getXSRF"; -interface UserUpdateData { - name: string; - lastname: string; - phone: string | null; +export default async function updateUser(name: string, lastname: string, phone: string | null) { + const csrfToken = await getXSRFToken(); + return fetchWrapper( + "/api/users/update", + { name, lastname, phone }, + "POST", + { "X-XSRF-TOKEN": csrfToken } + ); } - -interface RequestHeaders { - "X-XSRF-TOKEN": string; -} -export default async function updateUser(name: string,lastname: string,phone: string | null): Promise { - const csrfToken: string = await getXSRFToken(); - const userData: UserUpdateData = {name,lastname,phone,}; - const headers: RequestHeaders = {"X-XSRF-TOKEN": csrfToken,}; - return fetchWrapper("/api/users/update",userData,"POST",headers); -} - diff --git a/src/utils/users/uploadProfilePhoto.ts b/src/utils/users/uploadProfilePhoto.ts index ca252a2..f3341ee 100644 --- a/src/utils/users/uploadProfilePhoto.ts +++ b/src/utils/users/uploadProfilePhoto.ts @@ -1,4 +1,4 @@ -import getXSRFToken from "../getXSRF.js"; +import getXSRFToken from "../getXSRF"; export default async function uploadProfilePhoto(file: File): Promise<{ status: number; ok: boolean; data?: any; error?: string }> { const formData = new FormData(); diff --git a/src/utils/users/validateUser.js b/src/utils/users/validateUser.ts similarity index 56% rename from src/utils/users/validateUser.js rename to src/utils/users/validateUser.ts index f73b3ef..de10071 100644 --- a/src/utils/users/validateUser.js +++ b/src/utils/users/validateUser.ts @@ -1,7 +1,7 @@ -import fetchWrapper from "../fetchWrapper.js"; -import getXSRFToken from "../getXSRF.js"; +import fetchWrapper from "../fetchWrapper"; +import getXSRFToken from "../getXSRF"; -export default async function validateUser(userId) { +export default async function validateUser(userId:number) { const csrfToken = await getXSRFToken(); return fetchWrapper(