Advertisement
bac1lla

Untitled

Jun 2nd, 2022
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. import {useParams} from "react-router-dom";
  2. import {useEffect, useState} from "react";
  3. import {dataCafes, dataMenu} from "../../../api/getData";
  4. import Modal from "../Modal/Modal";
  5. import MenuItem from "../MenuItem/MenuItem";
  6. import GoHomeBtn from "../GoHomeBtn/GoHomeBtn";
  7. import MealModalItem from "../MealModalItem/MealModalItem";
  8.  
  9.  
  10. export default function Cafe({cart, setCart}) {
  11.  
  12. const {cafeId} = useParams()
  13. const [cafe, setCafe] = useState(dataCafes[cafeId])
  14.  
  15. useEffect(() => {
  16. updateCafe()
  17. }, [cafeId])
  18.  
  19. const updateCafe = () => {
  20. setCafe(dataCafes[cafeId])
  21. }
  22.  
  23.  
  24. const [isModalCafeCard, setModalCafeCard] = useState({visible: false, data: null})
  25. const onClose = () => setModalCafeCard({visible: false, data: isModalCafeCard.data})
  26.  
  27.  
  28. return (
  29. <div style={styles.container}>
  30. <GoHomeBtn />
  31. <div style={styles.cafeDescription}>
  32. <h2 style={styles.pageTitle}>{cafe.name}</h2>
  33. <div style={{...styles.cafeImg, backgroundImage: `url(${cafe.img})`}}/>
  34. </div>
  35. <div style={styles.menuList}>
  36. {dataMenu[cafeId].map(meal => <MenuItem meal={meal} setModal={setModalCafeCard}/>)}
  37. </div>
  38. <Modal
  39. visible={isModalCafeCard.visible}
  40. onClose={onClose}
  41. component={<MealModalItem data={isModalCafeCard.data}
  42. onClose={onClose}
  43. cart={cart}
  44. setCart={setCart}/>}
  45. />
  46. </div>
  47. )
  48. }
  49.  
  50. const styles = {
  51. pageTitle: {
  52. fontSize: 46,
  53. textAlign: "left",
  54. },
  55. cafeTitle: {
  56. fontSize: 22,
  57. fontWeight: 500,
  58. textAlign: "left",
  59. },
  60. menuList: {
  61. display: 'flex',
  62. flexWrap: 'wrap',
  63. alignItems: 'center',
  64. justifyContent: 'center',
  65. },
  66.  
  67. cafeDescription: {
  68. display: "flex",
  69. justifyContent: "space-between",
  70. alignItems: "center",
  71. },
  72. cafeImg: {
  73. height: 70,
  74. width: 70,
  75. backgroundPosition: 'center',
  76. backgroundSize: 'contain',
  77. backgroundRepeat: 'no-repeat',
  78. borderRadius: 16,
  79. },
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement