Order.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import React, { useEffect } from 'react';
  2. import { Typography } from "@mui/material"
  3. import { Box, Container } from "@mui/system"
  4. import { connect, useDispatch } from "react-redux"
  5. import { actionOrderFindOne, getCurrentOrder, useGetOrderByIdQuery } from "../reducers/ordersReducer"
  6. import { OrderGoodsList } from "./OrderGoodsList"
  7. import { useParams } from 'react-router-dom/cjs/react-router-dom';
  8. import { actionSetCurrentOrder } from '../reducers/frontEndReducer';
  9. let exampleOrder = {
  10. "_id": "62cdc9b3b74e1f5f2ec1a0e9",
  11. "total": 3383,
  12. "createdAt": "1657653683000",
  13. "orderGoods": [
  14. {
  15. "_id": "62cdc9b3b74e1f5f2ec1a0e6",
  16. "price": 33,
  17. "count": 1,
  18. "total": 33,
  19. "createdAt": "1657653683000",
  20. "good": null
  21. },
  22. {
  23. "_id": "62cdc9b3b74e1f5f2ec1a0e7",
  24. "price": 1000,
  25. "count": 2,
  26. "total": 2000,
  27. "createdAt": "1657653683000",
  28. "good": {
  29. "name": "iPhone 13",
  30. "images": [
  31. {
  32. "url": "images/56c5d476685355221b1a3ba2c554ad91"
  33. },
  34. {
  35. "url": "images/29393a087c933d7caea010c98f4d2876"
  36. }
  37. ]
  38. }
  39. },
  40. {
  41. "_id": "62cdc9b3b74e1f5f2ec1a0e8",
  42. "price": 450,
  43. "count": 3,
  44. "total": 1350,
  45. "createdAt": "1657653683000",
  46. "good": {
  47. "name": "Samsung Galaxy M52",
  48. "images": [
  49. {
  50. "url": "images/e91a37b88f947e51586dfe87b2f4e13f"
  51. },
  52. {
  53. "url": "images/bf8fcf557844ba9bce1368e5bf52bb4d"
  54. },
  55. {
  56. "url": "images/fd419e96ffc2d21e880fc0efabe7ae5c"
  57. }
  58. ]
  59. }
  60. }
  61. ]
  62. }
  63. const Order = ({ order = {} }) => {
  64. return (
  65. <>
  66. <Container>
  67. <Box>
  68. <Typography paragraph gutterBottom component={'h3'} variant={'h3'}>
  69. Order# {order._id}
  70. </Typography>
  71. <Typography gutterBottom variant='body2' color='textSecondary' component='p'>
  72. {`Created at: ${new Date(+order.createdAt).toLocaleString()}`}
  73. </Typography>
  74. <OrderGoodsList orderGoods={order?.orderGoods} />
  75. </Box>
  76. </Container>
  77. </>
  78. )
  79. }
  80. const COrder = () => {
  81. const { _id } = useParams();
  82. const { isLoading, data } = useGetOrderByIdQuery(_id);
  83. let order = isLoading ? { name: 'loading', order: {} } : data?.OrderFindOne;
  84. const dispatch = useDispatch();
  85. dispatch(actionSetCurrentOrder(_id));
  86. return !isLoading && <Order order={order} />;
  87. }
  88. export { COrder };