diff --git a/package.json b/package.json index 35e5011..794687c 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,10 @@ "node-sass": "^4.13.0", "react": "^16.11.0", "react-dom": "^16.11.0", - "react-scripts": "3.2.0" + "react-redux": "^7.1.1", + "react-scripts": "3.2.0", + "redux": "^4.0.4", + "redux-thunk": "^2.3.0" }, "scripts": { "start": "react-scripts start", diff --git a/src/App.js b/src/App.js index 716c84b..0355753 100644 --- a/src/App.js +++ b/src/App.js @@ -1,10 +1,12 @@ -import React from 'react'; +import React from "react"; +import { Provider } from "react-redux"; +import setupStore from "./store/setupStore.js"; function App() { return ( -
- Yoooooo -
+ +
Yoooooo
+
); } diff --git a/src/reducers/appReducer.js b/src/reducers/appReducer.js new file mode 100644 index 0000000..c530058 --- /dev/null +++ b/src/reducers/appReducer.js @@ -0,0 +1,6 @@ +export default function appReducer(state = {}, action) { + switch (action.type) { + default: + return state; + } +} \ No newline at end of file diff --git a/src/reducers/main.js b/src/reducers/main.js new file mode 100644 index 0000000..b9f8a9b --- /dev/null +++ b/src/reducers/main.js @@ -0,0 +1,5 @@ +import { combineReducers } from 'redux'; +import appReducer from './appReducer.js'; +export default combineReducers({ + appReducer +}); diff --git a/src/store/setupStore.js b/src/store/setupStore.js new file mode 100644 index 0000000..b03666c --- /dev/null +++ b/src/store/setupStore.js @@ -0,0 +1,13 @@ +import { createStore, applyMiddleware, compose } from "redux"; +import thunk from "redux-thunk"; +import rootReducer from "../reducers/main.js"; + +export default function setupStore() { + return createStore( + rootReducer, + compose( + applyMiddleware(thunk), + window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() + ) + ); +} diff --git a/yarn.lock b/yarn.lock index 737d79d..92ef007 100644 --- a/yarn.lock +++ b/yarn.lock @@ -853,6 +853,13 @@ dependencies: regenerator-runtime "^0.13.2" +"@babel/runtime@^7.5.5": + version "7.6.3" + resolved "https://artifactory-eng.cargurus.com/artifactory/api/npm/npm-registry/@babel/runtime/-/runtime-7.6.3.tgz#935122c74c73d2240cafd32ddb5fc2a6cd35cf1f" + integrity sha1-k1Eix0xz0iQMr9Mt21/Cps01zx8= + dependencies: + regenerator-runtime "^0.13.2" + "@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4", "@babel/template@^7.6.0": version "7.6.0" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" @@ -4598,6 +4605,13 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +hoist-non-react-statics@^3.3.0: + version "3.3.0" + resolved "https://artifactory-eng.cargurus.com/artifactory/api/npm/npm-registry/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" + integrity sha1-sJF48BIhhPuVrPUl2q7LTY9FlYs= + dependencies: + react-is "^16.7.0" + hosted-git-info@^2.1.4: version "2.8.4" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" @@ -8277,11 +8291,28 @@ react-error-overlay@^6.0.3: resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.3.tgz#c378c4b0a21e88b2e159a3e62b2f531fd63bf60d" integrity sha512-bOUvMWFQVk5oz8Ded9Xb7WVdEi3QGLC8tH7HmYP0Fdp4Bn3qw0tRFmr5TW6mvahzvmrK4a6bqWGfCevBflP+Xw== +react-is@^16.7.0, react-is@^16.9.0: + version "16.11.0" + resolved "https://artifactory-eng.cargurus.com/artifactory/api/npm/npm-registry/react-is/-/react-is-16.11.0.tgz#b85dfecd48ad1ce469ff558a882ca8e8313928fa" + integrity sha1-uF3+zUitHORp/1WKiCyo6DE5KPo= + react-is@^16.8.1, react-is@^16.8.4: version "16.10.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.10.1.tgz#0612786bf19df406502d935494f0450b40b8294f" integrity sha512-BXUMf9sIOPXXZWqr7+c5SeOKJykyVr2u0UDzEf4LNGc6taGkQe1A9DFD07umCIXz45RLr9oAAwZbAJ0Pkknfaw== +react-redux@^7.1.1: + version "7.1.1" + resolved "https://artifactory-eng.cargurus.com/artifactory/api/npm/npm-registry/react-redux/-/react-redux-7.1.1.tgz#ce6eee1b734a7a76e0788b3309bf78ff6b34fa0a" + integrity sha1-zm7uG3NKenbgeIszCb94/2s0+go= + dependencies: + "@babel/runtime" "^7.5.5" + hoist-non-react-statics "^3.3.0" + invariant "^2.2.4" + loose-envify "^1.4.0" + prop-types "^15.7.2" + react-is "^16.9.0" + react-scripts@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-3.2.0.tgz#58ccd6b4ffa27f1b4d2986cbdcaa916660e9e33c" @@ -8456,6 +8487,19 @@ redent@^1.0.0: indent-string "^2.1.0" strip-indent "^1.0.1" +redux-thunk@^2.3.0: + version "2.3.0" + resolved "https://artifactory-eng.cargurus.com/artifactory/api/npm/npm-registry/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" + integrity sha1-UcLBmhhe1Rh6qpotCLZm0NZGdiI= + +redux@^4.0.4: + version "4.0.4" + resolved "https://artifactory-eng.cargurus.com/artifactory/api/npm/npm-registry/redux/-/redux-4.0.4.tgz#4ee1aeb164b63d6a1bcc57ae4aa0b6e6fa7a3796" + integrity sha1-TuGusWS2PWobzFeuSqC25vp6N5Y= + dependencies: + loose-envify "^1.4.0" + symbol-observable "^1.2.0" + regenerate-unicode-properties@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" @@ -9537,6 +9581,11 @@ svgo@^1.0.0, svgo@^1.2.2: unquote "~1.1.1" util.promisify "~1.0.0" +symbol-observable@^1.2.0: + version "1.2.0" + resolved "https://artifactory-eng.cargurus.com/artifactory/api/npm/npm-registry/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha1-wiaIrtTqs83C3+rLtWFmBWCgCAQ= + symbol-tree@^3.2.2: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"