import * as React from 'react'; import AppBar from '@mui/material/AppBar'; import Box from '@mui/material/Box'; import Button from '@mui/material/Button'; import Chip from '@mui/material/Chip'; import CssBaseline from '@mui/material/CssBaseline'; import Dialog from '@mui/material/Dialog'; import DialogActions from '@mui/material/DialogActions'; import DialogContent from '@mui/material/DialogContent'; import DialogContentText from '@mui/material/DialogContentText'; import DialogTitle from '@mui/material/DialogTitle'; import Divider from '@mui/material/Divider'; import MenuItem from '@mui/material/MenuItem'; import Select from '@mui/material/Select'; import TextField from '@mui/material/TextField'; import Toolbar from '@mui/material/Toolbar'; import Typography from '@mui/material/Typography'; import { ThemeProvider, createTheme } from '@mui/material/styles'; import './App.css' import Map from './Map.js'; import Rooms from './Rooms.js'; function ChangeFloor({ currentFloor, callbackFloorChanged }) { const handleFloorChanged = (event) => { callbackFloorChanged(event.target.value); }; return <>
Changer d'étage
} function RoomResearch({ callbackRoomSelected }) { const [currentRequest, setCurrentRequest] = React.useState(""); const [rooms, setRooms] = React.useState([]); const startResearch = (event) => { fetch("https://encartes.aliens-lyon.fr/api/map/find_place_by_name/" + currentRequest) .then(response => response.json()) .then(data => { setRooms(data); }); }; return <>
Rechercher une salle { setCurrentRequest(event.target.value) }} variant="outlined" fullWidth />
} function RoomInformation({ roomId, setIsEditDialogOpen }) { const [names, setNames] = React.useState([]); const [users, setUsers] = React.useState([]); React.useEffect(() => { if (roomId !== null) { fetch("https://encartes.aliens-lyon.fr/api/map/get_place_info/" + roomId) .then(response => response.json()) .then(data => { setNames(data.names); setUsers(data.users); }); } }, [roomId]); if (roomId === null) { return; } return
Salle sélectionnée { setIsEditDialogOpen(true) }}>Modifier
} function TopBar() { const [openAboutModal, setOpenAboutModal] = React.useState(false); const handleOpenAboutModal = () => { setOpenAboutModal(true); }; const handleCloseAboutModal = () => { setOpenAboutModal(false); }; return <> ENcarteS {"À propos d'ENcarteS"} ENcarteS permet de rechercher les salles de l'ENS ! } function EditDialog({ isOpen, setIsOpen, room }) { const [names, setNames] = React.useState([]); const [users, setUsers] = React.useState([]); const [newPlaceName, setNewPlaceName] = React.useState(""); // Used to refresh useEffect const [updatesCount, setupdatesCount] = React.useState(0); React.useEffect(() => { if (room !== null) { fetch("https://encartes.aliens-lyon.fr/api/map/get_place_info/" + room) .then(response => response.json()) .then(data => { setNames(data.names); setUsers(data.users); }); } }, [room, updatesCount]); const refresh = () => { setupdatesCount(updatesCount + 1); }; const addName = () => { fetch("https://encartes.aliens-lyon.fr/api/map/add_place_name/" + room + "/" + encodeURI(newPlaceName)) .then(response => refresh()); }; return { setIsOpen(false) }}> Salle n°{room} Noms :
{names.map(name => { return {}} /> })} { setNewPlaceName(event.target.value) }} label="Nouveau nom" margin="dense" fullWidth /> Utilisateurs :
{users.map(name => { return {}} /> })}
} export default function App() { const [currentFloor, setCurrentFloor] = React.useState(13); const [selectedRoom, setSelectedRoom] = React.useState(null); const [isEditDialogOpen, setIsEditDialogOpen] = React.useState(false); return <>
{ setCurrentFloor(floor); setSelectedRoom(room); }} />
} const darkTheme = createTheme({ palette: { mode: 'dark', }, }); function ThemedApp() { return ( ); }