Main.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. import {BrowserRouter as Router, Route, Link, Switch, Redirect, useHistory} from 'react-router-dom';
  2. // import createHistory from "history/createBrowserHistory";
  3. import { useState } from 'react';
  4. import {Provider, connect} from 'react-redux';
  5. import {createStore, combineReducers, applyMiddleware} from 'redux';
  6. import thunk from 'redux-thunk';
  7. import store from "../reducers";
  8. import Catalog from "./catalog";
  9. import {actionCatalogCard, CBasketPage, searchInput, CGoodsCategory,
  10. SearchInput, CGoodsSearch, LoginForm, CGoodCard, CYourProfile,
  11. COrderPage, CUsersList, COrdersList, COrderUpdate, CGoodsList} from "./index";
  12. const Main = ({className = "MainImg" }) => {
  13. return (
  14. <>
  15. <div className = {className}>
  16. <div className = "catalogHead">
  17. <Switch>
  18. <Route path = "/orderPage/" component = {MainCatalog}/>
  19. <SearchInput/>
  20. </Switch>
  21. </div>
  22. <div className = "catalogInput">
  23. <aside>
  24. <Switch>
  25. <Route path = "/catalog/" component={Catalog} />
  26. <Route path = "/search/"component={Catalog} />
  27. <Route path = "/good/:id" component={(window.innerWidth > 900) && Catalog} />
  28. <Route path = "/orderPage/" component = {Catalog}/>
  29. </Switch>
  30. </aside>
  31. <content>
  32. <Switch>
  33. <Route path = "/" component = {About} exact/>
  34. <Route path = "/catalog/" component={MainCatalog} exact/>
  35. <Route path = "/catalog/:id" component= {({match}) => <CGoodsCategory id = {match.params.id} /> }/>
  36. <Route path = "/search/:name" component = {({match}) => <CGoodsSearch name = {match.params.name}/>}/>
  37. <Route path = "/good/:id" component = {({match}) => <CGoodCard id = {match.params.id}/>}/>
  38. <Route path = "/order/" component = {COrderPage} exact/>
  39. <Route path = "/login/" component = {LoginForm}/>
  40. <Route path = "/searchUser/:users" component = {CUsersList}/>
  41. <Route path = "/profile/" component = {CYourProfile}/>
  42. <Route path = "/user/:_id" component = {CYourProfile}/>
  43. <Route path = "/basket" component = {CBasketPage}/>
  44. <Route path="/about" component = {About} exact/>
  45. <Route path = "/orderPage/" component = {MainCatalog} exact/>
  46. <Route path = "/orderPage/:id" component = {({match}) => <CGoodsCategory id = {match.params.id}/>}/>
  47. <Route path = "/contacts" component = {Contacts} />
  48. <Route path = "/loginError" component={LoginError} />
  49. <Route component = { NotFound } exact/>
  50. </Switch>
  51. </content>
  52. </div>
  53. </div>
  54. <div className = "bottom">
  55. <Switch>
  56. <Route path = "/profile/" component = {COrdersList}/>
  57. <Route path = "/user/:_id" component = {COrdersList}/>
  58. <Route path = "/orderPage/:_id" component = {COrderUpdate}/>
  59. </Switch>
  60. </div>
  61. </>
  62. )
  63. }
  64. const LoginError = () => {
  65. const history = useHistory();
  66. return(
  67. <>
  68. <div className = "loginWrapper">
  69. <h4>Упс, щось пішло не так.
  70. Можливо це ім'я вже зайнято, або ви ввели невірні дані.
  71. Спробуйте ще.</h4>
  72. <button onClick = {() => history.push("/login")}>Перейти на сторінку регістрації</button>
  73. </div>
  74. </>
  75. )}
  76. const MainMag = () => <div>Я тут кароче самый главный страниц</div>
  77. const About = () =>
  78. <div className = "basketNoGoods">
  79. <h4>Ласкаво просимо до нашого магазину!</h4>
  80. <p>
  81. Серед наших товарів ви знайдете що пожувати, де сховати залишки продуктів, та на чому подивитись кіно.
  82. </p>
  83. <p>
  84. Так, саме так, у нас є техніка та смаколики, бо ми хазяйновиті та любимо смачно поїсти.
  85. </p>
  86. <p>
  87. Щоб зробити замовлення перейдіть до каталогу, або скористуйтеся пошуком.
  88. </p>
  89. </div>
  90. const NotFound = () => {
  91. return(
  92. <>
  93. <div className = "basketNoGoods">
  94. <h4>Упс, сторінку не знайдено, або сталася помилка</h4>
  95. </div>
  96. </>
  97. )
  98. }
  99. {/* <div> <h5 className = "profilePage">Ой, щось пішло не так. Мабудь цієї сторінки немає, або сталася помилка. Спробуйте ще.</h5></div> */}
  100. const MainCatalog = () => <div></div>
  101. const Post = () => <div className = "post">Точно не знаю зачем это, возможно потом уберу. Но в некоторых магазинах есть такое</div>
  102. const Contacts = () =>
  103. <div className = "order">
  104. <h4>Як ви нас зможете знайти:</h4>
  105. <p>Номер телефону: + 38 068 811 3262</p>
  106. <p>Ми в instagram: <a href = "https://www.instagram.com/alevelua/?hl=ru" target="_blank">alevelua </a> </p>
  107. <p>Ми у Facebook: <a href = "https://www.facebook.com/alevelukraine" target="_blank"> https://www.facebook.com/alevelukraine </a></p>
  108. <p>Адреса: пл. Павловская 6, 2й этаж Харьков, Харьковская область, Украина 61022</p>
  109. </div>
  110. export default Main;