text: (window.webpackJsonp=window.webpackJsonp||[]).push([[6],{142:function(e,t,a){"use strict";a.r(t);var i=a(6),n=a.n(i),o=a(0),s=a.n(o),c=a(165),r=a(146),l=a(148),d=a(166),u=a(168),m=a.n(u),h=(a(169),a(170),function(){return s.a.createElement(d.a,{defaultView:"dayGridMonth",header:{left:"prev",center:"title",right:"next"},plugins:[m.a],contentHeight:350,showNonCurrentDates:!0})}),p=a(31),w=a.n(p),b=(a(171),function(e){function t(){var t;t=e.call(this)||this;var a=new Date;return t.state={day:a.getDay(),month:a.getMonth(),date:a.getDate(),year:a.getFullYear(),time:a.toLocaleTimeString()},t.countingSecond=t.countingSecond.bind(w()(t)),t}n()(t,e);var a=t.prototype;return a.countingSecond=function(){var e=new Date;this.setState({day:e.getDay(),month:e.getMonth(),date:e.getDate(),year:e.getFullYear(),time:e.toLocaleTimeString()})},a.componentWillMount=function(){setInterval(this.countingSecond,1e3)},a.render=function(){return s.a.createElement("div",{id:"time-date-card",className:"card"},s.a.createElement("div",{className:"card-contnet"},s.a.createElement("div",{className:"content"},s.a.createElement("p",{id:"time-style",className:"title has-text-white"}," ",this.state.time),s.a.createElement("p",{id:"day-month-style",className:"subtitle has-text-white"},["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][this.state.day],","," ",["January","February","March","April","May","June","July","August","September","November","December"][this.state.month]," ",this.state.date))))},t}(o.Component)),f=a(172),g=(a(173),a(174)),j=function(e){function t(){return e.apply(this,arguments)||this}n()(t,e);var a=t.prototype;return a.videoReady=function(e){e.target.pauseVideo()},a.render=function(){var e=this.props.videoId;return s.a.createElement(g.a,{videoId:e,opts:{playerVars:{autoplay:0}},onReady:this.videoReady})},t}(s.a.Component),y=(a(188),a(189));var v=function(){return s.a.createElement(r.b,{query:"530387871",render:function(e){return s.a.createElement("div",{id:"weather-main-card",className:"card has-text-white "},s.a.createElement("header",{className:"card-header is-shadowless"},s.a.createElement("p",{className:"card-header-title is-uppercase is-centered is-size-4 has-text-white"},e.openWeather.city.name)),s.a.createElement("div",{className:"card-content"},s.a.createElement("div",{className:"content"},s.a.createElement("span",{className:"icon is-large"},s.a.createElement("i",{className:"wi-owm-"+e.openWeather.list[0].weather[0].icon})),s.a.createElement("div",{className:"is-size-1"},Math.round(e.openWeather.list[0].main.temp),"°"),s.a.createElement("div",{className:"is-uppercase"},e.openWeather.list[0].weather[0].description),s.a.createElement("div",null,(t=e.openWeather.list[0].wind.deg,["↑ N","↗ NE","→ E","↘ SE","↓ S","↙ SW","← W","↖ NW"][Math.round(t/45)%8])," at"," ",Math.round(e.openWeather.list[0].wind.speed)," mph"))),s.a.createElement("footer",{className:"card-footer"},s.a.createElement("p",{className:"card-footer-item"},s.a.createElement("img",{src:"../images/logo/openweather-white-logo-RGB.png",alt:"logo",style:{width:"100px"}}))));var t},data:y})},C=(a(190),function(){return s.a.createElement(r.b,{query:"3214634025",render:function(e){return s.a.createElement("div",{className:"hero is-large"},s.a.createElement("div",{id:"dashboard-card",className:"card"},s.a.createElement("div",{className:"columns"},s.a.createElement("div",{className:"column is-narrow is-narrow-mobile is-hidden-mobile"},s.a.createElement("aside",{id:"left-menu",className:"menu"},s.a.createElement("ul",{className:"menu-list"},s.a.createElement(r.a,{to:"/news"},s.a.createElement("li",null,s.a.createElement("span",{className:"icon is-small"},s.a.createElement(l.a,{icon:"newspaper",size:"lg",color:"white"})))),s.a.createElement(r.a,{to:"/podcasts"},s.a.createElement("li",null,s.a.createElement("span",{className:"icon is-small"},s.a.createElement(l.a,{icon:"podcast",size:"lg",color:"white"})))),s.a.createElement(r.a,{to:"/youtube"},s.a.createElement("li",null,s.a.createElement("span",{className:"icon is-small"},s.a.createElement(l.a,{icon:"video",size:"lg",color:"white"})))),s.a.createElement(r.a,{to:"/weather"},s.a.createElement("li",null,s.a.createElement("span",{className:"icon is-small"},s.a.createElement(l.a,{icon:"cloud-sun-rain",size:"lg",color:"white"})))),s.a.createElement(r.a,{to:"/calendar"},s.a.createElement("li",null,s.a.createElement("span",{className:"icon is-small"},s.a.createElement(l.a,{icon:"calendar-alt",size:"lg",color:"white"}))))))),s.a.createElement("div",{id:"information-side",className:"column is-9"},s.a.createElement("div",{className:"columns"},s.a.createElement("div",{className:"column"},s.a.createElement("div",{className:"card",id:"wakaTimeCard"},"WakaTime"))),s.a.createElement("div",{className:"columns"},s.a.createElement("div",{className:"column"},s.a.createElement("div",{className:"columns"},s.a.createElement("div",{className:"column"},s.a.createElement(f.c,{naturalSlideWidth:100,naturalSlideHeight:50,totalSlides:150},s.a.createElement(f.e,null,e.allYoutubeVideo.edges.map(function(e){return s.a.createElement(f.d,{index:0},s.a.createElement(j,{videoId:e.node.videoId}))})),s.a.createElement(f.a,null,"Last Video"),s.a.createElement(f.b,null,"Next Video")))),s.a.createElement("div",{className:"columns"},s.a.createElement("div",{className:"column"},s.a.createElement("div",{className:"card",id:"api2Card"},"API2")))),s.a.createElement("div",{id:"calendar-column",className:"column"},s.a.createElement("div",{id:"calendar-card"},s.a.createElement("div",{className:"card",id:"calendarCard"},s.a.createElement(h,null)))))),s.a.createElement("div",{id:"farRight",className:"column"},s.a.createElement("div",{className:"columns"},s.a.createElement("div",{className:"column"},s.a.createElement("div",{className:"card",id:"dateCard"},s.a.createElement(b,null)))),s.a.createElement("div",{className:"columns"},s.a.createElement("div",{className:"column"})),s.a.createElement("div",{className:"columns"},s.a.createElement("div",{className:"column"},s.a.createElement("div",{className:"card",id:"weatherCard"},s.a.createElement(v,null)))),s.a.createElement("div",{className:"columns"},s.a.createElement("div",{className:"column"},s.a.createElement("div",{id:"data-card",className:"card"},"Data Here"))))),s.a.createElement("div",{className:"columns"},s.a.createElement("div",{className:"column is-12"},s.a.createElement("div",{id:"news-ticker-card",className:"card"},s.a.createElement("div",{className:"card",id:"tickerCard"},"Ticker"))))))},data:c})}),P=(a(191),function(e){function t(){return e.apply(this,arguments)||this}return n()(t,e),t.prototype.render=function(){return s.a.createElement("div",{id:"dashboard-bg"},s.a.createElement(C,null))},t}(o.Component));t.default=P},145:function(e,t,a){var i;e.exports=(i=a(147))&&i.default||i},146:function(e,t,a){"use strict";a.d(t,"b",function(){return d});var i=a(0),n=a.n(i),o=a(4),s=a.n(o),c=a(29),r=a.n(c);a.d(t,"a",function(){return r.a});a(145);var l=n.a.createContext({}),d=function(e){return n.a.createElement(l.Consumer,null,function(t){return e.data||t[e.query]&&t[e.query].data?(e.render||e.children)(e.data?e.data.data:t[e.query].data):n.a.createElement("div",null,"Loading (StaticQuery)")})};d.propTypes={data:s.a.object,query:s.a.string.isRequired,render:s.a.func,children:s.a.func}},147:function(e,t,a){"use strict";a.r(t);a(30);var i=a(0),n=a.n(i),o=a(4),s=a.n(o),c=a(52),r=a(2),l=function(e){var t=e.location,a=r.default.getResourcesForPathnameSync(t.pathname);return a?n.a.createElement(c.a,Object.assign({location:t,pageResources:a},a.json)):null};l.propTypes={location:s.a.shape({pathname:s.a.string.isRequired}).isRequired},t.default=l},165:function(e){e.exports={data:{allYoutubeVideo:{edges:[{node:{id:"fbde0746-28ef-5fa8-a531-5128f0fe70fa",title:"HTML & CSS Crash Course Tutorial #7 - Chrome Dev Tools",description:"Hey gang, in this HTML & CSS tutorial for beginners I'll go through what Google Chrome dev tools are - and how they can help us when creating websites. We'll look at inspecting elements, getting CSS selectors, editing attributes & CSS rules on the fly and also importing project folders into Chrome for live coding.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ VS Code download - https://code.visualstudio.com/\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT",videoId:"25R1Jl5P7Mw",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/25R1Jl5P7Mw/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/4587ce2bb71d20dfe8d6b5374787749c.jpg absPath of file"}}},{node:{id:"7017acf7-4642-5c1f-aff6-72ff278de992",title:"HTML & CSS Crash Course Tutorial #6 - HTML 5 Semantics",description:"Hey gang, in this HTML & CSS tutorial for beginners we'll take a look at some of the newer HTML semantic tags, like section, article, header, nav and aside.\n\nHTML 5 Semantic tags, more information - https://www.w3schools.com/html/html5_semantic_elements.asp \n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ VS Code download - https://code.visualstudio.com/\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT",videoId:"kGW8Al_cga4",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/kGW8Al_cga4/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/ed32b1dfe3bd45fad02ecfda6b8dbd9f.jpg absPath of file"}}},{node:{id:"40ae792c-90a4-5592-a0ea-3b05f01b9c24",title:"HTML & CSS Crash Course Tutorial #5 - CSS Classes & Selectors",description:"More about the cascade - https://developer.mozilla.org/en-US/docs/Web/CSS/Cascade\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ VS Code download - https://code.visualstudio.com/\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT",videoId:"FHZn6706e3Q",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/FHZn6706e3Q/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/3ed0f7f4afe8a4c837694c83a8ea052c.jpg absPath of file"}}},{node:{id:"8fcd1742-ccd0-5485-8760-a1aa5372984d",title:"HTML & CSS Crash Course Tutorial #4 - CSS Basics",description:"Hey gang, in this CSS tutorial for beginners we'll have a look at the basic syntax of CSS and how we can use it to make our web pages look better.\n\nWeb safe fonts - https://www.w3schools.com/cssref/css_websafe_fonts.asp\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ VS Code download - https://code.visualstudio.com/\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT",videoId:"D3iEE29ZXRM",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/D3iEE29ZXRM/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/6a5eacbddcd2e24584a993217b85c244.jpg absPath of file"}}},{node:{id:"74413c68-b81e-55fe-8615-bc5ccbb45ea6",title:"HTML & CSS Crash Course Tutorial #3 - HTML Forms",description:"Hey gang, in this HTML tutorial I'll explain how to create forms in HTML, (using some newer HTML 5 input fields too). We'll look at email fields, text fields, password fields and more.\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ VS Code download - https://code.visualstudio.com/\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT",videoId:"YwbIeMlxZAU",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/YwbIeMlxZAU/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/74872ebb61dac7255a0bb99600467d43.jpg absPath of file"}}},{node:{id:"a78d79a7-7af6-52ab-8bfc-38279f9dc5c9",title:"HTML & CSS Crash Course Tutorial #2 - HTML Basics",description:"Hey gang, in this HTML tutorial I'll show you the basics of HTML syntaxt and how to construct HTML tags & documents.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ VS Code download - https://code.visualstudio.com/\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT",videoId:"mbeT8mpmtHA",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/mbeT8mpmtHA/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/9782117e262f8f268d60cba00b8bb07b.jpg absPath of file"}}},{node:{id:"0be53f78-e021-5b97-b597-a2456be27b65",title:"HTML & CSS Crash Course Tutorial #1 - Introduction",description:"Hey gang & welcome to your very first HTML & CSS tutorial. Throughout this crash course series I'll take you from total beginner to create great-looking sites with HTML & CSS. In this video, we'll cover what HTML & CSS are, as well as setting up our dev environment. \n\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"hu-q2zYwEYs",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/hu-q2zYwEYs/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/8397f87a1209920fa981d8c3ff48c7eb.jpg absPath of file"}}},{node:{id:"5c794948-dadb-5c6a-94a0-3e66d03b57f8",title:"React Context & Hooks Tutorial #21 - Adding Local Storage",description:"Hey gang, in this final React Hooks & Context tutorial, we'll add local storage into the mix so that we can actually save books on reload.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"SOnMln3W0U8",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/SOnMln3W0U8/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/771c9d5f6a584947cd7268e041eba550.jpg absPath of file"}}},{node:{id:"acc530f8-bb5b-5ed0-8b68-d23c8fb0237d",title:"React Context & Hooks Tutorial #20 - Adding a Reducer",description:"----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"zIOWnK5RcOU",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/zIOWnK5RcOU/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/840f7a44b68fe45d81c71e937ef20e7b.jpg absPath of file"}}},{node:{id:"32249c72-cc28-5580-9322-7339b399a08f",title:"React Context & Hooks Tutorial #19 - Reducers, Actions & State",description:"Hey gang, in this React hooks tutorial I'll explain what a reducer is and how we can use the useReducer hook to implement a reducer into our context. We'll also take a look at actions too.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"uXWycyeTeCs",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/uXWycyeTeCs/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/be7e215507c676e0b81ec4168be5c993.jpg absPath of file"}}},{node:{id:"ea9d45fb-2c1c-56a5-b0eb-4bd494eb1be2",title:"React Context & Hooks Tutorial #18 - Reading List App (part 3)",description:"Hey gang, in this React hooks & Context tutorial we'll put together the last parts of our project. Next, we'll look at the useReducer hook.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"1I-vfkOVAXU",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/1I-vfkOVAXU/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/57c37628f6d7f1fefab9d95e5bfce4d7.jpg absPath of file"}}},{node:{id:"5921b175-6f3b-527c-8260-be23b31329ec",title:"React Context & Hooks Tutorial #17 - Reading List App (part 2)",description:"Hey gang, in this video we'll carry on with the reading list app using Hooks & Context.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"TiPMmgp9vcc",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/TiPMmgp9vcc/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/ae77fec5433087e93c986910f3b1db8b.jpg absPath of file"}}},{node:{id:"b08ed02c-d75b-5fc5-95c9-bdc34bce6914",title:"React Context & Hooks Tutorial #16 - Reading List Project (part 1)",description:"Hey gang, in this React hooks & Context tutorial we'll start to put everything together we've learnt to create a full reading list app (we'll also introduce reducers and local storage in later videos).\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"v1s_rbZbqQI",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/v1s_rbZbqQI/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/f62d4dbef62a88df9d3418016d5090ce.jpg absPath of file"}}},{node:{id:"5682c28b-5d78-5400-bef3-f81900618a25",title:"React Context & Hooks Tutorial #15 - Creating Context with Functional Components",description:"---------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"GS6aVjHxcgM",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/GS6aVjHxcgM/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/6a1264baab7c2f7e4be9266bfc02dd47.jpg absPath of file"}}},{node:{id:"d81ce8a4-5811-59ea-83ad-6f67c1e100ba",title:"React Context & Hooks Tutorial #14 - Multiple Contexts using Hooks",description:"----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"54i4-03cMnE",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/54i4-03cMnE/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/284914638edf3eb9b66fb7ecd97cbac5.jpg absPath of file"}}},{node:{id:"106441e2-1a44-56e5-8977-1e014006fd77",title:"React Context & Hooks Tutorial #13 - Hooks with Context",description:"Hey gang, in this video I'll explain how hooks can work together with context. To do this we'll be using the useContext hook.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"7LIGIN6_R_s",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/7LIGIN6_R_s/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/34d481fcd93a8b5669451de3835ef86f.jpg absPath of file"}}},{node:{id:"d0d26a00-6088-5d3a-a384-a47f7ef8730b",title:"React Context & Hooks Tutorial #12 - useEffect Hook",description:"Hey gang, in this React Hooks tutorial we'll take a first look at the useEffect hook.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"rDVe6pmeAjo",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/rDVe6pmeAjo/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/6033220ea3119e55aca978fddf8671fd.jpg absPath of file"}}},{node:{id:"d1f7076a-8b92-5f38-bf7d-4bbd0e0950f1",title:"React Context & Hooks Tutorial #11 - useState with Forms",description:"Hey gang, in this React hooks tutorial we'll look at the useState hook in conjunction with text input form fields to track what a user types into them.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"R7T5GQLxRD4",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/R7T5GQLxRD4/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/ef0a2f068550c590ae05e653cc60af3f.jpg absPath of file"}}},{node:{id:"8fbd33a6-3622-5516-a6aa-39686ae58b37",title:"React Context & Hooks Tutorial #10 - useState Hook",description:"Hey gang, in this React hooks tutorial we'll take a look at our first hook - useState. The useState hook allows us to use state in a functional component.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"i3n1bkrkUww",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/i3n1bkrkUww/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/ed43f7aabb81e99aa9317aa8dfa7b689.jpg absPath of file"}}},{node:{id:"330c5c83-67a6-5f82-ab3a-277d73ae6641",title:"React Context & Hooks Tutorial #9 - Intro to Hooks",description:"Hey gang, in this React hooks tutorial I'll give you a quick introduction to the world of Hooks!\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"JgYRBCRHfHE",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/JgYRBCRHfHE/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/0607667274261bfdf35a6cec02b89e64.jpg absPath of file"}}},{node:{id:"0c3bbde1-d296-5f33-acb9-c9aaeaee6f47",title:"React Context & Hooks Tutorial #8 - Consuming Multiple Contexts",description:"Hey gang, in this React context tutorial I'll show you how to consume multiple contexts in one single component.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"hLFl4Io0mww",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/hLFl4Io0mww/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/924477f02399b349e3e8980cb06cad5c.jpg absPath of file"}}},{node:{id:"78de105a-3195-5110-9f59-424f6e4b94f4",title:"React Context & Hooks Tutorial #7 - Creating Multiple Contexts",description:"Hey gang, in this tutorial I'll show you how to create multiple different contexts for different, un-releated data.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"Yps_QrUvluQ",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/Yps_QrUvluQ/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/7971029687d9caf3c2dc2a1d0f7d20f6.jpg absPath of file"}}},{node:{id:"1383d445-07be-5ea0-8de6-b970ac8e6e92",title:"React Context & Hooks Tutorial #6 - Updating Context Data",description:"Hey gang, in this React Context tutorial I'll explain how to update context data from our components.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"bJXAHHpyVes",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/bJXAHHpyVes/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/525699853d23b572f17f8cc9fc7667f1.jpg absPath of file"}}},{node:{id:"3e89651e-a03b-5c0a-9379-8c6ac0d9a55c",title:"React Context & Hooks Tutorial #5 - Accessing Context (part 2)",description:"Hey gang, in this React Context tutorial we'll see another way to access context using a context consumer. This way can be used in both functional and class components.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"1bsvh_0HRwA",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/1bsvh_0HRwA/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/89d8bcf7f327ea5a43ceb64911cf4013.jpg absPath of file"}}},{node:{id:"db5e04f8-39dc-5eed-a727-75f9adb31f31",title:"React Context & Hooks Tutorial #4 - Accessing Context (part 1)",description:"Hey gang, in this React context tutorial we'll take a look at our to access our context data using the static property contextType. This is one of a few ways we can access context.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"WkBXRQfpifc",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/WkBXRQfpifc/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/bec29b24440db0eb4c44eb86d3758e19.jpg absPath of file"}}},{node:{id:"6771e8cb-b2d5-511a-a48e-3eb16c79880a",title:"React Context & Hooks Tutorial #3 - Adding a Context & Provider",description:"Hey gang, in this React Context API tutorial we'll take a look at how to create a new context and provide it to our components.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"CGRpfIUURE0",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/CGRpfIUURE0/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/3e71dfc26c21f4e84c54db081bc4c437.jpg absPath of file"}}},{node:{id:"31501d9a-6780-52cf-aefc-3bfc2bd0e083",title:"React Context & Hooks Tutorial #2 - What is the Context API?",description:"Hey gang, in this React Context tutorial I'll explain what the Context API actually is and why we use it for central state management.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"XkBB3pPY3t8",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/XkBB3pPY3t8/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/2ebe6d33a86a6ea49d7f27381f6c7be6.jpg absPath of file"}}},{node:{id:"0f556824-079e-5649-b971-6cb88387a0cd",title:"React Context & Hooks Tutorial #1 - Introduction",description:"Hey gang, in this React Context & Hooks series we'll take a deep dive into how these two new(ish) React features can be used to build Stateful React applications without the use of Redux.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/react-context-hooks\n\n+ Complete React Course - https://www.youtube.com/playlist?list=PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG\n\n+ React Context Docs - https://reactjs.org/docs/context.html\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"6RhOzQciVwI",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/6RhOzQciVwI/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/4effbc9c3343197990f33e8664433ff0.jpg absPath of file"}}},{node:{id:"971ac27c-19df-55fd-af36-4655789d9eaf",title:"PWA Tutorial for Beginners #31 - Next Steps",description:"----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"7y7xlVo4Iio",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/7y7xlVo4Iio/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/d34872349c86878b7a39683846dd54b3.jpg absPath of file"}}},{node:{id:"fe6d2b1d-9602-5831-a8a3-f6ebd77eb067",title:"PWA Tutorial for Beginners #30 - Testing thew App",description:"----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"sI7EdkYiU20",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/sI7EdkYiU20/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/28d6aa000a4cc0cb1577c747d43a6ba1.jpg absPath of file"}}},{node:{id:"98b73647-521d-5ca0-81c6-2fba9266c85b",title:"PWA Tutorial for Beginners #29 - Deploying to Firebase",description:"Hey gang, in this PWA tutorial we'll finally deploy our app to Firebase hosting.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"e-aAAbY0miY",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/e-aAAbY0miY/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/9af9c7356546720a4a7d8f0d6ebca99a.jpg absPath of file"}}},{node:{id:"a7bb038d-73ef-5433-87c9-73d15b29f0d6",title:"PWA Tutorial for Beginners #28 - Deleting Recipes",description:"Hey gang, in this PWA tutorial we'll take a look at how to delete data offline, and then have it sync with our real-time database when a connection is re-established. \n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"zdb8_a0DXTg",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/zdb8_a0DXTg/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/fb079e1b2d0f1579f4543c82ede2e293.jpg absPath of file"}}},{node:{id:"77c896b7-101d-5c0e-a268-8d5e362893b4",title:"PWA Tutorial for Beginners #27 - Adding Recipes",description:"Hey gang, in this PWA tutorial we'll see how to add data while offline.\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"BHCk5TSNUkI",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/BHCk5TSNUkI/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/4c05d11485033889c6af22a51bb96ca1.jpg absPath of file"}}},{node:{id:"493650f2-3551-5789-af74-981396e8409c",title:"PWA Tutorial for Beginners #26 - Offline Data",description:"Hey gang, in this PWA tutorial we'll see how to use Firestore to enable offline data for our application.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"ciu62KLlwGQ",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/ciu62KLlwGQ/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/97b86c1c3f51c13b7ae5e8b288f2a41a.jpg absPath of file"}}},{node:{id:"df036d94-ca41-506e-8d6b-8cc10ad9858c",title:"PWA Tutorial for Beginners #25 - Updating the UI",description:"----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"ezNvFzc0f30",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/ezNvFzc0f30/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/519487d33eda2d9174e844ac94ff8a8c.jpg absPath of file"}}},{node:{id:"c8d1f807-3362-53c8-b62d-63ac441b0d51",title:"PWA Tutorial for Beginners #24 - Realtime Data",description:"Hey gang, in this PWA we'll set up a real-time listener to our Firestore database.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"JP3L0jIXvrY",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/JP3L0jIXvrY/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/8543c32263812d3f1406ea5de4442b92.jpg absPath of file"}}},{node:{id:"c44469c1-46dd-5fd9-a193-9a0fa8d3cbc9",title:"PWA Tutorial for Beginners #23 - Firestore Database",description:"Hey gang, in this PWA tutorial we'll bring a real-time database called Firestore (by Firebase) into the mix.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"ZfL61cOUImw",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/ZfL61cOUImw/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/fdd5ec67d0ec9f0ad16b5e3744b09aa5.jpg absPath of file"}}},{node:{id:"a6845ac1-0f2b-5483-8faa-af3129e7d0c5",title:"PWA Tutorial for Beginners #22 - Site Audit Refresh",description:"----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"1tkK-OVno84",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/1tkK-OVno84/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/3c6addc6b8467774eebee267b6850519.jpg absPath of file"}}},{node:{id:"d2f5cd53-d904-5e0c-9863-6164a7d935e9",title:"PWA Tutorial for Beginners #21 - Limiting Cache Size",description:"Hey gang, in this PWA tutorial we'll talk about how to limit our cache size so that it doesn't ever get too big.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"CHBoXdVdPi0",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/CHBoXdVdPi0/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/59261c3e30153e3cf3f9d42e92644735.jpg absPath of file"}}},{node:{id:"0654de3c-55a8-5a55-929e-68e2b0915f9a",title:"PWA Tutorial for Beginners #20 - Conditional Fallbacks",description:"Hey gang, in this PWA tutorial we'll take a look at how we can conditionally serve fallback resources to users when offline.\n\n----------------------------------------\nOffline PWA Strategies - https://developers.google.com/web/fundamentals/instant-and-offline/offline-cookbook/\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"K9NXQZxKMko",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/K9NXQZxKMko/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/f1aa3ae1e921318baab119177f06581e.jpg absPath of file"}}},{node:{id:"c73a0c1a-0f9b-5c63-9897-9bc721b3aca5",title:"PWA Tutorial for Beginners #19 - Offline Fallback Page",description:"Hey gang, in this PWA tutorial we'll explore how to create a fallback HTML page for our offline experience.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"KLQELCvb-B0",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/KLQELCvb-B0/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/63bc1503c0ab38400681c641bbb604f3.jpg absPath of file"}}},{node:{id:"a447b6c6-038d-5b4c-bb9a-864f63321639",title:"PWA Tutorial for Beginners #18 - Dynamic Caching",description:"Hey gang, in this PWA tutorial I'll show you how to dynamically cache assets as the user browses around the website. This will give them a much better experience when offline.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"ChXgikdQJR8",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/ChXgikdQJR8/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/fd8efe3aa44e67ab97a0fe7eda7a8260.jpg absPath of file"}}},{node:{id:"8d6b92fc-9b38-5186-82c3-0e32d123c823",title:"PWA Tutorial for Beginners #17 - Cache Versioning",description:"Hey gang, in this PWA tutorial I'll explain how we can start to version our cache, so that our cached assets are kept up to date and fresh.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"g9LfyCZjeKI",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/g9LfyCZjeKI/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/4e8f42fb452d005ae187b326f5e9a27e.jpg absPath of file"}}},{node:{id:"7559868b-aac7-5264-b833-1a8a7ca4c7ac",title:"PWA Tutorial for Beginners #16 - Getting Cached Assets",description:"Hey all, in this PWA tutorial we'll see how we can get previously cached assets, so that we can enable offline behaviour.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"0mAw9Na6hyM",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/0mAw9Na6hyM/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/5776aa8abea36be0e3208d19b8bd7521.jpg absPath of file"}}},{node:{id:"6d6d3e47-633c-58a1-bbea-81dc465c11da",title:"PWA Tutorial for Beginners #15 - Pre-Caching Assets",description:"Hey gang, in this PWA tutorial we'll start to pre-cache some of our assets for offline mode. We can do this inside the 'install' event handler of the service worker.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"kT3qSf7jG5c",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/kT3qSf7jG5c/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/5c54a4856b5e062f0bc35084334232c3.jpg absPath of file"}}},{node:{id:"1fce0cc7-2762-5c34-9861-aac6fa6961fc",title:"PWA Tutorial for Beginners #14 - Offline Mode Explained",description:"Hey gang, in this PWA tutorial for beginners we'll look at how the basics of offline mode works, using a service worker to pre-cache assets.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"Vz1D28zshaI",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/Vz1D28zshaI/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/dad86cde9d84d0336106b01a1ae096bd.jpg absPath of file"}}},{node:{id:"b9ae25ee-98b4-53eb-9d16-221760c773d0",title:"PWA Tutorial for Beginners #13 - The Install Banner",description:"Hey gang, in this PWA tutorial we'll see the automatically shown install banner in Chrome.\n\nGuide to enable developer options on Android - https://developer.android.com/studio/debug/dev-options\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"9whdWJ4q7jE",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/9whdWJ4q7jE/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/098b537f0efd6c0500db8d9b8770fc1f.jpg absPath of file"}}},{node:{id:"82b1750f-5523-50bb-838c-323e4233d27b",title:"PWA Tutorial for Beginners #12 - Fetch Events",description:"Hey gang, in this PWA tutorial we'll see how to listen to fetch requests made by the app. \n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"C0vh57N7vM4",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/C0vh57N7vM4/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/2293f3c8f32c57d44d32b5c85c4a041d.jpg absPath of file"}}},{node:{id:"3c3d8c39-1b2d-502b-8030-45d964b8ae79",title:"PWA Tutorial for Beginners #11 - Lighthouse Audit",description:"Hey all, in this PWA tutorial we'll take a side step and perform a little audit on our app so far, using the Lighthouse plugin built in to Chrome.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"egmwY9n6qWY",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/egmwY9n6qWY/maxresdefault.jpg",width:1280,height:720},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/3debfa5465c5a843b4999f59404068e2.jpg absPath of file"}}},{node:{id:"35242450-1597-51cf-b21a-3104d0e4525d",title:"PWA Tutorial for Beginners #10 - The 'Activate' Event",description:"Hey gang, in this PWA tutorial we'll take a look at the activate event, which fires when the service workers is activated in the browser.\n\n----------------------------------------\n\n🐱‍💻 🐱‍💻 Course Links:\n\n+ Course files - https://github.com/iamshaunjp/pwa-tutorial\n\n+ Modern JavaScript Tutorial - https://www.udemy.com/modern-javascript-from-novice-to-ninja/?couponCode=NINJAYT\n\n🐱‍💻 🐱‍💻 Other Related Courses:\n\n+ Firebase Firestore Playlist - https://www.youtube.com/watch?v=4d-gIPGzmK4&list=PL4cUxeGkcC9itfjle0ji1xOZ2cjRGY_WB\n\nFirebase Authentication Tutorial - https://www.youtube.com/watch?v=aN1LnNq4z54&list=PL4cUxeGkcC9jUPIes_B8vRjn1_GaplOPQ",videoId:"AmWj52zw9R8",channelTitle:"The Net Ninja",thumbnail:{url:"https://i.ytimg.com/vi/AmWj52zw9R8/hqdefault.jpg",width:480,height:360},localThumbnail:{id:"/Users/brandy/Documents/Projects/reactProjects/newPortfolio/.cache/gatsby-source-filesystem/8b2ba3af9e4691a50d090c6baf2e2c25.jpg absPath of file"}}}]}}}},189:function(e){e.exports={data:{openWeather:{city:{name:"Frisco"},list:[{weather:[{description:"scattered clouds",main:"Clouds",id:802,icon:"03n"}],main:{temp:25.51,pressure:1016.62,humidity:58,temp_min:25.51,temp_max:27.54,sea_level:1016.62,grnd_level:996.39},wind:{deg:23.423,speed:5.79},dt_txt:"2019-07-23 03:00:00"},{weather:[{description:"scattered clouds",main:"Clouds",id:802,icon:"03n"}],main:{temp:23.66,pressure:1018.41,humidity:57,temp_min:23.66,temp_max:25.18,sea_level:1018.41,grnd_level:997.97},wind:{deg:22.018,speed:6.09},dt_txt:"2019-07-23 06:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01n"}],main:{temp:22.67,pressure:1018.61,humidity:62,temp_min:22.67,temp_max:23.68,sea_level:1018.61,grnd_level:998.3},wind:{deg:20.327,speed:5.29},dt_txt:"2019-07-23 09:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:21.39,pressure:1019.41,humidity:70,temp_min:21.39,temp_max:21.89,sea_level:1019.41,grnd_level:998.92},wind:{deg:19.106,speed:4.94},dt_txt:"2019-07-23 12:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:25.27,pressure:1020.46,humidity:60,temp_min:25.27,temp_max:25.27,sea_level:1020.46,grnd_level:1000.2},wind:{deg:30.276,speed:5.04},dt_txt:"2019-07-23 15:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:29.7,pressure:1019.79,humidity:39,temp_min:29.7,temp_max:29.7,sea_level:1019.79,grnd_level:999.65},wind:{deg:26.516,speed:5.8},dt_txt:"2019-07-23 18:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:30.95,pressure:1017.44,humidity:34,temp_min:30.95,temp_max:30.95,sea_level:1017.44,grnd_level:997.35},wind:{deg:20.213,speed:5.89},dt_txt:"2019-07-23 21:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01n"}],main:{temp:29.85,pressure:1017.04,humidity:39,temp_min:29.85,temp_max:29.85,sea_level:1017.04,grnd_level:996.77},wind:{deg:25.747,speed:4.98},dt_txt:"2019-07-24 00:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01n"}],main:{temp:26.57,pressure:1018.34,humidity:52,temp_min:26.57,temp_max:26.57,sea_level:1018.34,grnd_level:998.04},wind:{deg:29.569,speed:3.84},dt_txt:"2019-07-24 03:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01n"}],main:{temp:24.12,pressure:1019.21,humidity:58,temp_min:24.12,temp_max:24.12,sea_level:1019.21,grnd_level:998.77},wind:{deg:33.592,speed:5.36},dt_txt:"2019-07-24 06:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01n"}],main:{temp:22.49,pressure:1018.91,humidity:62,temp_min:22.49,temp_max:22.49,sea_level:1018.91,grnd_level:998.44},wind:{deg:56.237,speed:4.12},dt_txt:"2019-07-24 09:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:22.15,pressure:1020.48,humidity:63,temp_min:22.15,temp_max:22.15,sea_level:1020.48,grnd_level:999.82},wind:{deg:77.187,speed:2.27},dt_txt:"2019-07-24 12:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:26.14,pressure:1021.18,humidity:41,temp_min:26.14,temp_max:26.14,sea_level:1021.18,grnd_level:1000.64},wind:{deg:107.42,speed:3.18},dt_txt:"2019-07-24 15:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:29.48,pressure:1020.07,humidity:32,temp_min:29.48,temp_max:29.48,sea_level:1020.07,grnd_level:999.75},wind:{deg:77.842,speed:2.84},dt_txt:"2019-07-24 18:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:31.4,pressure:1016.9,humidity:27,temp_min:31.4,temp_max:31.4,sea_level:1016.9,grnd_level:996.78},wind:{deg:45.94,speed:3.49},dt_txt:"2019-07-24 21:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01n"}],main:{temp:30.01,pressure:1016.12,humidity:32,temp_min:30.01,temp_max:30.01,sea_level:1016.12,grnd_level:996.12},wind:{deg:57.206,speed:4.65},dt_txt:"2019-07-25 00:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01n"}],main:{temp:26.61,pressure:1017.15,humidity:43,temp_min:26.61,temp_max:26.61,sea_level:1017.15,grnd_level:996.99},wind:{deg:97.633,speed:4.4},dt_txt:"2019-07-25 03:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01n"}],main:{temp:25.75,pressure:1018,humidity:41,temp_min:25.75,temp_max:25.75,sea_level:1018,grnd_level:997.24},wind:{deg:134.778,speed:3.46},dt_txt:"2019-07-25 06:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01n"}],main:{temp:24.65,pressure:1017.61,humidity:43,temp_min:24.65,temp_max:24.65,sea_level:1017.61,grnd_level:996.89},wind:{deg:126.566,speed:3.21},dt_txt:"2019-07-25 09:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:23.05,pressure:1018.29,humidity:53,temp_min:23.05,temp_max:23.05,sea_level:1018.29,grnd_level:997.63},wind:{deg:120.196,speed:3.29},dt_txt:"2019-07-25 12:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:26.79,pressure:1019.01,humidity:42,temp_min:26.79,temp_max:26.79,sea_level:1019.01,grnd_level:998.41},wind:{deg:137.904,speed:2.79},dt_txt:"2019-07-25 15:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:30.53,pressure:1018.42,humidity:28,temp_min:30.53,temp_max:30.53,sea_level:1018.42,grnd_level:997.91},wind:{deg:104.91,speed:3.26},dt_txt:"2019-07-25 18:00:00"},{weather:[{description:"broken clouds",main:"Clouds",id:803,icon:"04d"}],main:{temp:32.26,pressure:1015.84,humidity:23,temp_min:32.26,temp_max:32.26,sea_level:1015.84,grnd_level:995.42},wind:{deg:83.063,speed:3.66},dt_txt:"2019-07-25 21:00:00"},{weather:[{description:"broken clouds",main:"Clouds",id:803,icon:"04n"}],main:{temp:30.85,pressure:1015.39,humidity:30,temp_min:30.85,temp_max:30.85,sea_level:1015.39,grnd_level:994.96},wind:{deg:95.954,speed:5.05},dt_txt:"2019-07-26 00:00:00"},{weather:[{description:"scattered clouds",main:"Clouds",id:802,icon:"03n"}],main:{temp:27.5,pressure:1016.84,humidity:39,temp_min:27.5,temp_max:27.5,sea_level:1016.84,grnd_level:996.4},wind:{deg:112.364,speed:4.33},dt_txt:"2019-07-26 03:00:00"},{weather:[{description:"few clouds",main:"Clouds",id:801,icon:"02n"}],main:{temp:26.33,pressure:1017.1,humidity:46,temp_min:26.33,temp_max:26.33,sea_level:1017.1,grnd_level:996.64},wind:{deg:114.634,speed:4.09},dt_txt:"2019-07-26 06:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01n"}],main:{temp:25.05,pressure:1017.17,humidity:51,temp_min:25.05,temp_max:25.05,sea_level:1017.17,grnd_level:996.33},wind:{deg:114.741,speed:2.97},dt_txt:"2019-07-26 09:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:23.73,pressure:1018.42,humidity:55,temp_min:23.73,temp_max:23.73,sea_level:1018.42,grnd_level:997.76},wind:{deg:103.693,speed:1.38},dt_txt:"2019-07-26 12:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:28.05,pressure:1019.64,humidity:41,temp_min:28.05,temp_max:28.05,sea_level:1019.64,grnd_level:998.98},wind:{deg:116.16,speed:2.66},dt_txt:"2019-07-26 15:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:32.05,pressure:1018.79,humidity:28,temp_min:32.05,temp_max:32.05,sea_level:1018.79,grnd_level:998.24},wind:{deg:146.055,speed:3.3},dt_txt:"2019-07-26 18:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:34.07,pressure:1016.43,humidity:24,temp_min:34.07,temp_max:34.07,sea_level:1016.43,grnd_level:996.02},wind:{deg:144.416,speed:3.73},dt_txt:"2019-07-26 21:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01n"}],main:{temp:32.96,pressure:1016.13,humidity:28,temp_min:32.96,temp_max:32.96,sea_level:1016.13,grnd_level:995.6},wind:{deg:127.357,speed:4.17},dt_txt:"2019-07-27 00:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01n"}],main:{temp:28.96,pressure:1018.05,humidity:43,temp_min:28.96,temp_max:28.96,sea_level:1018.05,grnd_level:997.5},wind:{deg:123.348,speed:5.11},dt_txt:"2019-07-27 03:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01n"}],main:{temp:27.65,pressure:1018.38,humidity:45,temp_min:27.65,temp_max:27.65,sea_level:1018.38,grnd_level:997.82},wind:{deg:128.939,speed:4.65},dt_txt:"2019-07-27 06:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01n"}],main:{temp:26.44,pressure:1018.26,humidity:48,temp_min:26.44,temp_max:26.44,sea_level:1018.26,grnd_level:997.48},wind:{deg:138.764,speed:3.91},dt_txt:"2019-07-27 09:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:25.25,pressure:1019.65,humidity:53,temp_min:25.25,temp_max:25.25,sea_level:1019.65,grnd_level:998.82},wind:{deg:188.852,speed:3.24},dt_txt:"2019-07-27 12:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:29.15,pressure:1020.38,humidity:49,temp_min:29.15,temp_max:29.15,sea_level:1020.38,grnd_level:999.94},wind:{deg:199.992,speed:3.4},dt_txt:"2019-07-27 15:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:33.25,pressure:1019.21,humidity:32,temp_min:33.25,temp_max:33.25,sea_level:1019.21,grnd_level:999.03},wind:{deg:152.213,speed:4.4},dt_txt:"2019-07-27 18:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01d"}],main:{temp:34.97,pressure:1017.25,humidity:28,temp_min:34.97,temp_max:34.97,sea_level:1017.25,grnd_level:997},wind:{deg:142.901,speed:4.79},dt_txt:"2019-07-27 21:00:00"},{weather:[{description:"clear sky",main:"Clear",id:800,icon:"01n"}],main:{temp:33.25,pressure:1016.52,humidity:35,temp_min:33.25,temp_max:33.25,sea_level:1016.52,grnd_level:996.08},wind:{deg:127.118,speed:5.91},dt_txt:"2019-07-28 00:00:00"}]}}}}}]);
  //# sourceMappingURL=component---src-pages-dashboard-js-1112a0cab8579484a72c.js.map