diff --git a/package-lock.json b/package-lock.json index 6d6c5f6..f99c1e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3109,6 +3109,14 @@ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.0.2.tgz", "integrity": "sha512-arU1h31OGFu+LPrOLGZ7nB45v940NMDMEJeNmbutu57P+UFDVnkZg3e+J1I2HJRZ9hT7gO8J91dn/PMrAiKakA==" }, + "axios": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.0.tgz", + "integrity": "sha512-fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw==", + "requires": { + "follow-redirects": "^1.10.0" + } + }, "axobject-query": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", @@ -12553,6 +12561,18 @@ "warning": "^4.0.3" } }, + "react-redux": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.2.tgz", + "integrity": "sha512-8+CQ1EvIVFkYL/vu6Olo7JFLWop1qRUeb46sGtIMDCSpgwPQq8fPLpirIB0iTqFe9XYEFPHssdX8/UwN6pAkEA==", + "requires": { + "@babel/runtime": "^7.12.1", + "hoist-non-react-statics": "^3.3.2", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^16.13.1" + } + }, "react-refresh": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", @@ -12795,6 +12815,25 @@ "strip-indent": "^3.0.0" } }, + "redux": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", + "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", + "requires": { + "loose-envify": "^1.4.0", + "symbol-observable": "^1.2.0" + } + }, + "redux-devtools-extension": { + "version": "2.13.8", + "resolved": "https://registry.npmjs.org/redux-devtools-extension/-/redux-devtools-extension-2.13.8.tgz", + "integrity": "sha512-8qlpooP2QqPtZHQZRhx3x3OP5skEV1py/zUdMY28WNAocbafxdG2tRD1MWE7sp8obGMNYuLWanhhQ7EQvT1FBg==" + }, + "redux-thunk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", + "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==" + }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -14610,6 +14649,11 @@ "util.promisify": "~1.0.0" } }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", diff --git a/package.json b/package.json index 22efc41..754b148 100644 --- a/package.json +++ b/package.json @@ -6,12 +6,17 @@ "@testing-library/jest-dom": "^5.11.5", "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", + "axios": "^0.21.0", "bootstrap": "^4.5.3", "react": "^17.0.1", "react-bootstrap": "^1.4.0", "react-dom": "^17.0.1", + "react-redux": "^7.2.2", "react-router-dom": "^5.2.0", "react-scripts": "4.0.0", + "redux": "^4.0.5", + "redux-devtools-extension": "^2.13.8", + "redux-thunk": "^2.3.0", "styled-components": "^5.2.1", "web-vitals": "^0.2.4" }, diff --git a/src/components/AuthReducer.js b/src/components/AuthReducer.js new file mode 100644 index 0000000..3911eaa --- /dev/null +++ b/src/components/AuthReducer.js @@ -0,0 +1,17 @@ + +const initalState = { + token: localStorage.getItem('token'), + isAllowedToLogin: false, + errors:{} +} + +const authReducer = ( state=initialState, action ) => { + const {type,payload} = action; + switch(type){ + default: + return state; + } + +} + +export default authReducer; \ No newline at end of file diff --git a/src/components/SignIn.js b/src/components/SignIn.js index 5ee6b99..9112485 100644 --- a/src/components/SignIn.js +++ b/src/components/SignIn.js @@ -1,6 +1,7 @@ import React, { useState } from 'react'; import { Link } from 'react-router-dom'; - +import { Provider } from 'react-redux'; +import store from './store'; const SignInForm = () => { let [data,setData] = useState({ @@ -22,7 +23,9 @@ const SignInForm = () => { let {email,password} = data; return ( +
+
diff --git a/src/components/store.js b/src/components/store.js new file mode 100644 index 0000000..06f1e9e --- /dev/null +++ b/src/components/store.js @@ -0,0 +1,17 @@ +import { createStore, applyMiddleware } from 'redux'; +import thunk from 'redux-thunk'; +import {composeWithDevTools } from 'redux-devtools-extension'; +import AuthReducer from './AuthReducer'; + +const middleWare = [thunk]; + +const initialState = {}; + +const store = createStore( + AuthReducer, + initialState, + composeWithDevTools(applyMiddleware(...middleWare)) + +); + +export default store; \ No newline at end of file