diff --git a/src/interfaces/taskType.interface.ts b/src/interfaces/taskType.interface.ts new file mode 100644 index 0000000..d116c3d --- /dev/null +++ b/src/interfaces/taskType.interface.ts @@ -0,0 +1,16 @@ +export default 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; + }; +} \ No newline at end of file diff --git a/src/interfaces/user.interface.ts b/src/interfaces/user.interface.ts new file mode 100644 index 0000000..de1f401 --- /dev/null +++ b/src/interfaces/user.interface.ts @@ -0,0 +1,14 @@ +import TaskType from "./taskType.interface"; + +export default interface User { + id: number; + name: string; + lastname: string; + role: string; + email: string; + phone: string | null; + created_at: string; + isAdmin: boolean; + tasks: TaskType[]; + profile_photo_path?: string | null; +} \ No newline at end of file diff --git a/src/pages/Profile/ProfilePage.tsx b/src/pages/Profile/ProfilePage.tsx index 8eaa107..18af636 100644 --- a/src/pages/Profile/ProfilePage.tsx +++ b/src/pages/Profile/ProfilePage.tsx @@ -8,7 +8,7 @@ import {useParams} from "react-router"; import {useNavigate} from "react-router"; import {useRef} from "react"; import getUserById from "../../utils/users/getUserById"; -import ManageMember from "./components/ManageMember/ManageMember.jsx"; +import ManageMember from "./components/ManageMember/ManageMember.js"; import uploadProfilePhoto from "../../utils/users/uploadProfilePhoto"; import deleteProfilePhoto from "../../utils/users/deleteProfilePhoto.js"; diff --git a/src/pages/Profile/components/ManageMember/DeleteMember/DeleteMemberBtn.tsx b/src/pages/Profile/components/ManageMember/DeleteMember/DeleteMemberBtn.tsx new file mode 100644 index 0000000..fd9e6eb --- /dev/null +++ b/src/pages/Profile/components/ManageMember/DeleteMember/DeleteMemberBtn.tsx @@ -0,0 +1,31 @@ +import {ReactNode, useState} from "react"; +import Button from "../../../../../components/ui/Button/Button"; +import Modal from "../../../../../components/ui/Modal/Modal"; +import { useNavigate } from "react-router"; +import deleteOtherUser from "../../../../../utils/users/deleteOtherUser"; + +export default function DeleteMemberBtn({name, id, className}: { name: string, id: number, className?: any }): ReactNode { + + const [open, setOpen] = useState(false); + const navigate = useNavigate(); + + const deleteMember = async () => { + const result = await deleteOtherUser(id); + + if (result.status === 200 || result.status === 204) { + setOpen(false); + navigate("/volunteers"); + } + } + + return
Etes-vous sur de vouloir supprimer le compte {name} ?
+ +