[899b19d] | 1 | import React, {useEffect, useState} from 'react'
|
---|
[a26f6a1] | 2 | import {Button, Card, Input, List, notification, Rate, Spin, Tooltip} from "antd";
|
---|
[899b19d] | 3 | import axios from "axios";
|
---|
| 4 | import env from "../env";
|
---|
| 5 | import moment from "moment";
|
---|
| 6 |
|
---|
| 7 | const Review = props => {
|
---|
| 8 | const [restaurant, setRestaurant] = useState({});
|
---|
| 9 | const [loading, setLoading] = useState(true);
|
---|
| 10 |
|
---|
| 11 | useEffect(()=> {
|
---|
| 12 | setLoading(true);
|
---|
| 13 | getRestaurant()
|
---|
[a26f6a1] | 14 | console.log(props.user)
|
---|
[899b19d] | 15 | },[])
|
---|
| 16 | useEffect(()=> {
|
---|
| 17 | getRestaurant()
|
---|
| 18 | },[props.refresh])
|
---|
| 19 |
|
---|
| 20 | const getRestaurant = () => {
|
---|
| 21 | axios.get(env.api + 'Restaurants').then(res=>{
|
---|
| 22 | setRestaurant(res.data);
|
---|
| 23 | setLoading(false);
|
---|
| 24 | });
|
---|
| 25 | }
|
---|
| 26 |
|
---|
| 27 | return(
|
---|
| 28 | <div style={{padding: props.front ? 0 : '20px',textAlign:'start'}}>
|
---|
| 29 | <div style={{
|
---|
| 30 | width: '100%',
|
---|
| 31 | backgroundColor: 'white',
|
---|
| 32 | padding: '20px',
|
---|
| 33 | height:'75px',
|
---|
| 34 | border: '1px solid lightgray'
|
---|
| 35 | }} id={'expandMain'}>
|
---|
| 36 | <h2 style={{float: 'left'}}>Оценки</h2>
|
---|
| 37 | {props.front ?
|
---|
| 38 | (props.user?
|
---|
[a26f6a1] | 39 | <Button style={{float:'right'}} type={'primary'} onClick={()=>props.user.isConfirmed ? props.setVisible(true) : notification['error']({message: <p>Мора да го потврдите вашиот мејл за да оставите оценка. <a href={'/confirm-email'}>Потврдете го тука</a></p>})}>Внеси оценка</Button>
|
---|
[899b19d] | 40 | : <Tooltip title={'Мора да се најавите за да оставите оценка'}><Button style={{float:'right'}} disabled type={'primary'} onClick={()=>props.setVisible(true)}>Внеси оценка</Button></Tooltip>)
|
---|
| 41 | : ''
|
---|
| 42 | }
|
---|
| 43 | </div>
|
---|
| 44 | {loading ? <Spin style={{margin: '20px'}}/> :
|
---|
| 45 | <div>
|
---|
| 46 | <div style={{backgroundColor: 'white',padding:'10px', border:'1px solid lightgray', borderTop: 'none'}}>
|
---|
| 47 | <h3>Средна оценка: <Rate disabled allowHalf value={restaurant.averageReview}/> од вкупно {restaurant.reviews.length} оценки</h3>
|
---|
| 48 | </div>
|
---|
| 49 | <List dataSource={restaurant.reviews} itemLayout={'horizontal'} locale={{emptyText:'Нема оставени оценки за овој ресторан'}}
|
---|
| 50 | renderItem={item => (
|
---|
| 51 | <Card title={item.title} style={{width:'98%',backgroundColor:'white',margin:'1%'}}>
|
---|
| 52 | <p>{item.description}</p>
|
---|
| 53 | <Rate disabled value={item.stars}/>
|
---|
| 54 | <p style={{color:'gray'}}>{item.username} / {moment(item.createdAt).format("DD.MM.yyyy")}</p>
|
---|
| 55 | </Card>
|
---|
| 56 | )}/>
|
---|
| 57 | </div>
|
---|
| 58 |
|
---|
| 59 | }
|
---|
| 60 | </div>
|
---|
| 61 | )
|
---|
| 62 | }
|
---|
| 63 |
|
---|
| 64 | export default Review; |
---|