Marina Yakovenko 5 роки тому
батько
коміт
57390ea2c6
13 змінених файлів з 1190 додано та 114 видалено
  1. 982 32
      package-lock.json
  2. 8 1
      package.json
  3. 0 33
      src/App.css
  4. 0 26
      src/App.js
  5. 0 9
      src/App.test.js
  6. 16 6
      src/index.js
  7. 1 0
      src/index.css
  8. 0 7
      src/logo.svg
  9. 27 0
      src/reducers/adminMainPageReducer.js
  10. 9 0
      src/reducers/combineReducers.js
  11. 29 0
      src/router.js
  12. 9 0
      src/store.js
  13. 109 0
      src/styles/base.scss

Різницю між файлами не показано, бо вона завелика
+ 982 - 32
package-lock.json


+ 8 - 1
package.json

@@ -3,9 +3,16 @@
   "version": "0.1.0",
   "private": true,
   "dependencies": {
+    "axios": "^0.19.0",
+    "node-sass": "^4.12.0",
     "react": "^16.8.6",
     "react-dom": "^16.8.6",
-    "react-scripts": "3.0.1"
+    "react-redux": "^7.1.0",
+    "react-router-dom": "^5.0.1",
+    "react-scripts": "3.0.1",
+    "redux": "^4.0.1",
+    "redux-form": "^8.2.4",
+    "redux-thunk": "^2.3.0"
   },
   "scripts": {
     "start": "react-scripts start",

+ 0 - 33
src/App.css

@@ -1,33 +0,0 @@
-.App {
-  text-align: center;
-}
-
-.App-logo {
-  animation: App-logo-spin infinite 20s linear;
-  height: 40vmin;
-  pointer-events: none;
-}
-
-.App-header {
-  background-color: #282c34;
-  min-height: 100vh;
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-  justify-content: center;
-  font-size: calc(10px + 2vmin);
-  color: white;
-}
-
-.App-link {
-  color: #61dafb;
-}
-
-@keyframes App-logo-spin {
-  from {
-    transform: rotate(0deg);
-  }
-  to {
-    transform: rotate(360deg);
-  }
-}

+ 0 - 26
src/App.js

@@ -1,26 +0,0 @@
-import React from 'react';
-import logo from './logo.svg';
-import './App.css';
-
-function App() {
-  return (
-    <div className="App">
-      <header className="App-header">
-        <img src={logo} className="App-logo" alt="logo" />
-        <p>
-          Edit <code>src/App.js</code> and save to reload.
-        </p>
-        <a
-          className="App-link"
-          href="https://reactjs.org"
-          target="_blank"
-          rel="noopener noreferrer"
-        >
-          Learn React
-        </a>
-      </header>
-    </div>
-  );
-}
-
-export default App;

+ 0 - 9
src/App.test.js

@@ -1,9 +0,0 @@
-import React from 'react';
-import ReactDOM from 'react-dom';
-import App from './App';
-
-it('renders without crashing', () => {
-  const div = document.createElement('div');
-  ReactDOM.render(<App />, div);
-  ReactDOM.unmountComponentAtNode(div);
-});

+ 16 - 6
src/index.js

@@ -1,12 +1,22 @@
 import React from 'react';
 import ReactDOM from 'react-dom';
-import './index.css';
-import App from './App';
+import { BrowserRouter } from "react-router-dom";
+import { Provider } from "react-redux";
 import * as serviceWorker from './serviceWorker';
+import './index.scss';
+import Router from './router';
+// import Header from './components/header/header';
 
-ReactDOM.render(<App />, document.getElementById('root'));
+import { store } from "./store.js";
+
+ReactDOM.render(
+    <Provider store={store}>
+        <BrowserRouter>
+            {/* <Header /> */}
+            <Router />
+        </BrowserRouter>
+    </Provider>, 
+    document.getElementById('root')
+);
 
-// If you want your app to work offline and load faster, you can change
-// unregister() to register() below. Note this comes with some pitfalls.
-// Learn more about service workers: https://bit.ly/CRA-PWA
 serviceWorker.unregister();

+ 1 - 0
src/index.css

@@ -1,3 +1,4 @@
+@import "./styles/base.scss";
 body {
   margin: 0;
   font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",

Різницю між файлами не показано, бо вона завелика
+ 0 - 7
src/logo.svg


+ 27 - 0
src/reducers/adminMainPageReducer.js

@@ -0,0 +1,27 @@
+import * as types from "../actionTypes/actionTypes"
+
+const initialValue = {
+
+};
+
+export default (state = initialValue, action) => {
+
+    switch (action.type) {
+      
+        // case types.SHOW_CAR_ELEMENT: {
+        //   const item = state.carList.find(el => el.id === action.payload);
+        //   return {
+        //     ...state,
+        //     item,
+        //     rentalData: {
+        //       ...state.rentalData,
+        //       carId: item.id
+        //     },
+        //     showCarFlag: true
+        //   }
+        // }
+
+        default:
+			return state; 
+    }
+}

+ 9 - 0
src/reducers/combineReducers.js

@@ -0,0 +1,9 @@
+import { combineReducers } from "redux";
+import { reducer as formReducer } from "redux-form";
+
+import adminMainPageReducer from "./adminMainPageReducer";
+
+export default combineReducers({
+	form: formReducer,
+	adminMainPageReducer
+});

+ 29 - 0
src/router.js

@@ -0,0 +1,29 @@
+import React from 'react'
+import { Switch, Route } from "react-router-dom";
+import AdminMainPage from './conteiners/adminMainPage/adminMainPage';
+import EventForm from "./components/eventForm/eventForm"
+import PhotogalaryForm from "./components/adminPhotogalary/adminPhotogalary"
+import EventReduxForm from "./components/eventForm/eventReduxForm"
+
+// import {WhatDoWeOffer} from './conteiners/WhatDoWeOffer/WhatDoWeOffer';
+// import {RentalTerms} from './conteiners/RentalTerms/RentalTerms.js';
+// import {Discount} from './conteiners/Discount/Discount';
+import Header from './components/header/header';
+
+export default () => (
+    <div className="container">
+        {/* <Header /> */}
+        <Switch>
+            {/* <Route exact path="/" component={Main} />
+            <Route exact path="/what_do_we_offer" component={WhatDoWeOffer} />
+            <Route exact path="/car_rental-terms" component={RentalTerms} />
+            <Route exact path="/discount" component={Discount} /> */}
+            
+            <Route exact path = '/admin' component = {AdminMainPage} />
+            <Route exact path = '/admin/add_new_event' component = {EventForm} />
+            <Route exact path = '/admin/my_events' component = {EventReduxForm} />
+            <Route exact path = '/admin/photogalary' component = {PhotogalaryForm} />
+            
+        </Switch>
+    </div>
+);

+ 9 - 0
src/store.js

@@ -0,0 +1,9 @@
+import { createStore, applyMiddleware } from "redux";
+import thunk from "redux-thunk";
+
+import reducers from "./reducers/combineReducers";
+
+export const store = createStore(
+    reducers,
+    applyMiddleware(thunk)
+);

+ 109 - 0
src/styles/base.scss

@@ -0,0 +1,109 @@
+*,
+*:after,
+*:before {
+	margin: 0;
+	padding: 0;
+	-webkit-box-sizing: inherit;
+	box-sizing: inherit;
+}
+
+html {
+	font-size: 62.5% !important;
+
+	// @include breakpoint(lg) {
+	// 	font-size: 56.25% !important;
+	// }
+	// @include breakpoint(md) {
+	// 	font-size: 50% !important;
+	// }
+	// @include breakpoint(sm) {
+	// 	font-size: 62.5% !important;
+	// }
+}
+
+body,
+div,
+dl,
+dt,
+dd,
+ul,
+ol,
+li,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+pre,
+form,
+fieldset,
+input,
+textarea,
+p,
+blockquote,
+th,
+td {
+	padding: 0;
+	margin: 0;
+}
+textarea {
+	resize: none;
+}
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+}
+fieldset,
+img {
+	border: 0;
+}
+address,
+caption,
+cite,
+code,
+dfn,
+em,
+strong,
+th,
+var {
+	font-weight: normal;
+	font-style: normal;
+}
+ol,
+ul {
+	list-style: none;
+}
+caption,
+th {
+	text-align: left;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+	font-weight: normal;
+}
+
+abbr,
+acronym {
+	border: 0;
+}
+
+body {
+	font-family: "Raleway", sans-serif !important;
+	line-height: 1.7 !important;
+	font-size: inherit !important;
+	box-sizing: border-box;
+	min-width: 320px;
+}
+
+a:hover {
+	text-decoration: none;
+}
+
+button {
+	cursor: pointer;
+}