import "./Rooms.scss"; import { useState, useEffect } from "react"; import { createRoom, getRooms, deleteRoom } from "../../api"; import { Link } from "react-router-dom"; import LoaderSpace from "../../components/LoaderSpace/LoaderSpace"; import AddBtn from "./../../components/AddBtn/AddBtn"; import { useAuth } from "../../hooks"; import { useParams } from "react-router-dom"; import StylizedBtn from "../../components/StylizedBtn/StylizedBtn"; export default function Rooms() { const { _user } = useAuth(); const [rooms, setRooms] = useState(null); const [isLoad, setIsLoad] = useState(true); const [isErr, setIsErr] = useState(false); const [displayRooms, setDisplayRooms] = useState(null); const { pageIndex } = useParams(); const [virtualIndex, setVirtualIndex] = useState(0); const onClickCreate = () => { const name = prompt("Nom de la piece ?"); createRoom(name).then((res) => { setIsErr(false); const values = [...rooms]; values.push(res); setRooms(values); }); }; const configureRooms = (data) => { const splicer = (rms, datasPerPage) => { const partitions = []; let index = 0; while (index < rms.length) { partitions.push(rms.slice(index, index + datasPerPage)); index += datasPerPage; } return partitions; }; const newData = splicer(data, 8); const blabla = newData[pageIndex ? pageIndex : 0]; if (pageIndex) { setVirtualIndex(parseInt(pageIndex, 10)); } setRooms(newData); console.log(newData[pageIndex ? pageIndex : 0]); setDisplayRooms(newData[pageIndex ? pageIndex : 0]); if (!blabla) { window.location.href = "/rooms/0"; setVirtualIndex(0); } }; const handleBefore = () => { if (virtualIndex === 0) { return; } const index = virtualIndex - 1; console.log(rooms[index]); setDisplayRooms(rooms[index]); setVirtualIndex(index); }; const handleNext = () => { if (virtualIndex >= rooms.length - 1) { return; } const index = virtualIndex + 1; console.log(rooms[index]); setDisplayRooms(rooms[index]); setVirtualIndex(index); }; const onClickDelete = (id, name) => { const confirmation = prompt( `Etes-vous sur de vouloir supprimer ${name} ? (oui ou non)`, "oui", ); if (!confirmation || confirmation.toLocaleLowerCase() !== "oui") return; deleteRoom(id).then((res) => { const values = rooms.filter((e) => e._id !== id); setRooms(values); }); }; useEffect(() => { document.title = `Pieces`; getRooms().then((res) => { if (res.length === 0) { setIsLoad(false); setIsErr(true); } setRooms(res); configureRooms(res); }); }, []); return (