source: phonelux-frontend/src/components/PhoneWithOffersComponent/PhoneWithOffersComponent.js

Last change on this file was d66b8eb, checked in by Marko <Marko@…>, 22 months ago

Component for editing offers added

  • Property mode set to 100644
File size: 3.2 KB
RevLine 
[dbd4834]1import { Paper } from '@mui/material'
2import axios from 'axios'
3import React, { Component } from 'react'
4import PhoneOfferComponent from '../PhoneOfferComponent/PhoneOfferComponent'
5import './PhoneWithOffersComponent.css'
6import phoneImg from '../../images/phone.png'
[7e88e46]7import UserContext from '../../context/UserContext'
8
[dbd4834]9
10export class PhoneWithOffersComponent extends Component {
11
12 constructor(props) {
13 super(props)
14
15 this.state = {
[7e88e46]16 phone_offers: [],
17 loggedUserFavouriteOffers: []
[dbd4834]18 }
19 }
20
21 componentDidMount(){
22 axios.get('/phones/offers/'+this.props.phoneId)
23 .then(response => {
[d66b8eb]24 console.log(response.data)
[dbd4834]25 this.setState({
26 phone_offers: response.data
[7e88e46]27 }, this.getFavouriteOffersForLoggedUser)
[dbd4834]28 }).catch(error => console.log(error))
29 }
30
[7e88e46]31 getFavouriteOffersForLoggedUser = () => {
32 if(localStorage.getItem('token'))
33 {
34 var config = {
35 method: 'get',
36 url: '/user/'+this.context.userId+'/favouriteoffers',
37 headers: {
38 'Authorization': 'Bearer '+localStorage.getItem('token')
39 }
40 };
41
42 axios(config)
43 .then(response => {
44 this.setState({
45 loggedUserFavouriteOffers: response.data
46 })
47 })
48 .catch(error => {
49 console.log(error);
50 });
51 }
52 }
53
[dbd4834]54 render() {
55 return (
56 <div className='phone-with-offers-main'>
57
58 <div className='phone-with-offers-sub-main'>
59 <div className='phone-with-offers-totaloffers-div'>
[e5b84dc]60 <h3 className='phone-with-offers-totaloffers-header'>Понуди: {this.props.total_offers}</h3>
[dbd4834]61 </div>
62
63 <div className='phone-with-offers-image-wrapper'>
64 <Paper className='phone-with-offers-paper' elevation={5}>
65 <img className='phone-with-offers-image' src={this.props.image_url == null ? phoneImg : this.props.image_url}/>
66 </Paper>
67 </div>
68
69 <div className='phone-with-offers-model-wrapper'>
[e5b84dc]70 <h1 className='phone-with-offers-model-header'>{this.props.model}</h1>
[dbd4834]71 </div>
72 </div>
73
74 <div className='phone-with-offers-section'>
75
76 <table cellPadding={20} className='phone-with-offers-table'>
77 <thead className='phone-with-offers-table-head'>
78 <tr>
79 <th>Продавница</th>
80 <th>Име на понуда</th>
81 <th>Цена</th>
82 <th></th>
83 </tr>
84 </thead>
85 <tbody>
86 {
[e5b84dc]87 this.state.phone_offers.map((offer,idx) => <PhoneOfferComponent key={idx} id={offer.id}
[dbd4834]88 is_validated={offer.is_validated} offer_shop={offer.offer_shop} offer_name={offer.offer_name}
[7e88e46]89 price={offer.price} offer_url={offer.offer_url} loggedUserFavouriteOffers={this.state.loggedUserFavouriteOffers}
90 getFavouriteOffersForLoggedUser={this.getFavouriteOffersForLoggedUser}
[dbd4834]91 />)
92 }
93 </tbody>
94 </table>
95
96 </div>
97
98 </div>
99 )
100 }
101}
102
[7e88e46]103PhoneWithOffersComponent.contextType = UserContext
104
[dbd4834]105export default PhoneWithOffersComponent
Note: See TracBrowser for help on using the repository browser.