SHOW:
|
|
- or go back to the newest paste.
| 1 | - | import React, { Component } from "react";
|
| 1 | + | import React, { Component, Fragment } from "react";
|
| 2 | import ConnectDB from "../ConnectDB"; | |
| 3 | import { Segment, Header, Button, Icon, Container } from 'semantic-ui-react'
| |
| 4 | ||
| 5 | class EventData extends Component {
| |
| 6 | state = {
| |
| 7 | basket: [{ product: '', count: '' }]
| |
| 8 | } | |
| 9 | ||
| 10 | constructor(props) {
| |
| 11 | super(props); | |
| 12 | let eventID; | |
| 13 | let tempAddressID; | |
| 14 | const tempID = JSON.parse(window.localStorage.getItem('user')).id;
| |
| 15 | eventID = this.props.match.params.event; | |
| 16 | this.state = { event: [], address: [], loading: true };
| |
| 17 | ||
| 18 | ConnectDB.getEvent(eventID).then(res => {
| |
| 19 | this.setState({ event: res, loading: false });
| |
| 20 | tempAddressID = this.state.event.idAddress; | |
| 21 | ConnectDB.getAddress(tempAddressID).then(resp => {
| |
| 22 | this.setState({ address: resp, loading: false });
| |
| 23 | }); | |
| 24 | ||
| 25 | this.setState({ eventID: eventID, userID: tempID });
| |
| 26 | }); | |
| 27 | } | |
| 28 | ||
| 29 | joinToEvent() {
| |
| 30 | ConnectDB.postUserEventsJunction(this.state.eventID, this.state.userID) | |
| 31 | .then(res => {
| |
| 32 | console.log(this.state.userID); | |
| 33 | console.log(this.state.eventID); | |
| 34 | }); | |
| 35 | } | |
| 36 | ||
| 37 | static showEvent(event, address) {
| |
| 38 | return ( | |
| 39 | <ul> | |
| 40 | <div class="ui grid"> | |
| 41 | <div class="four wide column"><p><Icon name='calendar alternate outline' /><b>Data:</b> {event.date.substring(0, 10)}</p> </div>
| |
| 42 | <div class="four wide column"><p><Icon name='clock outline' /><b>Godzina:</b> {event.time.substring(0, 5)}</p></div>
| |
| 43 | <div class="four wide column"><p><Icon name='building outline' /><b>Miasto:</b> {address.city} </p> </div>
| |
| 44 | <div class="four wide column"><p><Icon name='street view' /><b>Ulica:</b> {address.street} {address.apartmentNumber} </p> </div>
| |
| 45 | </div> | |
| 46 | </ul> | |
| 47 | ); | |
| 48 | } | |
| 49 | ||
| 50 | static showDescription(event) {
| |
| 51 | return ( | |
| 52 | <ul> | |
| 53 | <div class="ui grid"> | |
| 54 | <div class="eight wide column"><p><b>{event.description}</b></p> </div>
| |
| 55 | <div class="eight wide column"> | |
| 56 | <div class="eight column row"> | |
| 57 | <div class="ui right left color blue animated button" tabindex="0"> | |
| 58 | <div class="visible content">Uczestnicy</div> | |
| 59 | <div class="hidden content"> | |
| 60 | <i class="child icon"></i> | |
| 61 | </div> | |
| 62 | </div> | |
| 63 | <button class="circular right floated color blue ui icon button"> | |
| 64 | <i class="icon user outline"></i> | |
| 65 | </button> | |
| 66 | <button class="circular right floated color blue ui icon button"> | |
| 67 | <i class="icon user outline"></i> | |
| 68 | </button> | |
| 69 | <button class="circular right floated color blue ui icon button"> | |
| 70 | <i class="icon user outline"></i> | |
| 71 | </button> | |
| 72 | <button class="circular right floated color blue ui icon button"> | |
| 73 | <i class="icon user outline"></i> | |
| 74 | </button> | |
| 75 | <button class="circular right floated color blue ui icon button"> | |
| 76 | <i class="icon user outline"></i> | |
| 77 | </button> | |
| 78 | <button class="circular right floated color blue ui icon button"> | |
| 79 | <i class="icon user outline"></i> | |
| 80 | </button> | |
| 81 | <button class="circular right floated color blue ui icon button"> | |
| 82 | <i class="icon user outline"></i> | |
| 83 | </button> | |
| 84 | </div> | |
| 85 | <div class="eight column row"> | |
| 86 | {this.state.basket && this.state.basket.map(row =>
| |
| 87 | <Fragment> | |
| 88 | <div class="ui left icon input"> | |
| 89 | <input type="text" placeholder="Wpisz produkt"></input> | |
| 90 | <i class="birthday cake icon"></i> | |
| 91 | </div> | |
| 92 | <div class="ui right labeled input"> | |
| 93 | <input type="text" placeholder="Wpisz ilość"></input> | |
| 94 | <div class="ui basic label"> | |
| 95 | szt | |
| 96 | </div> | |
| 97 | </div> | |
| 98 | </Fragment> | |
| 99 | )} | |
| 100 | </div> | |
| 101 | <div class="eight column row"> | |
| 102 | <div class="ui left floated vertical animated button" tabindex="0" onClick={() => handleAddNewProduct()}>
| |
| 103 | <div class="hidden content">Dodaj</div> | |
| 104 | <div class="visible content"> | |
| 105 | <i class="plus icon"></i> | |
| 106 | </div> | |
| 107 | </div> | |
| 108 | </div> | |
| 109 | ||
| 110 | </div> | |
| 111 | </div> | |
| 112 | </ul> | |
| 113 | ); | |
| 114 | } | |
| 115 | ||
| 116 | handleAddNewProduct = () => {
| |
| 117 | this.setState(prevState => ({ basket: [...prevState.basket, { product: '', count: '' }] }))
| |
| 118 | } | |
| 119 | ||
| 120 | render() {
| |
| 121 | let contents = this.state.loading | |
| 122 | ? <p><em>Loading...</em></p> | |
| 123 | : EventData.showEvent(this.state.event, this.state.address); | |
| 124 | let descriptionContents = this.state.loading | |
| 125 | ? <p><em>Loading...</em></p> | |
| 126 | : EventData.showDescription(this.state.event, this.state.address); | |
| 127 | return ( | |
| 128 | <div> | |
| 129 | ||
| 130 | <Segment.Group> | |
| 131 | <Segment inverted color='blue' secondary> | |
| 132 | <Header as="h2" textAlign="center">Wydarzenie</Header> | |
| 133 | </Segment> | |
| 134 | <Container> | |
| 135 | <Header | |
| 136 | as='h1' | |
| 137 | inverted | |
| 138 | style={{
| |
| 139 | width: "100%", | |
| 140 | height: 250, | |
| 141 | display: 'inline-block', | |
| 142 | opacity: 1, | |
| 143 | backgroundImage: `url(${"https://i.imgur.com/A3SxaVn.png"})`,
| |
| 144 | backgroundSize: 'cover', | |
| 145 | fontWeight: 'bold', | |
| 146 | marginBottom: 0, | |
| 147 | marginLeft: 'auto', | |
| 148 | marginRight: 'auto', | |
| 149 | paddingTop: 210, | |
| 150 | fontSize: 'xx-large' | |
| 151 | }} | |
| 152 | > | |
| 153 | {this.state.event.title}
| |
| 154 | </Header> | |
| 155 | </Container> | |
| 156 | <Segment textAlign="left"> | |
| 157 | {contents}
| |
| 158 | </Segment> | |
| 159 | <Segment textAlign="left"> | |
| 160 | {descriptionContents}
| |
| 161 | </Segment> | |
| 162 | <Segment> | |
| 163 | <Button color="blue" icon labelPosition='left' | |
| 164 | onClick={() => { window.location.href = ('#/home/events/search-event'); }}>
| |
| 165 | Wróć | |
| 166 | <Icon name='reply' /> | |
| 167 | </Button> | |
| 168 | <Button color="blue" icon labelPosition='right' | |
| 169 | onClick={() => this.joinToEvent()}>
| |
| 170 | Dołącz do wydarzenia | |
| 171 | <Icon name='check circle' /> | |
| 172 | </Button> | |
| 173 | </Segment> | |
| 174 | </Segment.Group> | |
| 175 | </div> | |
| 176 | ); | |
| 177 | } | |
| 178 | } | |
| 179 | ||
| 180 | export default EventData; | |
| 181 | super(props); | |
| 182 | let eventID; | |
| 183 | let tempAddressID; | |
| 184 | const tempID = JSON.parse(window.localStorage.getItem('user')).id;
| |
| 185 | eventID = this.props.match.params.event; | |
| 186 | this.state = { event: [], address: [], loading: true };
| |
| 187 | ||
| 188 | ConnectDB.getEvent(eventID).then(res => {
| |
| 189 | this.setState({ event: res, loading: false });
| |
| 190 | tempAddressID = this.state.event.idAddress; | |
| 191 | ConnectDB.getAddress(tempAddressID).then(resp => {
| |
| 192 | this.setState({ address: resp, loading: false });
| |
| 193 | }); | |
| 194 | ||
| 195 | this.setState({eventID:eventID, userID:tempID});
| |
| 196 | }); | |
| 197 | } | |
| 198 | ||
| 199 | joinToEvent(){
| |
| 200 | ConnectDB.postUserEventsJunction(this.state.eventID,this.state.userID) | |
| 201 | .then(res => {
| |
| 202 | console.log(this.state.userID); | |
| 203 | console.log(this.state.eventID); | |
| 204 | }); | |
| 205 | } | |
| 206 | ||
| 207 | static showEvent(event, address) {
| |
| 208 | return ( | |
| 209 | <ul> | |
| 210 | <div class="ui grid"> | |
| 211 | <div class="four wide column"><p><Icon name='calendar alternate outline' /><b>Data:</b> {event.date.substring(0,10)}</p> </div>
| |
| 212 | <div class="four wide column"><p><Icon name='clock outline' /><b>Godzina:</b> {event.time.substring(0,5)}</p></div>
| |
| 213 | <div class="four wide column"><p><Icon name='building outline' /><b>Miasto:</b> {address.city} </p> </div>
| |
| 214 | <div class="four wide column"><p><Icon name='street view' /><b>Ulica:</b> {address.street} {address.apartmentNumber} </p> </div>
| |
| 215 | </div> | |
| 216 | </ul> | |
| 217 | ); | |
| 218 | } | |
| 219 | ||
| 220 | static showDescription(event) {
| |
| 221 | return ( | |
| 222 | <ul> | |
| 223 | <div class="ui grid"> | |
| 224 | <div class="eight wide column"><p><b>{event.description}</b></p> </div>
| |
| 225 | <div class="eight wide column"> | |
| 226 | <div class="eight column row"> | |
| 227 | <div class="ui right left color blue animated button" tabindex="0"> | |
| 228 | <div class="visible content">Uczestnicy</div> | |
| 229 | <div class="hidden content"> | |
| 230 | <i class="child icon"></i> | |
| 231 | </div> | |
| 232 | </div> | |
| 233 | <button class="circular right floated color blue ui icon button"> | |
| 234 | <i class="icon user outline"></i> | |
| 235 | </button> | |
| 236 | <button class="circular right floated color blue ui icon button"> | |
| 237 | <i class="icon user outline"></i> | |
| 238 | </button> | |
| 239 | <button class="circular right floated color blue ui icon button"> | |
| 240 | <i class="icon user outline"></i> | |
| 241 | </button> | |
| 242 | <button class="circular right floated color blue ui icon button"> | |
| 243 | <i class="icon user outline"></i> | |
| 244 | </button> | |
| 245 | <button class="circular right floated color blue ui icon button"> | |
| 246 | <i class="icon user outline"></i> | |
| 247 | </button> | |
| 248 | <button class="circular right floated color blue ui icon button"> | |
| 249 | <i class="icon user outline"></i> | |
| 250 | </button> | |
| 251 | <button class="circular right floated color blue ui icon button"> | |
| 252 | <i class="icon user outline"></i> | |
| 253 | </button> | |
| 254 | </div> | |
| 255 | <div class="eight column row"> | |
| 256 | <div class="ui left icon input"> | |
| 257 | <input type="text" placeholder="Wpisz produkt"></input> | |
| 258 | <i class="birthday cake icon"></i> | |
| 259 | </div> | |
| 260 | <div class="ui right labeled input"> | |
| 261 | <input type="text" placeholder="Wpisz ilość"></input> | |
| 262 | <div class="ui basic label"> | |
| 263 | szt | |
| 264 | </div> | |
| 265 | </div> | |
| 266 | </div> | |
| 267 | <div class="eight column row"> | |
| 268 | <div class="ui left floated vertical animated button" tabindex="0"> | |
| 269 | <div class="hidden content">Dodaj</div> | |
| 270 | <div class="visible content"> | |
| 271 | <i class="plus icon"></i> | |
| 272 | </div> | |
| 273 | </div> | |
| 274 | </div> | |
| 275 | ||
| 276 | </div> | |
| 277 | </div> | |
| 278 | </ul> | |
| 279 | ); | |
| 280 | } | |
| 281 | ||
| 282 | render() {
| |
| 283 | let contents = this.state.loading | |
| 284 | ? <p><em>Loading...</em></p> | |
| 285 | : EventData.showEvent(this.state.event, this.state.address); | |
| 286 | let descriptionContents = this.state.loading | |
| 287 | ? <p><em>Loading...</em></p> | |
| 288 | : EventData.showDescription(this.state.event, this.state.address); | |
| 289 | return ( | |
| 290 | <div> | |
| 291 | ||
| 292 | <Segment.Group> | |
| 293 | <Segment inverted color='blue' secondary> | |
| 294 | <Header as="h2" textAlign="center">Wydarzenie</Header> | |
| 295 | </Segment> | |
| 296 | <Container> | |
| 297 | <Header | |
| 298 | as='h1' | |
| 299 | inverted | |
| 300 | style={{
| |
| 301 | width: "100%", | |
| 302 | height: 250, | |
| 303 | display: 'inline-block', | |
| 304 | opacity: 1, | |
| 305 | backgroundImage: `url(${"https://i.imgur.com/A3SxaVn.png"})`,
| |
| 306 | backgroundSize: 'cover', | |
| 307 | fontWeight: 'bold', | |
| 308 | marginBottom: 0, | |
| 309 | marginLeft: 'auto', | |
| 310 | marginRight: 'auto', | |
| 311 | paddingTop: 210, | |
| 312 | fontSize: 'xx-large' | |
| 313 | }} | |
| 314 | > | |
| 315 | {this.state.event.title}
| |
| 316 | </Header> | |
| 317 | </Container> | |
| 318 | <Segment textAlign="left"> | |
| 319 | {contents}
| |
| 320 | </Segment> | |
| 321 | <Segment textAlign="left"> | |
| 322 | {descriptionContents}
| |
| 323 | </Segment> | |
| 324 | <Segment> | |
| 325 | <Button color="blue" icon labelPosition='left' | |
| 326 | onClick={() => {window.location.href = ('#/home/events/search-event');}}>
| |
| 327 | Wróć | |
| 328 | <Icon name='reply' /> | |
| 329 | </Button> | |
| 330 | <Button color="blue" icon labelPosition='right' | |
| 331 | onClick={() => this.joinToEvent()}>
| |
| 332 | Dołącz do wydarzenia | |
| 333 | <Icon name='check circle' /> | |
| 334 | </Button> | |
| 335 | </Segment> | |
| 336 | </Segment.Group> | |
| 337 | </div> | |
| 338 | ); | |
| 339 | } | |
| 340 | } | |
| 341 | ||
| 342 | export default EventData; |