AdminGoodCard.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import React from "react";
  2. import { Link } from "react-router-dom";
  3. import { connect } from 'react-redux';
  4. import { actionCartAdd } from "../../actions/actionsCartReducer";
  5. import { backURL } from "../../services/getGQL";
  6. import { actionGoodChange } from "../../actions/GQLActions";
  7. import { useState } from "react";
  8. import { CSetImageDropzone } from "../Dropzone/Dropzone";
  9. import './../../App.scss';
  10. const AdminGoodCard = ({ good: {_id, name, price, description, images} = {}, onCartAdd, onGoodChange }) => {
  11. const [nameField, setNameField] = useState(name);
  12. const [priceField, setPriceField] = useState(price);
  13. const [descriptionField, setDescriptionField] = useState(description);
  14. return (
  15. <div className='goodCard'>
  16. <h2 className="goodCard_title">{nameField}</h2>
  17. <div className="goodCard_img">
  18. {images && images[0] && images[0].url && <img src={backURL + '/' + images[0].url} />}
  19. </div>
  20. <CSetImageDropzone id={_id} />
  21. <div className="goodCard_cart">
  22. <h2 className="goodCard_cart-price">{priceField} ₴</h2>
  23. <div className="goodCard_cart-btns">
  24. <button
  25. className="goodCard_cart-btns--btn"
  26. onClick={() => onCartAdd({_id, name, price, images})}
  27. >
  28. <div>
  29. <i class="fas fa-cart-arrow-down"></i>
  30. </div>
  31. </button>
  32. <Link className="goodCard_cart-btns--link" to={`/good/${_id}`}>
  33. <p>DETAIL</p>
  34. </Link>
  35. </div>
  36. </div>
  37. <div className="goodCard_change">
  38. <textarea type="text" value={nameField} onChange={e => setNameField(e.target.value)} />
  39. <textarea type="number" value={priceField} onChange={e => setPriceField(+e.target.value)} />
  40. <textarea type="text" value={descriptionField} onChange={e => setDescriptionField(e.target.value)} />
  41. <button className="goodCard_change-btn" onClick={() => onGoodChange({ name: nameField, price: priceField, description: descriptionField, _id: _id })}>Change</button>
  42. </div>
  43. </div>
  44. )
  45. }
  46. export const CAdminGoodCard = connect(state => ({admin: state.auth.payload?.sub?.acl[2]}), {onCartAdd: actionCartAdd, onGoodChange: actionGoodChange})(AdminGoodCard);