diff --git a/build/404.html b/build/404.html
new file mode 100644
index 0000000..5e1bcb1
--- /dev/null
+++ b/build/404.html
@@ -0,0 +1,41 @@
+
+
+
+
+ Single Page Apps for GitHub Pages
+
+
+
+
+
\ No newline at end of file
diff --git a/build/asset-manifest.json b/build/asset-manifest.json
index b4c6dcf..a99332d 100644
--- a/build/asset-manifest.json
+++ b/build/asset-manifest.json
@@ -1,8 +1,8 @@
{
"files": {
"main.css": "/adobeassignment/static/css/main.3e8cb59e.chunk.css",
- "main.js": "/adobeassignment/static/js/main.f41420c5.chunk.js",
- "main.js.map": "/adobeassignment/static/js/main.f41420c5.chunk.js.map",
+ "main.js": "/adobeassignment/static/js/main.e04e805a.chunk.js",
+ "main.js.map": "/adobeassignment/static/js/main.e04e805a.chunk.js.map",
"runtime-main.js": "/adobeassignment/static/js/runtime-main.c8b8d0c7.js",
"runtime-main.js.map": "/adobeassignment/static/js/runtime-main.c8b8d0c7.js.map",
"static/css/2.de424728.chunk.css": "/adobeassignment/static/css/2.de424728.chunk.css",
@@ -18,7 +18,7 @@
"static/js/5.6e24af5d.chunk.js": "/adobeassignment/static/js/5.6e24af5d.chunk.js",
"static/js/5.6e24af5d.chunk.js.map": "/adobeassignment/static/js/5.6e24af5d.chunk.js.map",
"index.html": "/adobeassignment/index.html",
- "precache-manifest.f9ea5dc52bdddb29039a928ff3a0bc59.js": "/adobeassignment/precache-manifest.f9ea5dc52bdddb29039a928ff3a0bc59.js",
+ "precache-manifest.e4dc3f6d4d90410d1e509be50befdd36.js": "/adobeassignment/precache-manifest.e4dc3f6d4d90410d1e509be50befdd36.js",
"service-worker.js": "/adobeassignment/service-worker.js",
"static/css/2.de424728.chunk.css.map": "/adobeassignment/static/css/2.de424728.chunk.css.map",
"static/css/3.e94ddb7b.chunk.css.map": "/adobeassignment/static/css/3.e94ddb7b.chunk.css.map",
@@ -32,6 +32,6 @@
"static/css/2.de424728.chunk.css",
"static/js/2.c542aacd.chunk.js",
"static/css/main.3e8cb59e.chunk.css",
- "static/js/main.f41420c5.chunk.js"
+ "static/js/main.e04e805a.chunk.js"
]
}
\ No newline at end of file
diff --git a/build/index.html b/build/index.html
index 1b91780..0c1a707 100644
--- a/build/index.html
+++ b/build/index.html
@@ -1 +1 @@
-React App
\ No newline at end of file
+React App
\ No newline at end of file
diff --git a/build/precache-manifest.f9ea5dc52bdddb29039a928ff3a0bc59.js b/build/precache-manifest.e4dc3f6d4d90410d1e509be50befdd36.js
similarity index 87%
rename from build/precache-manifest.f9ea5dc52bdddb29039a928ff3a0bc59.js
rename to build/precache-manifest.e4dc3f6d4d90410d1e509be50befdd36.js
index 8c91387..fb5e22f 100644
--- a/build/precache-manifest.f9ea5dc52bdddb29039a928ff3a0bc59.js
+++ b/build/precache-manifest.e4dc3f6d4d90410d1e509be50befdd36.js
@@ -1,6 +1,6 @@
self.__precacheManifest = (self.__precacheManifest || []).concat([
{
- "revision": "a76e0f055f4a9c74ffbc8302ea5d3133",
+ "revision": "a13040fa65289d760f2cbb3303b84995",
"url": "/adobeassignment/index.html"
},
{
@@ -20,7 +20,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([
"url": "/adobeassignment/static/css/5.cc242a14.chunk.css"
},
{
- "revision": "6072dc83d467c1a17307",
+ "revision": "ff5dd4d47b7dae9ff50b",
"url": "/adobeassignment/static/css/main.3e8cb59e.chunk.css"
},
{
@@ -44,8 +44,8 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([
"url": "/adobeassignment/static/js/5.6e24af5d.chunk.js"
},
{
- "revision": "6072dc83d467c1a17307",
- "url": "/adobeassignment/static/js/main.f41420c5.chunk.js"
+ "revision": "ff5dd4d47b7dae9ff50b",
+ "url": "/adobeassignment/static/js/main.e04e805a.chunk.js"
},
{
"revision": "05e975bf59e53b06a038",
diff --git a/build/service-worker.js b/build/service-worker.js
index 1688deb..b1496d8 100644
--- a/build/service-worker.js
+++ b/build/service-worker.js
@@ -14,7 +14,7 @@
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
importScripts(
- "/adobeassignment/precache-manifest.f9ea5dc52bdddb29039a928ff3a0bc59.js"
+ "/adobeassignment/precache-manifest.e4dc3f6d4d90410d1e509be50befdd36.js"
);
self.addEventListener('message', (event) => {
diff --git a/build/static/js/main.e04e805a.chunk.js b/build/static/js/main.e04e805a.chunk.js
new file mode 100644
index 0000000..970ff6e
--- /dev/null
+++ b/build/static/js/main.e04e805a.chunk.js
@@ -0,0 +1,2 @@
+(this.webpackJsonpadobeassignment=this.webpackJsonpadobeassignment||[]).push([[0],{25:function(e,t,n){e.exports=n(37)},36:function(e,t,n){},37:function(e,t,n){"use strict";n.r(t);var o=n(0),r=n.n(o),a=n(11),c=n.n(a),i=n(20),l=n(8),u=n.n(l),s=n(5),f=n(7),p=n.n(f),m=n(24),y=n(22),d=n(9),b=function(e){return r.a.createElement("div",{className:"c-PageLoader"},r.a.createElement("div",{className:"is-animate"},r.a.createElement("div",{className:"l"},"l"),r.a.createElement("div",{className:"l"},"o"),r.a.createElement("div",{className:"l"},"a"),r.a.createElement("div",{className:"l"},"d"),r.a.createElement("div",{className:"l"},"i"),r.a.createElement("div",{className:"l"},"n"),r.a.createElement("div",{className:"l"},"g")))};b.defaultProps={},b.propTypes={};var E=b,_=n(13),h=n.n(_);function v(e){return(v="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function O(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:j,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"LOGIN_DATA_STATE_RECEIVED":case"UPDATE_BILLING_FORM_ERRORS":case"UPDATE_BILLING_FORM_VALUES":return e.mergeDeep(t.payload);default:return e}},M=u.a.Map(),U=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:M,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"UPDATE_BILLING_FORM_ERRORS":case"UPDATE_BILLING_FORM_VALUES":return e.mergeDeep(t.payload);default:return e}},B=u.a.Map(),G=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:B,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"UPDATE_BILLING_FORM_ERRORS":case"UPDATE_BILLING_FORM_VALUES":return e.mergeDeep(t.payload);default:return e}},F=Object(s.c)({data:Object(s.c)({pages:Object(s.c)({login:A,plp:U,cart:G})})});n(35),n(36);function V(e){return(V="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var C="object"===("undefined"===typeof window?"undefined":V(window))&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({serialize:{immutable:u.a}}):s.d,k=Object(s.e)(F,C(Object(s.a)(i.a)));c.a.render(r.a.createElement(P,{store:k}),document.getElementById("root"))}},[[25,1,2]]]);
+//# sourceMappingURL=main.e04e805a.chunk.js.map
\ No newline at end of file
diff --git a/build/static/js/main.e04e805a.chunk.js.map b/build/static/js/main.e04e805a.chunk.js.map
new file mode 100644
index 0000000..a1ad272
--- /dev/null
+++ b/build/static/js/main.e04e805a.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["components/molecules/PageLoader/PageLoader.jsx","components/molecules/PageLoader/index.js","router.jsx","pages/Login/reducer.js","pages/Login/actions.js","pages/PLP/reducer.js","pages/PLP/actions.js","pages/Cart/reducer.js","pages/Cart/actions.js","reducer.js","main.js"],"names":["PageLoader","props","className","defaultProps","propTypes","LoadableLogin","Loadable","loader","loading","LoadablePLP","LoadableCart","Router","store","this","basename","exact","path","component","React","Component","PropTypes","object","initialState","Immutable","Map","reducer","state","action","type","mergeDeep","payload","combineReducers","data","pages","login","loginReducer","plp","plpReducer","cart","cartReducer","composeEnhancers","window","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","serialize","immutable","compose","createStore","applyMiddleware","thunk","ReactDOM","render","document","getElementById"],"mappings":"8RAEMA,EAAa,SAAAC,GACjB,OACI,yBAAKC,UAAU,gBACb,yBAAKA,UAAU,cACb,yBAAKA,UAAU,KAAf,KACA,yBAAKA,UAAU,KAAf,KACA,yBAAKA,UAAU,KAAf,KACA,yBAAKA,UAAU,KAAf,KACA,yBAAKA,UAAU,KAAf,KACA,yBAAKA,UAAU,KAAf,KACA,yBAAKA,UAAU,KAAf,QAMVF,EAAWG,aAAe,GAI1BH,EAAWI,UAAY,GAIRJ,ICxBAA,EDwBAA,E,spCEnBR,IAAMK,EAAgBC,IAAS,CAClCC,OAAQ,kBAAM,8BACdC,QAASR,IAGAS,EAAcH,IAAS,CAChCC,OAAQ,kBAAM,8BACdC,QAASR,IAGAU,EAAeJ,IAAS,CACjCC,OAAQ,kBAAM,8BACdC,QAASR,IAGPW,E,4fAEQ,IACCC,EAASC,KAAKZ,MAAdW,MACP,OACI,kBAAC,IAAD,CAAUA,MAAOA,GACb,kBAAC,IAAD,CAAeE,SAAS,oBACpB,kBAAC,IAAD,CAAOC,OAAK,EAACC,KAAK,IAAIC,UAAWZ,IACjC,kBAAC,IAAD,CAAOW,KAAK,SAASC,UAAWZ,IAChC,kBAAC,IAAD,CAAOW,KAAK,YAAYC,UAAWR,IACnC,kBAAC,IAAD,CAAOO,KAAK,aAAaC,UAAWP,W,8BAVnCQ,IAAMC,WAiB3BR,EAAOP,UAAY,CACfQ,MAAOQ,IAAUC,QAGNV,QCvCTW,EAAeC,IAAUC,MAahBC,EAXC,WAAmC,IAAlCC,EAAiC,uDAAzBJ,EAAcK,EAAW,uCAC9C,OAAQA,EAAOC,MACX,ICRiC,4BDSjC,ICP0B,6BDQ1B,ICT0B,6BDUtB,OAAOF,EAAMG,UAAUF,EAAOG,SAClC,QACI,OAAOJ,IETbJ,EAAeC,IAAUC,MAYhBC,EAVC,WAAmC,IAAlCC,EAAiC,uDAAzBJ,EAAcK,EAAW,uCAC9C,OAAQA,EAAOC,MACX,ICP0B,6BDQ1B,ICT0B,6BDUtB,OAAOF,EAAMG,UAAUF,EAAOG,SAClC,QACI,OAAOJ,IERbJ,EAAeC,IAAUC,MAYhBC,EAVC,WAAmC,IAAlCC,EAAiC,uDAAzBJ,EAAcK,EAAW,uCAC9C,OAAQA,EAAOC,MACX,ICP0B,6BDQ1B,ICT0B,6BDUtB,OAAOF,EAAMG,UAAUF,EAAOG,SAClC,QACI,OAAOJ,IENJK,cAAgB,CAC3BC,KAAMD,YAAgB,CAClBE,MAAOF,YAAgB,CACnBG,MAAOC,EACPC,IAAKC,EACLC,KAAMC,Q,oPCAlB,IAAMC,EACc,YAAlB,qBAAOC,OAAP,cAAOA,UACPA,OAAOC,qCACLD,OAAOC,qCAAqC,CACxCC,UAAW,CACPC,UAAWrB,OAEdsB,IACHjC,EAAQkC,YAAYrB,EAASe,EAAiBO,YAAgBC,OAEpEC,IAASC,OAAO,kBAAC,EAAD,CAAQtC,MAAOA,IAAWuC,SAASC,eAAe,W","file":"static/js/main.e04e805a.chunk.js","sourcesContent":["import React from 'react';\n\nconst PageLoader = props => {\n return (\n \n
\n
l
\n
o
\n
a
\n
d
\n
i
\n
n
\n
g
\n
\n
\n )\n};\n\nPageLoader.defaultProps = {\n\n};\n\nPageLoader.propTypes = {\n\n};\n\nexport default PageLoader;","import PageLoader from './PageLoader.jsx';\n\nexport default PageLoader;","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {Provider} from 'react-redux'\nimport {BrowserRouter, Route} from 'react-router-dom';\nimport PageLoader from './components/molecules/PageLoader'\nimport Loadable from 'react-loadable'\n\nexport const LoadableLogin = Loadable({\n loader: () => import('./pages/Login'),\n loading: PageLoader\n})\n\nexport const LoadablePLP = Loadable({\n loader: () => import('./pages/PLP'),\n loading: PageLoader\n})\n\nexport const LoadableCart = Loadable({\n loader: () => import('./pages/Cart'),\n loading: PageLoader\n})\n\nclass Router extends React.Component {\n\n render() {\n const {store} = this.props\n return (\n \n \n \n \n \n \n \n \n )\n }\n}\n\nRouter.propTypes = {\n store: PropTypes.object\n}\n\nexport default Router\n","import Immutable from 'immutable'\n\nimport {LOGIN_DATA_STATE_RECEIVED, UPDATE_FORM_ERRORS, UPDATE_FORM_VALUES} from './actions'\n\nconst initialState = Immutable.Map()\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case LOGIN_DATA_STATE_RECEIVED:\n case UPDATE_FORM_ERRORS:\n case UPDATE_FORM_VALUES:\n return state.mergeDeep(action.payload)\n default:\n return state\n }\n}\n\nexport default reducer\n","export const LOGIN_DATA_STATE_RECEIVED = 'LOGIN_DATA_STATE_RECEIVED'\nexport const UPDATE_FORM_VALUES = 'UPDATE_BILLING_FORM_VALUES'\nexport const UPDATE_FORM_ERRORS = 'UPDATE_BILLING_FORM_ERRORS'\n\nexport const updateLoginDataState = (payload) => ({type: LOGIN_DATA_STATE_RECEIVED, payload})\n\nexport const initializeLogin = () => (dispatch) => {\n // return Promise.all([\n // dispatch(initializeApp())\n // ])\n // .then(() => ({statusCode: 200}))\n // .catch((err) => ({statusCode: err.statusCode || 500}))\n}\n\nexport const updateFormValues = (formValues) => {\n return {\n type: UPDATE_FORM_VALUES,\n payload: formValues\n }\n}\n\nexport const updateFormErrors = (formErrors) => {\n return {\n type: UPDATE_FORM_ERRORS,\n payload: formErrors\n }\n}\n ","import Immutable from 'immutable'\n\nimport {UPDATE_FORM_ERRORS, UPDATE_FORM_VALUES} from './actions'\n\nconst initialState = Immutable.Map()\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case UPDATE_FORM_ERRORS:\n case UPDATE_FORM_VALUES:\n return state.mergeDeep(action.payload)\n default:\n return state\n }\n}\n\nexport default reducer\n","export const UPDATE_FORM_VALUES = 'UPDATE_BILLING_FORM_VALUES'\nexport const UPDATE_FORM_ERRORS = 'UPDATE_BILLING_FORM_ERRORS'\n\nexport const initializeLogin = () => (dispatch) => {\n // return Promise.all([\n // dispatch(initializeApp())\n // ])\n // .then(() => ({statusCode: 200}))\n // .catch((err) => ({statusCode: err.statusCode || 500}))\n}\n\nexport const updateFormValues = (formValues) => {\n return {\n type: UPDATE_FORM_VALUES,\n payload: formValues\n }\n}\n\nexport const updateFormErrors = (formErrors) => {\n return {\n type: UPDATE_FORM_ERRORS,\n payload: formErrors\n }\n}\n ","import Immutable from 'immutable'\n\nimport {UPDATE_FORM_ERRORS, UPDATE_FORM_VALUES} from './actions'\n\nconst initialState = Immutable.Map()\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case UPDATE_FORM_ERRORS:\n case UPDATE_FORM_VALUES:\n return state.mergeDeep(action.payload)\n default:\n return state\n }\n}\n\nexport default reducer\n","export const UPDATE_FORM_VALUES = 'UPDATE_BILLING_FORM_VALUES'\nexport const UPDATE_FORM_ERRORS = 'UPDATE_BILLING_FORM_ERRORS'\n\nexport const initializeLogin = () => (dispatch) => {\n // return Promise.all([\n // dispatch(initializeApp())\n // ])\n // .then(() => ({statusCode: 200}))\n // .catch((err) => ({statusCode: err.statusCode || 500}))\n}\n\nexport const updateFormValues = (formValues) => {\n return {\n type: UPDATE_FORM_VALUES,\n payload: formValues\n }\n}\n\nexport const updateFormErrors = (formErrors) => {\n return {\n type: UPDATE_FORM_ERRORS,\n payload: formErrors\n }\n}\n ","import {combineReducers} from 'redux'\n\nimport loginReducer from './pages/Login/reducer'\nimport plpReducer from './pages/PLP/reducer'\nimport cartReducer from './pages/Cart/reducer'\n\nexport default combineReducers({\n data: combineReducers({\n pages: combineReducers({\n login: loginReducer,\n plp: plpReducer,\n cart: cartReducer\n })\n })\n})\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport thunk from 'redux-thunk'\nimport Immutable from 'immutable'\nimport {createStore, applyMiddleware, compose} from 'redux'\n// import * as serviceWorker from '../serviceWorker';\nimport Router from './router';\nimport reducer from './reducer'\nimport 'bootstrap/dist/css/bootstrap.min.css'\nimport './index.scss'\n\nconst composeEnhancers =\n typeof window === 'object' &&\n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? \n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({\n serialize: { // prettier-ignore\n immutable: Immutable\n }\n }) : compose;\nconst store = createStore(reducer, composeEnhancers(applyMiddleware(thunk)))\n\nReactDOM.render(, document.getElementById('root'));\n\n// serviceWorker.unregister();\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/build/static/js/main.f41420c5.chunk.js b/build/static/js/main.f41420c5.chunk.js
deleted file mode 100644
index d60ffe8..0000000
--- a/build/static/js/main.f41420c5.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(this.webpackJsonpadobeassignment=this.webpackJsonpadobeassignment||[]).push([[0],{25:function(e,t,n){e.exports=n(37)},36:function(e,t,n){},37:function(e,t,n){"use strict";n.r(t);var r=n(0),o=n.n(r),a=n(11),c=n.n(a),i=n(20),l=n(8),u=n.n(l),s=n(5),f=n(7),p=n.n(f),m=n(24),y=n(22),d=n(9),E=function(e){return o.a.createElement("div",{className:"c-PageLoader"},o.a.createElement("div",{className:"is-animate"},o.a.createElement("div",{className:"l"},"l"),o.a.createElement("div",{className:"l"},"o"),o.a.createElement("div",{className:"l"},"a"),o.a.createElement("div",{className:"l"},"d"),o.a.createElement("div",{className:"l"},"i"),o.a.createElement("div",{className:"l"},"n"),o.a.createElement("div",{className:"l"},"g")))};E.defaultProps={},E.propTypes={};var b=E,_=n(13),h=n.n(_);function v(e){return(v="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function O(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:j,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"LOGIN_DATA_STATE_RECEIVED":case"UPDATE_BILLING_FORM_ERRORS":case"UPDATE_BILLING_FORM_VALUES":return e.mergeDeep(t.payload);default:return e}},M=u.a.Map(),U=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:M,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"UPDATE_BILLING_FORM_ERRORS":case"UPDATE_BILLING_FORM_VALUES":return e.mergeDeep(t.payload);default:return e}},B=u.a.Map(),G=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:B,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"UPDATE_BILLING_FORM_ERRORS":case"UPDATE_BILLING_FORM_VALUES":return e.mergeDeep(t.payload);default:return e}},F=Object(s.c)({data:Object(s.c)({pages:Object(s.c)({login:A,plp:U,cart:G})})});n(35),n(36);function V(e){return(V="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var C="object"===("undefined"===typeof window?"undefined":V(window))&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({serialize:{immutable:u.a}}):s.d,k=Object(s.e)(F,C(Object(s.a)(i.a)));c.a.render(o.a.createElement(P,{store:k}),document.getElementById("root"))}},[[25,1,2]]]);
-//# sourceMappingURL=main.f41420c5.chunk.js.map
\ No newline at end of file
diff --git a/build/static/js/main.f41420c5.chunk.js.map b/build/static/js/main.f41420c5.chunk.js.map
deleted file mode 100644
index bc94c97..0000000
--- a/build/static/js/main.f41420c5.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["components/molecules/PageLoader/PageLoader.jsx","components/molecules/PageLoader/index.js","router.jsx","pages/Login/reducer.js","pages/Login/actions.js","pages/PLP/reducer.js","pages/PLP/actions.js","pages/Cart/reducer.js","pages/Cart/actions.js","reducer.js","main.js"],"names":["PageLoader","props","className","defaultProps","propTypes","LoadableLogin","Loadable","loader","loading","LoadablePLP","LoadableCart","Router","store","this","exact","path","component","React","Component","PropTypes","object","initialState","Immutable","Map","reducer","state","action","type","mergeDeep","payload","combineReducers","data","pages","login","loginReducer","plp","plpReducer","cart","cartReducer","composeEnhancers","window","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","serialize","immutable","compose","createStore","applyMiddleware","thunk","ReactDOM","render","document","getElementById"],"mappings":"8RAEMA,EAAa,SAAAC,GACjB,OACI,yBAAKC,UAAU,gBACb,yBAAKA,UAAU,cACb,yBAAKA,UAAU,KAAf,KACA,yBAAKA,UAAU,KAAf,KACA,yBAAKA,UAAU,KAAf,KACA,yBAAKA,UAAU,KAAf,KACA,yBAAKA,UAAU,KAAf,KACA,yBAAKA,UAAU,KAAf,KACA,yBAAKA,UAAU,KAAf,QAMVF,EAAWG,aAAe,GAI1BH,EAAWI,UAAY,GAIRJ,ICxBAA,EDwBAA,E,spCEnBR,IAAMK,EAAgBC,IAAS,CAClCC,OAAQ,kBAAM,8BACdC,QAASR,IAGAS,EAAcH,IAAS,CAChCC,OAAQ,kBAAM,8BACdC,QAASR,IAGAU,EAAeJ,IAAS,CACjCC,OAAQ,kBAAM,8BACdC,QAASR,IAGPW,E,4fAEQ,IACCC,EAASC,KAAKZ,MAAdW,MACP,OACI,kBAAC,IAAD,CAAUA,MAAOA,GACb,kBAAC,IAAD,KACI,kBAAC,IAAD,CAAOE,OAAK,EAACC,KAAK,IAAIC,UAAWX,IACjC,kBAAC,IAAD,CAAOU,KAAK,SAASC,UAAWX,IAChC,kBAAC,IAAD,CAAOU,KAAK,YAAYC,UAAWP,IACnC,kBAAC,IAAD,CAAOM,KAAK,aAAaC,UAAWN,W,8BAVnCO,IAAMC,WAiB3BP,EAAOP,UAAY,CACfQ,MAAOO,IAAUC,QAGNT,QCvCTU,EAAeC,IAAUC,MAahBC,EAXC,WAAmC,IAAlCC,EAAiC,uDAAzBJ,EAAcK,EAAW,uCAC9C,OAAQA,EAAOC,MACX,ICRiC,4BDSjC,ICP0B,6BDQ1B,ICT0B,6BDUtB,OAAOF,EAAMG,UAAUF,EAAOG,SAClC,QACI,OAAOJ,IETbJ,EAAeC,IAAUC,MAYhBC,EAVC,WAAmC,IAAlCC,EAAiC,uDAAzBJ,EAAcK,EAAW,uCAC9C,OAAQA,EAAOC,MACX,ICP0B,6BDQ1B,ICT0B,6BDUtB,OAAOF,EAAMG,UAAUF,EAAOG,SAClC,QACI,OAAOJ,IERbJ,EAAeC,IAAUC,MAYhBC,EAVC,WAAmC,IAAlCC,EAAiC,uDAAzBJ,EAAcK,EAAW,uCAC9C,OAAQA,EAAOC,MACX,ICP0B,6BDQ1B,ICT0B,6BDUtB,OAAOF,EAAMG,UAAUF,EAAOG,SAClC,QACI,OAAOJ,IENJK,cAAgB,CAC3BC,KAAMD,YAAgB,CAClBE,MAAOF,YAAgB,CACnBG,MAAOC,EACPC,IAAKC,EACLC,KAAMC,Q,oPCAlB,IAAMC,EACc,YAAlB,qBAAOC,OAAP,cAAOA,UACPA,OAAOC,qCACLD,OAAOC,qCAAqC,CACxCC,UAAW,CACPC,UAAWrB,OAEdsB,IACHhC,EAAQiC,YAAYrB,EAASe,EAAiBO,YAAgBC,OAEpEC,IAASC,OAAO,kBAAC,EAAD,CAAQrC,MAAOA,IAAWsC,SAASC,eAAe,W","file":"static/js/main.f41420c5.chunk.js","sourcesContent":["import React from 'react';\n\nconst PageLoader = props => {\n return (\n \n
\n
l
\n
o
\n
a
\n
d
\n
i
\n
n
\n
g
\n
\n
\n )\n};\n\nPageLoader.defaultProps = {\n\n};\n\nPageLoader.propTypes = {\n\n};\n\nexport default PageLoader;","import PageLoader from './PageLoader.jsx';\n\nexport default PageLoader;","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {Provider} from 'react-redux'\nimport {BrowserRouter, Route} from 'react-router-dom';\nimport PageLoader from './components/molecules/PageLoader'\nimport Loadable from 'react-loadable'\n\nexport const LoadableLogin = Loadable({\n loader: () => import('./pages/Login'),\n loading: PageLoader\n})\n\nexport const LoadablePLP = Loadable({\n loader: () => import('./pages/PLP'),\n loading: PageLoader\n})\n\nexport const LoadableCart = Loadable({\n loader: () => import('./pages/Cart'),\n loading: PageLoader\n})\n\nclass Router extends React.Component {\n\n render() {\n const {store} = this.props\n return (\n \n \n \n \n \n \n \n \n )\n }\n}\n\nRouter.propTypes = {\n store: PropTypes.object\n}\n\nexport default Router\n","import Immutable from 'immutable'\n\nimport {LOGIN_DATA_STATE_RECEIVED, UPDATE_FORM_ERRORS, UPDATE_FORM_VALUES} from './actions'\n\nconst initialState = Immutable.Map()\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case LOGIN_DATA_STATE_RECEIVED:\n case UPDATE_FORM_ERRORS:\n case UPDATE_FORM_VALUES:\n return state.mergeDeep(action.payload)\n default:\n return state\n }\n}\n\nexport default reducer\n","export const LOGIN_DATA_STATE_RECEIVED = 'LOGIN_DATA_STATE_RECEIVED'\nexport const UPDATE_FORM_VALUES = 'UPDATE_BILLING_FORM_VALUES'\nexport const UPDATE_FORM_ERRORS = 'UPDATE_BILLING_FORM_ERRORS'\n\nexport const updateLoginDataState = (payload) => ({type: LOGIN_DATA_STATE_RECEIVED, payload})\n\nexport const initializeLogin = () => (dispatch) => {\n // return Promise.all([\n // dispatch(initializeApp())\n // ])\n // .then(() => ({statusCode: 200}))\n // .catch((err) => ({statusCode: err.statusCode || 500}))\n}\n\nexport const updateFormValues = (formValues) => {\n return {\n type: UPDATE_FORM_VALUES,\n payload: formValues\n }\n}\n\nexport const updateFormErrors = (formErrors) => {\n return {\n type: UPDATE_FORM_ERRORS,\n payload: formErrors\n }\n}\n ","import Immutable from 'immutable'\n\nimport {UPDATE_FORM_ERRORS, UPDATE_FORM_VALUES} from './actions'\n\nconst initialState = Immutable.Map()\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case UPDATE_FORM_ERRORS:\n case UPDATE_FORM_VALUES:\n return state.mergeDeep(action.payload)\n default:\n return state\n }\n}\n\nexport default reducer\n","export const UPDATE_FORM_VALUES = 'UPDATE_BILLING_FORM_VALUES'\nexport const UPDATE_FORM_ERRORS = 'UPDATE_BILLING_FORM_ERRORS'\n\nexport const initializeLogin = () => (dispatch) => {\n // return Promise.all([\n // dispatch(initializeApp())\n // ])\n // .then(() => ({statusCode: 200}))\n // .catch((err) => ({statusCode: err.statusCode || 500}))\n}\n\nexport const updateFormValues = (formValues) => {\n return {\n type: UPDATE_FORM_VALUES,\n payload: formValues\n }\n}\n\nexport const updateFormErrors = (formErrors) => {\n return {\n type: UPDATE_FORM_ERRORS,\n payload: formErrors\n }\n}\n ","import Immutable from 'immutable'\n\nimport {UPDATE_FORM_ERRORS, UPDATE_FORM_VALUES} from './actions'\n\nconst initialState = Immutable.Map()\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case UPDATE_FORM_ERRORS:\n case UPDATE_FORM_VALUES:\n return state.mergeDeep(action.payload)\n default:\n return state\n }\n}\n\nexport default reducer\n","export const UPDATE_FORM_VALUES = 'UPDATE_BILLING_FORM_VALUES'\nexport const UPDATE_FORM_ERRORS = 'UPDATE_BILLING_FORM_ERRORS'\n\nexport const initializeLogin = () => (dispatch) => {\n // return Promise.all([\n // dispatch(initializeApp())\n // ])\n // .then(() => ({statusCode: 200}))\n // .catch((err) => ({statusCode: err.statusCode || 500}))\n}\n\nexport const updateFormValues = (formValues) => {\n return {\n type: UPDATE_FORM_VALUES,\n payload: formValues\n }\n}\n\nexport const updateFormErrors = (formErrors) => {\n return {\n type: UPDATE_FORM_ERRORS,\n payload: formErrors\n }\n}\n ","import {combineReducers} from 'redux'\n\nimport loginReducer from './pages/Login/reducer'\nimport plpReducer from './pages/PLP/reducer'\nimport cartReducer from './pages/Cart/reducer'\n\nexport default combineReducers({\n data: combineReducers({\n pages: combineReducers({\n login: loginReducer,\n plp: plpReducer,\n cart: cartReducer\n })\n })\n})\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport thunk from 'redux-thunk'\nimport Immutable from 'immutable'\nimport {createStore, applyMiddleware, compose} from 'redux'\n// import * as serviceWorker from '../serviceWorker';\nimport Router from './router';\nimport reducer from './reducer'\nimport 'bootstrap/dist/css/bootstrap.min.css'\nimport './index.scss'\n\nconst composeEnhancers =\n typeof window === 'object' &&\n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? \n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({\n serialize: { // prettier-ignore\n immutable: Immutable\n }\n }) : compose;\nconst store = createStore(reducer, composeEnhancers(applyMiddleware(thunk)))\n\nReactDOM.render(, document.getElementById('root'));\n\n// serviceWorker.unregister();\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/public/404.html b/public/404.html
new file mode 100644
index 0000000..5e1bcb1
--- /dev/null
+++ b/public/404.html
@@ -0,0 +1,41 @@
+
+
+
+
+ Single Page Apps for GitHub Pages
+
+
+
+
+
\ No newline at end of file
diff --git a/public/index.html b/public/index.html
index aa069f2..026e866 100644
--- a/public/index.html
+++ b/public/index.html
@@ -25,6 +25,26 @@
Learn how to configure a non-root public URL by running `npm run build`.
-->
React App
+
+
+
diff --git a/src/app/router.jsx b/src/app/router.jsx
index d839fd6..2657606 100644
--- a/src/app/router.jsx
+++ b/src/app/router.jsx
@@ -26,7 +26,7 @@ class Router extends React.Component {
const {store} = this.props
return (
-
+