1 | import React, {useEffect, useState} from 'react'
|
---|
2 | import {Button, Card, Input, List, notification, Rate, Spin, Tooltip} from "antd";
|
---|
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()
|
---|
14 | console.log(props.user)
|
---|
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?
|
---|
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>
|
---|
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; |
---|