d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/main.a6622ca1.chunk.js b/static/js/main.a6622ca1.chunk.js
new file mode 100644
index 0000000..49dcb54
--- /dev/null
+++ b/static/js/main.a6622ca1.chunk.js
@@ -0,0 +1,2 @@
+(this["webpackJsonpblog-app"]=this["webpackJsonpblog-app"]||[]).push([[0],{21:function(e,t,n){},22:function(e,t,n){},24:function(e,t,n){},25:function(e,t,n){},34:function(e,t,n){},35:function(e,t,n){},36:function(e,t,n){},37:function(e,t,n){},38:function(e,t,n){"use strict";n.r(t);var s=n(1),a=n.n(s),r=n(15),i=n.n(r),o=n(2),c=(n(21),n(10)),d=[{id:1,title:"7 CSS tools you should be using ",category:"development",subCategory:["frontend","ui/ux","design"],description:"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.",authorName:"John Doe",authorAvatar:"/assets/images/author.jpg",createdAt:"June 03, 2021",cover:"/assets/images/designer-1.jpg"},{id:2,title:"Milan Places That Highlight The City",category:"travel",subCategory:["vacation","holidays","sight seeing"],description:"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.",authorName:"John Doe",authorAvatar:"/assets/images/author.jpg",createdAt:"June 03, 2021",cover:"/assets/images/f67396fc3cfce63a28e07ebb35d974ac.jpg"},{id:3,title:"Online Shopping \u2013 An Alternative to Shopping in the Mall",category:"shopping",subCategory:["e-commerce store","clothing","shopping store"],description:"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.",authorName:"John Doe",authorAvatar:"/assets/images/author.jpg",createdAt:"June 03, 2021",cover:"/assets/images/fQwuyKJ9qxjSbr6REcgtmW-1200-80.jpg"},{id:4,title:"ADVENTURE IN YOU",category:"adventure",subCategory:["adrenaline","stay-fit","lifestyle"],description:"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.",authorName:"John Doe",authorAvatar:"/assets/images/author.jpg",createdAt:"June 03, 2021",cover:"/assets/images/graphic-design-trends.png"},{id:5,title:"Loaded BBQ Baked Potatoes",category:"cooking",subCategory:["bbq","food","lifestyle"],description:"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.",authorName:"John Doe",authorAvatar:"/assets/images/author.jpg",createdAt:"June 03, 2021",cover:"/assets/images/make-it-personal.jpg"},{id:6,title:"Beyond the Beach",category:"travel",subCategory:["beaches","sea","holidays"],description:"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.",authorName:"John Doe",authorAvatar:"/assets/images/author.jpg",createdAt:"June 03, 2021",cover:"/assets/images/Purple-Combination-colors-graphic-design-predictions-1024x576-1024x576.jpg"},{id:7,title:"Art & Perception",category:"art",subCategory:["skill","design","passion"],description:"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.",authorName:"John Doe",authorAvatar:"/assets/images/author.jpg",createdAt:"June 03, 2021",cover:"/assets/images/Synthwave-Postmodern.jpg"}],m=(n(22),n(0)),u=function(e){var t=e.label;return Object(m.jsx)("p",{className:"chip",children:t})},p=(n(24),function(){return Object(m.jsx)("div",{className:"emptyList-wrap",children:Object(m.jsx)("img",{src:"/assets/images/13525-empty.gif",alt:"empty"})})}),l=(n(25),n(7)),h=function(){var e=Object(o.g)().id,t=Object(s.useState)(null),n=Object(c.a)(t,2),a=n[0],r=n[1];return Object(s.useEffect)((function(){var t=d.find((function(t){return t.id===parseInt(e)}));t&&r(t)}),[]),Object(m.jsxs)(m.Fragment,{children:[Object(m.jsxs)(l.b,{className:"blog-goBack",to:"/",children:[Object(m.jsx)("span",{children:" \u2190"})," ",Object(m.jsx)("span",{children:"Go Back"})]}),a?Object(m.jsxs)("div",{className:"blog-wrap",children:[Object(m.jsxs)("header",{children:[Object(m.jsxs)("p",{className:"blog-date",children:["Published ",a.createdAt]}),Object(m.jsx)("h1",{children:a.title}),Object(m.jsx)("div",{className:"blog-subCategory",children:a.subCategory.map((function(e,t){return Object(m.jsx)("div",{children:Object(m.jsx)(u,{label:e})},t)}))})]}),Object(m.jsx)("img",{src:a.cover,alt:"cover"}),Object(m.jsx)("p",{className:"blog-desc",children:a.description})]}):Object(m.jsx)(p,{})]})},y=(n(34),function(e){var t=e.blog,n=t.description,s=t.title,a=t.createdAt,r=t.authorName,i=t.authorAvatar,o=t.cover,c=t.category,d=t.id;return Object(m.jsxs)("div",{className:"blogItem-wrap",children:[Object(m.jsx)("img",{className:"blogItem-cover",src:o,alt:"cover"}),Object(m.jsx)(u,{label:c}),Object(m.jsx)("h3",{children:s}),Object(m.jsx)("p",{className:"blogItem-desc",children:n}),Object(m.jsxs)("footer",{children:[Object(m.jsxs)("div",{className:"blogItem-author",children:[Object(m.jsx)("img",{src:i,alt:"avatar"}),Object(m.jsxs)("div",{children:[Object(m.jsx)("h6",{children:r}),Object(m.jsx)("p",{children:a})]})]}),Object(m.jsx)(l.b,{className:"blogItem-link",to:"/blog/".concat(d),children:"\u279d"})]})]})}),b=(n(35),function(e){var t=e.blogs;return Object(m.jsx)("div",{className:"blogList-wrap",children:t.map((function(e){return Object(m.jsx)(y,{blog:e})}))})}),g=(n(36),function(){return Object(m.jsxs)("header",{className:"home-header",children:[Object(m.jsx)("h2",{children:"New craze"}),Object(m.jsxs)("h1",{children:[Object(m.jsx)("span",{children:"\u201c"})," Blog ",Object(m.jsx)("span",{children:"\u201d"})]}),Object(m.jsxs)("p",{children:["awesome place to make oneself ",Object(m.jsx)("br",{})," productive and entertained through daily updates."]})]})}),j=(n(37),function(e){var t=e.formSubmit,n=e.value,s=e.handleSearchKey,a=e.clearSearch;return Object(m.jsx)("div",{className:"searchBar-wrap",children:Object(m.jsxs)("form",{onSubmit:t,children:[Object(m.jsx)("input",{type:"text",placeholder:"Search By Category",value:n,onChange:s}),n&&Object(m.jsx)("span",{onClick:a,children:"X"}),Object(m.jsx)("button",{children:"Go"})]})})}),x=function(){var e=Object(s.useState)(d),t=Object(c.a)(e,2),n=t[0],a=t[1],r=Object(s.useState)(""),i=Object(c.a)(r,2),o=i[0],u=i[1],l=function(){var e=d.filter((function(e){return e.category.toLowerCase().includes(o.toLowerCase().trim())}));a(e)};return Object(m.jsxs)("div",{children:[Object(m.jsx)(g,{}),Object(m.jsx)(j,{value:o,clearSearch:function(){a(d),u("")},formSubmit:function(e){e.preventDefault(),l()},handleSearchKey:function(e){return u(e.target.value)}}),n.length?Object(m.jsx)(b,{blogs:n}):Object(m.jsx)(p,{})]})},f=function(){return Object(m.jsx)("div",{className:"container",children:Object(m.jsxs)(o.d,{children:[Object(m.jsx)(o.b,{path:"/",exact:!0,component:x}),Object(m.jsx)(o.b,{path:"/blog/:id",component:h}),Object(m.jsx)(o.a,{to:"/"})]})})};i.a.render(Object(m.jsx)(a.a.StrictMode,{children:Object(m.jsx)(l.a,{children:Object(m.jsx)(f,{})})}),document.getElementById("root"))}},[[38,1,2]]]);
+//# sourceMappingURL=main.a6622ca1.chunk.js.map
\ No newline at end of file
diff --git a/static/js/main.a6622ca1.chunk.js.map b/static/js/main.a6622ca1.chunk.js.map
new file mode 100644
index 0000000..6b2acd0
--- /dev/null
+++ b/static/js/main.a6622ca1.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["config/data.js","components/common/Chip/index.jsx","components/common/EmptyList/index.jsx","pages/Blog/index.jsx","components/Home/BlogList/BlogItem/index.jsx","components/Home/BlogList/index.jsx","components/Home/Header/index.jsx","components/Home/SearchBar/index.jsx","pages/Home/index.jsx","App.jsx","index.js"],"names":["blogList","id","title","category","subCategory","description","authorName","authorAvatar","createdAt","cover","Chip","label","className","EmptyList","src","alt","Blog","useParams","useState","blog","setBlog","useEffect","find","parseInt","to","map","i","BlogItem","BlogList","blogs","Header","SearchBar","formSubmit","value","handleSearchKey","clearSearch","onSubmit","type","placeholder","onChange","onClick","Home","setBlogs","searchKey","setSearchKey","handleSearchResults","filteredBlogs","filter","toLowerCase","includes","trim","e","preventDefault","target","length","App","path","exact","component","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.a6622ca1.chunk.js","sourcesContent":["export const blogList = [\n {\n id: 1,\n title: '7 CSS tools you should be using ',\n category: 'development',\n subCategory: ['frontend', 'ui/ux', 'design'],\n description:\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\n authorName: 'John Doe',\n authorAvatar: '/assets/images/author.jpg',\n createdAt: 'June 03, 2021',\n cover: '/assets/images/designer-1.jpg',\n },\n {\n id: 2,\n title: 'Milan Places That Highlight The City',\n category: 'travel',\n subCategory: ['vacation', 'holidays', 'sight seeing'],\n description:\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\n authorName: 'John Doe',\n authorAvatar: '/assets/images/author.jpg',\n createdAt: 'June 03, 2021',\n cover: '/assets/images/f67396fc3cfce63a28e07ebb35d974ac.jpg',\n },\n {\n id: 3,\n title: 'Online Shopping – An Alternative to Shopping in the Mall',\n category: 'shopping',\n subCategory: ['e-commerce store', 'clothing', 'shopping store'],\n description:\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\n authorName: 'John Doe',\n authorAvatar: '/assets/images/author.jpg',\n createdAt: 'June 03, 2021',\n cover: '/assets/images/fQwuyKJ9qxjSbr6REcgtmW-1200-80.jpg',\n },\n {\n id: 4,\n title: 'ADVENTURE IN YOU',\n category: 'adventure',\n subCategory: ['adrenaline', 'stay-fit', 'lifestyle'],\n description:\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\n authorName: 'John Doe',\n authorAvatar: '/assets/images/author.jpg',\n createdAt: 'June 03, 2021',\n cover: '/assets/images/graphic-design-trends.png',\n },\n {\n id: 5,\n title: 'Loaded BBQ Baked Potatoes',\n category: 'cooking',\n subCategory: ['bbq', 'food', 'lifestyle'],\n description:\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\n authorName: 'John Doe',\n authorAvatar: '/assets/images/author.jpg',\n createdAt: 'June 03, 2021',\n cover: '/assets/images/make-it-personal.jpg',\n },\n {\n id: 6,\n title: 'Beyond the Beach',\n category: 'travel',\n subCategory: ['beaches', 'sea', 'holidays'],\n description:\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\n authorName: 'John Doe',\n authorAvatar: '/assets/images/author.jpg',\n createdAt: 'June 03, 2021',\n cover:\n '/assets/images/Purple-Combination-colors-graphic-design-predictions-1024x576-1024x576.jpg',\n },\n {\n id: 7,\n title: 'Art & Perception',\n category: 'art',\n subCategory: ['skill', 'design', 'passion'],\n description:\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\n authorName: 'John Doe',\n authorAvatar: '/assets/images/author.jpg',\n createdAt: 'June 03, 2021',\n cover: '/assets/images/Synthwave-Postmodern.jpg',\n },\n];\n","import React from 'react';\nimport './styles.css';\n\nconst Chip = ({ label }) => {label}
;\n\nexport default Chip;\n","import React from 'react';\nimport './styles.css';\n\nconst EmptyList = () => (\n \n
\n
\n);\n\nexport default EmptyList;\n","import React, { useEffect, useState } from 'react';\nimport { useParams } from 'react-router';\nimport { blogList } from '../../config/data';\nimport Chip from '../../components/common/Chip';\nimport EmptyList from '../../components/common/EmptyList';\nimport './styles.css';\nimport { Link } from 'react-router-dom';\n\nconst Blog = () => {\n const { id } = useParams();\n const [blog, setBlog] = useState(null);\n\n useEffect(() => {\n let blog = blogList.find((blog) => blog.id === parseInt(id));\n if (blog) {\n setBlog(blog);\n }\n }, []);\n\n return (\n <>\n \n ← Go Back\n \n {blog ? (\n \n
\n
\n
{blog.description}
\n
\n ) : (\n \n )}\n >\n );\n};\n\nexport default Blog;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport Chip from '../../../common/Chip';\nimport './styles.css';\n\nconst BlogItem = ({\n blog: {\n description,\n title,\n createdAt,\n authorName,\n authorAvatar,\n cover,\n category,\n id,\n },\n}) => {\n return (\n \n
\n
\n
{title}
\n
{description}
\n
\n
\n );\n};\n\nexport default BlogItem;\n","import React from 'react';\nimport BlogItem from './BlogItem';\nimport './styles.css';\n\nconst BlogList = ({ blogs }) => {\n return (\n \n {blogs.map((blog) => (\n \n ))}\n
\n );\n};\n\nexport default BlogList;\n","import React from 'react';\nimport './styles.css';\n\nconst Header = () => (\n \n);\n\nexport default Header;\n","import React from 'react';\nimport './styles.css';\n\nconst SearchBar = ({ formSubmit, value, handleSearchKey, clearSearch }) => (\n \n \n
\n);\n\nexport default SearchBar;\n","import React, { useState } from 'react';\nimport EmptyList from '../../components/common/EmptyList';\nimport BlogList from '../../components/Home/BlogList';\nimport Header from '../../components/Home/Header';\nimport SearchBar from '../../components/Home/SearchBar';\nimport { blogList } from '../../config/data';\n\nconst Home = () => {\n const [blogs, setBlogs] = useState(blogList);\n const [searchKey, setSearchKey] = useState('');\n\n // Search submit\n const handleSearchBar = (e) => {\n e.preventDefault();\n handleSearchResults();\n };\n\n // Search for blog by category\n const handleSearchResults = () => {\n const allBlogs = blogList;\n const filteredBlogs = allBlogs.filter((blog) =>\n blog.category.toLowerCase().includes(searchKey.toLowerCase().trim())\n );\n setBlogs(filteredBlogs);\n };\n\n // Clear search and show all blogs\n const handleClearSearch = () => {\n setBlogs(blogList);\n setSearchKey('');\n };\n\n return (\n \n {/* Page Header */}\n \n\n {/* Search Bar */}\n setSearchKey(e.target.value)}\n />\n\n {/* Blog List & Empty View */}\n {!blogs.length ? : }\n
\n );\n};\n\nexport default Home;\n","import React from 'react';\nimport { Redirect, Route, Switch } from 'react-router-dom';\nimport './App.css';\nimport Blog from './pages/Blog';\nimport Home from './pages/Home';\n\nconst App = () => {\n return (\n \n \n \n \n \n \n
\n );\n};\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\nimport { BrowserRouter } from 'react-router-dom';\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root')\n);\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/static/js/runtime-main.e1fe0279.js b/static/js/runtime-main.e1fe0279.js
new file mode 100644
index 0000000..373ea19
--- /dev/null
+++ b/static/js/runtime-main.e1fe0279.js
@@ -0,0 +1,2 @@
+!function(e){function t(t){for(var n,l,p=t[0],a=t[1],i=t[2],c=0,s=[];c