ParcelsListComponent.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import {ScrollPanel} from "primereact/scrollpanel";
  2. import React, {Component, useEffect, useState} from "react";
  3. import {Button} from "primereact/button";
  4. import {SPRING_SERVER} from "../config";
  5. export default function (props) {
  6. const userDataUrl = SPRING_SERVER + '/api/users/' + props.username;
  7. const [userData, setUserData] = useState()
  8. useEffect(() => {
  9. fetch(userDataUrl, {
  10. headers: {
  11. "Authorization": "Bearer " + localStorage.getItem("access_token"),
  12. }
  13. })
  14. .then(response => response.json())
  15. .then(data => {
  16. setUserData(data)
  17. })
  18. },[])
  19. function removeParcel(item){
  20. const deleteUrl = SPRING_SERVER + '/deliveries/' + item.id ;
  21. fetch(deleteUrl, {
  22. method: 'DELETE',
  23. headers: {
  24. "Authorization": "Bearer " + localStorage.getItem("access_token"),
  25. }
  26. }).then(() => {
  27. fetch(userDataUrl, {
  28. headers: {
  29. "Authorization": "Bearer " + localStorage.getItem("access_token"),
  30. }
  31. })
  32. .then(response => response.json())
  33. .then(data => {
  34. console.log(data)
  35. setUserData(data)
  36. })
  37. })
  38. }
  39. return (
  40. <ScrollPanel className="w-11 my-2 surface-200 max-h-10rem border-round shadow-3 ">
  41. {userData?.deliveries?.map((parcel, index) =>
  42. <div key={index} className="flex flex-row">
  43. <div className="m-1 p-1 w-full surface-300 border-round flex flex-column">
  44. <div className="font-bold">
  45. {parcel.packets[0].name}
  46. </div>
  47. <div className="flex flex-row">
  48. <div>{parcel.deliveryAddress}</div>
  49. </div>
  50. </div>
  51. <Button
  52. onClick={() => removeParcel(parcel)}
  53. className="text-900 bg-red-200 border-1 border-black-alpha-10 border-round p-1 m-1 flex flex-column align-items-center justify-content-center">
  54. <i className="pi pi-trash"></i>
  55. </Button>
  56. </div>
  57. )}
  58. </ScrollPanel>
  59. )
  60. }