App.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. import React, {useState} from 'react';
  2. import './App.css';
  3. const LoginForm = ({onLogin}) => {
  4. const [login, setLogin] = useState("");
  5. const [password, setPassword] = useState("");
  6. const checkDisabled = () => {
  7. return !(login !== "" && password !== "")
  8. };
  9. const Authorization = () => {
  10. onLogin (login, password)
  11. }
  12. return (
  13. <div className="formBlock">
  14. <p>Enter login:</p>
  15. <input
  16. type="text"
  17. value={login}
  18. onChange={(e) => setLogin(e.target.value)}
  19. />
  20. <p>Enter password:</p>
  21. <input
  22. type="password"
  23. value={password}
  24. onChange={(e) => setPassword(e.target.value)}
  25. />
  26. <button disabled={checkDisabled()} onClick = {Authorization}>Log In</button>
  27. </div>
  28. );
  29. };
  30. const cat = [
  31. {
  32. "_id": "62d57ab8b74e1f5f2ec1a148",
  33. "name": "Motorola Razr 5G 8/256GB Graphite",
  34. "price": 3500,
  35. },
  36. {
  37. "_id": "62d57c4db74e1f5f2ec1a14a",
  38. "name": "Смартфон Google Pixel 6 Pro 12/128GB Stormy Black",
  39. "price": 2800,
  40. },
  41. {
  42. "_id": "62d58318b74e1f5f2ec1a14e",
  43. "name": "Microsoft Surface Duo 2 8GB/256GB",
  44. "price": 4500,
  45. },
  46. {
  47. "_id": "62d5869bb74e1f5f2ec1a150",
  48. "name": "Смартфон Poco F3 6/128GB EU Arctic White",
  49. "price": 1800,
  50. },
  51. {
  52. "_id": "62d58810b74e1f5f2ec1a152",
  53. "name": "Мобильный телефон Xiaomi Redmi Note 9 4G (Redmi 9t EU)",
  54. "price": 800,
  55. },
  56. {
  57. "_id": "62d5a7deb74e1f5f2ec1a154",
  58. "name": "LG V50 black REF",
  59. "price": 900,
  60. }
  61. ]
  62. const rootCats = [
  63. {
  64. "name": "test3"
  65. },
  66. {
  67. "name": "Tools"
  68. },
  69. {
  70. "name": "Tomatoes"
  71. },
  72. {
  73. "name": "123"
  74. },
  75. {
  76. "name": "iPhone"
  77. },
  78. {
  79. "name": "Samsung"
  80. },
  81. {
  82. "name": "Smartphone"
  83. },
  84. {
  85. "name": "Large home appliances"
  86. },
  87. {
  88. "name": "Garden"
  89. },
  90. {
  91. "name": "Children's products"
  92. },
  93. {
  94. "name": " Hobbies and sports"
  95. },
  96. {
  97. "name": "Sale"
  98. }
  99. ]
  100. const CategoryMenu = () => {
  101. return (
  102. <>
  103. <aside id='aside'>
  104. <ul>
  105. {rootCats.map(cat => <CategoryMenuItem name={cat.name}/>)}
  106. </ul>
  107. </aside>
  108. </>
  109. );
  110. };
  111. const CategoryMenuItem = ({name}) => {
  112. return (
  113. <>
  114. <h2>{name}</h2>
  115. </>
  116. );
  117. };
  118. const Category = () => {
  119. return (
  120. <div className="cardBlock">
  121. {cat.map(item => <GoodCard name={item.name} price={item.price}/>)}
  122. </div>
  123. );
  124. };
  125. const GoodCard = ({name, price}) => {
  126. return (
  127. <div className='card'>
  128. <h3>{name}</h3>
  129. <h4>{price}</h4>
  130. </div>
  131. );
  132. };
  133. function App() {
  134. return (
  135. <div className="App">
  136. <LoginForm onLogin = {(login, password) => console.log(login, password)}/>
  137. <CategoryMenu />
  138. <Category />
  139. </div>
  140. );
  141. }
  142. export default App;