import React, { useEffect, useState, useRef } from 'react'; import { InputText } from 'primereact/inputtext'; import { Button } from 'primereact/button'; import { DataTable } from 'primereact/datatable'; import { Column } from 'primereact/column'; import { Dropdown } from 'primereact/dropdown'; import { Toast } from 'primereact/toast'; import classNames from 'classnames'; import { Dialog } from 'primereact/dialog'; import { Toolbar } from 'primereact/toolbar'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faHome, faUserAlt } from '@fortawesome/free-solid-svg-icons'; import { faCircleQuestion } from '@fortawesome/free-solid-svg-icons'; import { faClockFour } from '@fortawesome/free-solid-svg-icons'; import { useCookies } from 'react-cookie'; const Reservations = () => { let emptyReservation = { _id: null, start_time: '', finish_time: '', user_id: '', user_name: '', common_area_id: '', common_area_name: '', community_id: '', status: '1', status_text: '', date_entry: new Date(), }; const [reservations, setReservations] = useState([]); const [reservation, setReservation] = useState(emptyReservation); const [submitted, setSubmitted] = useState(false); const [selectedReservations, setSelectedReservations] = useState(null); const [globalFilter, setGlobalFilter] = useState(null); const [deleteReservationDialog, setDeleteReservationDialog] = useState(false); const [deleteReservationsDialog, setDeleteReservationsDialog] = useState(false); const toast = useRef(null); const dt = useRef(null); const [cookies, setCookies] = useCookies() const [areas, setAreas] = useState([]); const [tenants, setTenants] = useState([]); async function tenantsList(id) { await fetch(`http://localhost:4000/user/findTenants/${id}`, { method: 'GET' }) .then((response) => response.json()) .then(data => data.message) .then(data => { data = data.filter( (val) => val.status != -1, ) data = data.map(item => { item.password = ''; return item; }) setTenants(data) }); } async function areasList(id) { await fetch(`http://localhost:4000/commonArea/findByCommunity/${id}`, { method: 'GET' }) .then((response) => response.json()) .then(data => data.message) .then(data => { data = data.filter( (val) => val.status != -1, ) setAreas(data) }); } async function reservationList(id) { await fetch(`http://localhost:4000/reservation/findReservations/${id}`, { method: 'GET' }) .then((response) => response.json()) .then(data => data.message) .then(data => { data = data.filter( (val) => val.status != -1, ) data.map((item) => { if (item.status == '1') { item.status_text = 'Activo'; } else if (item.status == '0') { item.status_text = 'Inactivo'; } }) setReservations(data) }); } useEffect(() => { tenantsList(cookies.community_id); }, []) useEffect(() => { areasList(cookies.community_id); }, []) reservations.map((item) => { let tenant = tenants.find(item2 => item2._id == item.user_id); if(tenant){ item.user_name = tenant.name + ' ' + tenant.last_name; } }); useEffect(() => { reservationList(cookies.community_id); }, []) const actionsReservation = (rowData) => { return (
); }; const confirmDeleteReservation = (reservation) => { setReservation(reservation); setDeleteReservationDialog(true); }; const confirmDeleteSelected = () => { setDeleteReservationsDialog(true); }; const leftToolbarTemplate = () => { return (
); }; const rightToolbarTemplate = () => { return (