source: frontend/src/Dashboard/Review.js@ a569b7c

Last change on this file since a569b7c was a26f6a1, checked in by Danilo <danilo.najkov@…>, 23 months ago

full auth flow

  • Property mode set to 100644
File size: 2.9 KB
Line 
1import React, {useEffect, useState} from 'react'
2import {Button, Card, Input, List, notification, Rate, Spin, Tooltip} from "antd";
3import axios from "axios";
4import env from "../env";
5import moment from "moment";
6
7const 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
64export default Review;
Note: See TracBrowser for help on using the repository browser.