import React, {useState, useEffect} from 'react' import {Header} from "./Header"; import {Link, useNavigate} from "react-router-dom"; import {Button, Card, DatePicker, Form, Image, Input, Modal, notification, Rate, Spin, Upload} from "antd"; import placeholderImage from '../src/Assets/placeholder.png' import AddNewReservation from "./Dashboard/AddNewReservation"; import axios from "axios"; import env from "./env"; import Review from "./Dashboard/Review"; import {PlusOutlined} from "@ant-design/icons"; const FrontPage = ({user, logout}) => { const [restaurant, setRestaurant] = useState({name:'Sample Restaurant name', address: 'Sample street 1', city:'Sample'}); const [newReservationModal, setNewReservationModal] = useState(false); const [saveModalLoading, setSaveModalLoading] = useState(false); const [newReviewModal, setNewReviewModal] = useState(false); const [loading, setLoading] = useState(true); const [refreshToggle, setRefreshToggle] = useState(false); const history = useNavigate(); const [filteredMenuItems, setFilteredMenuItems] = useState([]); useEffect(()=>{ setLoading(true); axios.get(env.api + 'Restaurants').then(res=>{ setRestaurant(res.data); console.log(user); if(!user || !user.isVip){ setFilteredMenuItems(res.data.menu.filter(x => !x.isVipOnly)); }else{ setFilteredMenuItems(res.data.menu.sort((x,y) => x.isVipOnly ? -1 : 1)); } setLoading(false); }); },[user]) useEffect(()=>{ if(user && !user.isConfirmed) { notification['warning']({ message:

Вашиот емаил не е потврден. Потврдете го тука

}); } },[user]) const updateSearchValue = (value) => { const val = value.target.value.toLowerCase(); setFilteredMenuItems(items=>{ if(val.length==0){ return restaurant.menu; } const its = val.split(' '); let allItems = [] if(!user || !user.isVip){ allItems = [...restaurant.menu.filter(x => !x.isVipOnly)] }else{ allItems = [...restaurant.menu.sort(x => x.isVipOnly)] } for(let it of its){ if(it.length>0) allItems = allItems.filter(x => !x.alergens.includes(it)); } return allItems; }) } const saveNewReview = data =>{ setSaveModalLoading(true) axios.post(env.api + 'Reviews',data,{ headers: {Authorization: localStorage.getItem('Auth')}}).then(res=>{ setNewReviewModal(false) setSaveModalLoading(false) notification['success']({ message: 'Успешно зачувано', }); setRefreshToggle(ref => !ref); }).catch(err=>{ setSaveModalLoading(false) notification['error']({ message: 'Се случи проблем при зачувување', }); }); } return(
history('/login'):logout} buttonText={!user?'Најави се':'Одјави се'} isVip={user && user.isVip}/> {loading ? :
{'place'} } wrapperStyle={{overflow: 'hidden', width: '100%'}} style={{width: '100%', height: '100%', margin: 'auto', objectFit: 'cover'}}>
{restaurant.name}
{restaurant.address}, {restaurant.phone}

Мени

{filteredMenuItems.map(el => VIP :''} style={{ width: 280, display:'inline-block', margin:'10px',verticalAlign:'middle' }} size="small" cover={el.image != "data:image/png;base64," ? avatar : ''} >

{el.description}

Алергени: {el.alergens.length ==0 ? 'Нема' : el.alergens}

{el.price} ден.
)}
} Прати ]} onCancel={()=>setNewReservationModal(false)} visible={newReservationModal}> Прати ]} onCancel={()=>setNewReviewModal(false)} visible={newReviewModal}>
notification['error']({ message: 'Ве молиме поправете ги сите грешки пред зачувување!', })}>
) } export default FrontPage;