2024-05-12 21:32:30 +02:00
|
|
|
|
import React, { useState, useEffect } from "react";
|
2024-05-13 00:33:13 +02:00
|
|
|
|
import "../../assets/styles/room-list.css";
|
|
|
|
|
import { RoomBox } from "../../components/rooms/roomBox";
|
2024-05-13 00:13:52 +02:00
|
|
|
|
import { formatRoomStats } from "../../api/room";
|
2024-05-12 21:32:30 +02:00
|
|
|
|
|
2024-05-13 00:33:13 +02:00
|
|
|
|
// Fonction pour diviser le tableau d'items en rang<6E>es
|
2024-05-12 21:32:30 +02:00
|
|
|
|
const chunkArray = (arr, size) => {
|
|
|
|
|
const chunkedArr = [];
|
|
|
|
|
for (let i = 0; i < arr.length; i += size) {
|
|
|
|
|
chunkedArr.push(arr.slice(i, i + size));
|
|
|
|
|
}
|
|
|
|
|
return chunkedArr;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Composant d'affichage de la page
|
2024-05-13 00:13:52 +02:00
|
|
|
|
export const RoomList = ({ statsParam, onRoomClick }) => {
|
2024-05-12 21:32:30 +02:00
|
|
|
|
const [rooms, setRooms] = useState([]);
|
2024-05-13 00:33:13 +02:00
|
|
|
|
const [selectedRoom, setSelectedRoom] = useState("all");
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
if (statsParam.rooms) {
|
|
|
|
|
console.log(statsParam.rooms);
|
|
|
|
|
let formatedStats = formatRoomStats(statsParam);
|
|
|
|
|
setRooms(formatedStats.rooms);
|
|
|
|
|
}
|
|
|
|
|
}, [statsParam]);
|
|
|
|
|
|
|
|
|
|
const handleRoomClick = (roomId) => {
|
|
|
|
|
onRoomClick(roomId);
|
2024-05-12 21:32:30 +02:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return (
|
2024-05-13 00:33:13 +02:00
|
|
|
|
<div>
|
|
|
|
|
<h2>Liste des chambres</h2>
|
2024-05-12 21:32:30 +02:00
|
|
|
|
<div className="list-container">
|
2024-05-13 00:33:13 +02:00
|
|
|
|
{rooms &&
|
|
|
|
|
rooms.map((room) => (
|
|
|
|
|
<RoomBox room={room} key={room._id} onRoomClick={handleRoomClick} />
|
|
|
|
|
))}
|
2024-05-12 21:32:30 +02:00
|
|
|
|
</div>
|
2024-05-13 00:33:13 +02:00
|
|
|
|
</div>
|
2024-05-12 21:32:30 +02:00
|
|
|
|
);
|
2024-05-13 00:33:13 +02:00
|
|
|
|
};
|