(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{165:function(e,t,a){e.exports=a(419)},170:function(e,t,a){},347:function(e,t,a){},349:function(e,t,a){},388:function(e,t,a){},390:function(e,t,a){},393:function(e,t,a){},395:function(e,t,a){},397:function(e,t,a){},399:function(e,t,a){},401:function(e,t,a){},419:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),i=a(56),s=a.n(i),o=(a(170),a(9)),c=a.n(o),l=a(14),u=a(23),h=a(24),m=a(26),d=a(25),p=a(27),f=a(12),g=a.n(f),b=a(45),v=a(158),E=a(429),w=a(427),y=a(428),k=(a(347),a(157)),S=a(46),O=(a(349),a(355)),x=a(421),C=a(422),L=a(50),j=function(e){function t(e){var a;return Object(u.a)(this,t),(a=Object(m.a)(this,Object(d.a)(t).call(this,e))).state={isLoading:!0,notes:[]},a}return Object(p.a)(t,e),Object(h.a)(t,[{key:"componentDidMount",value:function(){var e=Object(l.a)(c.a.mark(function e(){var t;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.props.isAuthenticated){e.next=2;break}return e.abrupt("return");case 2:return e.prev=2,e.next=5,this.notes();case 5:t=e.sent,this.setState({notes:t}),e.next=12;break;case 9:e.prev=9,e.t0=e.catch(2),alert(e.t0);case 12:this.setState({isLoading:!1});case 13:case"end":return e.stop()}},e,this,[[2,9]])}));return function(){return e.apply(this,arguments)}}()},{key:"notes",value:function(){return f.API.get("notes","/notes")}},{key:"renderNotesList",value:function(e){return[{}].concat(e).map(function(e,t){return 0!==t?r.a.createElement(L.LinkContainer,{key:e.noteId,to:"/notes/".concat(e.noteId)},r.a.createElement(O.a,{header:e.content.trim().split("\n")[0]},"Created: "+new Date(e.createdAt).toLocaleString())):r.a.createElement(L.LinkContainer,{key:"new",to:"/notes/new"},r.a.createElement(O.a,null,r.a.createElement("h4",null,r.a.createElement("b",null,"\uff0b")," Create a new note")))})}},{key:"renderLander",value:function(){return r.a.createElement("div",{className:"lander"},r.a.createElement("h1",null,"Axe Forge"),r.a.createElement("div",null,r.a.createElement(b.a,{to:"/login",className:"btn btn-info btn-lg"},"Login"),r.a.createElement(b.a,{to:"/signup",className:"btn btn-success btn-lg"},"Signup")))}},{key:"renderNotes",value:function(){return r.a.createElement("div",{className:"notes"},r.a.createElement(x.a,null,"Your Notes"),r.a.createElement(C.a,null,!this.state.isLoading&&this.renderNotesList(this.state.notes)))}},{key:"render",value:function(){return r.a.createElement("div",{className:"Home"},this.props.isAuthenticated?this.renderNotes():this.renderLander())}}]),t}(n.Component),A=(a(388),function(){return r.a.createElement("div",{className:"NotFound"},r.a.createElement("h3",null,"Sorry, page not found!"))}),I=a(34),N=a(424),T=a(425),P=a(430),D=a(39),F=a(423),_=a(392),R=(a(390),function(e){var t=e.isLoading,a=e.text,n=e.loadingText,i=e.className,s=void 0===i?"":i,o=e.disabled,c=void 0!==o&&o,l=Object(D.a)(e,["isLoading","text","loadingText","className","disabled"]);return r.a.createElement(F.a,Object.assign({className:"LoaderButton ".concat(s),disabled:c||t},l),t&&r.a.createElement(_.a,{glyph:"refresh",className:"spinning"}),t?n:a)}),z=(a(393),function(e){function t(e){var a;return Object(u.a)(this,t),(a=Object(m.a)(this,Object(d.a)(t).call(this,e))).handleChange=function(e){a.setState(Object(I.a)({},e.target.id,e.target.value))},a.handleSubmit=function(){var e=Object(l.a)(c.a.mark(function e(t){return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t.preventDefault(),a.setState({isLoading:!0}),e.prev=2,e.next=5,f.Auth.signIn(a.state.email,a.state.password);case 5:a.props.userHasAuthenticated(!0),e.next=12;break;case 8:e.prev=8,e.t0=e.catch(2),alert(e.t0.message),a.setState({isLoading:!1});case 12:case"end":return e.stop()}},e,this,[[2,8]])}));return function(t){return e.apply(this,arguments)}}(),a.state={isLoading:!1,email:"",password:""},a}return Object(p.a)(t,e),Object(h.a)(t,[{key:"validateForm",value:function(){return this.state.email.length>0&&this.state.password.length>0}},{key:"render",value:function(){return r.a.createElement("div",{className:"Login"},r.a.createElement("form",{onSubmit:this.handleSubmit},r.a.createElement(N.a,{controlId:"email",bsSize:"large"},r.a.createElement(T.a,null,"Email"),r.a.createElement(P.a,{autoFocus:!0,type:"email",value:this.state.email,onChange:this.handleChange})),r.a.createElement(N.a,{controlId:"password",bsSize:"large"},r.a.createElement(T.a,null,"Password"),r.a.createElement(P.a,{value:this.state.password,onChange:this.handleChange,type:"password"})),r.a.createElement(R,{block:!0,bsSize:"large",disabled:!this.validateForm(),type:"submit",isLoading:this.state.isLoading,text:"Login",loadingText:"Logging in\u2026"})))}}]),t}(n.Component)),M=a(426),U=(a(395),function(e){function t(e){var a;return Object(u.a)(this,t),(a=Object(m.a)(this,Object(d.a)(t).call(this,e))).handleChange=function(e){a.setState(Object(I.a)({},e.target.id,e.target.value))},a.handleSubmit=function(){var e=Object(l.a)(c.a.mark(function e(t){var n;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t.preventDefault(),a.setState({isLoading:!0}),e.prev=2,e.next=5,f.Auth.signUp({username:a.state.email,password:a.state.password});case 5:n=e.sent,a.setState({newUser:n}),e.next=12;break;case 9:e.prev=9,e.t0=e.catch(2),alert(e.t0.message);case 12:a.setState({isLoading:!1});case 13:case"end":return e.stop()}},e,this,[[2,9]])}));return function(t){return e.apply(this,arguments)}}(),a.handleConfirmationSubmit=function(){var e=Object(l.a)(c.a.mark(function e(t){return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t.preventDefault(),a.setState({isLoading:!0}),e.prev=2,e.next=5,f.Auth.confirmSignUp(a.state.email,a.state.confirmationCode);case 5:return e.next=7,f.Auth.signIn(a.state.email,a.state.password);case 7:a.props.userHasAuthenticated(!0),a.props.history.push("/"),e.next=15;break;case 11:e.prev=11,e.t0=e.catch(2),alert(e.t0.message),a.setState({isLoading:!1});case 15:case"end":return e.stop()}},e,this,[[2,11]])}));return function(t){return e.apply(this,arguments)}}(),a.state={isLoading:!1,email:"",password:"",confirmPassword:"",confirmationCode:"",newUser:null},a}return Object(p.a)(t,e),Object(h.a)(t,[{key:"validateForm",value:function(){return this.state.email.length>0&&this.state.password.length>0&&this.state.password===this.state.confirmPassword}},{key:"validateConfirmationForm",value:function(){return this.state.confirmationCode.length>0}},{key:"renderConfirmationForm",value:function(){return r.a.createElement("form",{onSubmit:this.handleConfirmationSubmit},r.a.createElement(N.a,{controlId:"confirmationCode",bsSize:"large"},r.a.createElement(T.a,null,"Confirmation Code"),r.a.createElement(P.a,{autoFocus:!0,type:"tel",value:this.state.confirmationCode,onChange:this.handleChange}),r.a.createElement(M.a,null,"Please check your email for the code.")),r.a.createElement(R,{block:!0,bsSize:"large",disabled:!this.validateConfirmationForm(),type:"submit",isLoading:this.state.isLoading,text:"Verify",loadingText:"Verifying\u2026"}))}},{key:"renderForm",value:function(){return r.a.createElement("form",{onSubmit:this.handleSubmit},r.a.createElement(N.a,{controlId:"email",bsSize:"large"},r.a.createElement(T.a,null,"Email"),r.a.createElement(P.a,{autoFocus:!0,type:"email",value:this.state.email,onChange:this.handleChange})),r.a.createElement(N.a,{controlId:"password",bsSize:"large"},r.a.createElement(T.a,null,"Password"),r.a.createElement(P.a,{value:this.state.password,onChange:this.handleChange,type:"password"})),r.a.createElement(N.a,{controlId:"confirmPassword",bsSize:"large"},r.a.createElement(T.a,null,"Confirm Password"),r.a.createElement(P.a,{value:this.state.confirmPassword,onChange:this.handleChange,type:"password"})),r.a.createElement(R,{block:!0,bsSize:"large",disabled:!this.validateForm(),type:"submit",isLoading:this.state.isLoading,text:"Signup",loadingText:"Signing up\u2026"}))}},{key:"render",value:function(){return r.a.createElement("div",{className:"Signup"},null===this.state.newUser?this.renderForm():this.renderConfirmationForm())}}]),t}(n.Component)),H={MAX_ATTACHMENT_SIZE:5e6,s3:{REGION:"us-west-2",BUCKET:"notes-learningapp-uploads"},apiGateway:{REGION:"us-west-2",URL:"https://fegh65gffi.execute-api.us-west-2.amazonaws.com/prod"},cognito:{REGION:"us-west-2",USER_POOL_ID:"us-west-2_GgYKjShBV",APP_CLIENT_ID:"6bto3ah2qtpj29rikdkdln4c1",IDENTITY_POOL_ID:"us-west-2:516b8c5b-1821-44e1-bf91-112a95356ee3"}};a(397);function G(e){return B.apply(this,arguments)}function B(){return(B=Object(l.a)(c.a.mark(function e(t){var a,n;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return a="".concat(Date.now(),"-").concat(t.name),e.next=3,f.Storage.vault.put(a,t,{contentType:t.type});case 3:return n=e.sent,e.abrupt("return",n.key);case 5:case"end":return e.stop()}},e,this)}))).apply(this,arguments)}var X=function(e){function t(e){var a;return Object(u.a)(this,t),(a=Object(m.a)(this,Object(d.a)(t).call(this,e))).handleChange=function(e){a.setState(Object(I.a)({},e.target.id,e.target.value))},a.handleFileChange=function(e){a.file=e.target.files[0]},a.handleSubmit=function(){var e=Object(l.a)(c.a.mark(function e(t){var n;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t.preventDefault(),!(a.file&&a.file.size>H.MAX_ATTACHMENT_SIZE)){e.next=4;break}return alert("Please pick a file smaller than ".concat(H.MAX_ATTACHMENT_SIZE/1e6," MB.")),e.abrupt("return");case 4:if(a.setState({isLoading:!0}),e.prev=5,!a.file){e.next=12;break}return e.next=9,G(a.file);case 9:e.t0=e.sent,e.next=13;break;case 12:e.t0=null;case 13:return n=e.t0,e.next=16,a.createNote({attachment:n,content:a.state.content});case 16:a.props.history.push("/"),e.next=23;break;case 19:e.prev=19,e.t1=e.catch(5),alert(e.t1),a.setState({isLoading:!1});case 23:case"end":return e.stop()}},e,this,[[5,19]])}));return function(t){return e.apply(this,arguments)}}(),a.file=null,a.state={isLoading:null,content:""},a}return Object(p.a)(t,e),Object(h.a)(t,[{key:"validateForm",value:function(){return this.state.content.length>0}},{key:"createNote",value:function(e){return f.API.post("notes","/notes",{body:e})}},{key:"render",value:function(){return r.a.createElement("div",{className:"NewNote"},r.a.createElement("form",{onSubmit:this.handleSubmit},r.a.createElement(N.a,{controlId:"content"},r.a.createElement(P.a,{onChange:this.handleChange,value:this.state.content,componentClass:"textarea"})),r.a.createElement(N.a,{controlId:"file"},r.a.createElement(T.a,null,"Attachment"),r.a.createElement(P.a,{onChange:this.handleFileChange,type:"file"})),r.a.createElement(R,{block:!0,bsStyle:"primary",bsSize:"large",disabled:!this.validateForm(),type:"submit",isLoading:this.state.isLoading,text:"Create",loadingText:"Creating\u2026"})))}}]),t}(n.Component),Y=(a(399),function(e){function t(e){var a;return Object(u.a)(this,t),(a=Object(m.a)(this,Object(d.a)(t).call(this,e))).handleChange=function(e){a.setState(Object(I.a)({},e.target.id,e.target.value))},a.handleFileChange=function(e){a.file=e.target.files[0]},a.handleSubmit=function(){var e=Object(l.a)(c.a.mark(function e(t){var n;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t.preventDefault(),!(a.file&&a.file.size>H.MAX_ATTACHMENT_SIZE)){e.next=4;break}return alert("Please pick a file smaller than ".concat(H.MAX_ATTACHMENT_SIZE/1e6," MB.")),e.abrupt("return");case 4:if(a.setState({isLoading:!0}),e.prev=5,!a.file){e.next=10;break}return e.next=9,G(a.file);case 9:n=e.sent;case 10:return e.next=12,a.saveNote({content:a.state.content,attachment:n||a.state.note.attachment});case 12:a.props.history.push("/"),e.next=19;break;case 15:e.prev=15,e.t0=e.catch(5),alert(e.t0),a.setState({isLoading:!1});case 19:case"end":return e.stop()}},e,this,[[5,15]])}));return function(t){return e.apply(this,arguments)}}(),a.handleDelete=function(){var e=Object(l.a)(c.a.mark(function e(t){return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t.preventDefault(),window.confirm("Are you sure you want to delete this note?")){e.next=4;break}return e.abrupt("return");case 4:return a.setState({isDeleting:!0}),e.prev=5,e.next=8,a.deleteNote();case 8:a.props.history.push("/"),e.next=15;break;case 11:e.prev=11,e.t0=e.catch(5),alert(e.t0),a.setState({isDeleting:!1});case 15:case"end":return e.stop()}},e,this,[[5,11]])}));return function(t){return e.apply(this,arguments)}}(),a.file=null,a.state={isLoading:null,isDeleting:null,note:null,content:"",attachmentURL:null},a}return Object(p.a)(t,e),Object(h.a)(t,[{key:"componentDidMount",value:function(){var e=Object(l.a)(c.a.mark(function e(){var t,a,n,r;return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.getNote();case 3:if(a=e.sent,n=a.content,!(r=a.attachment)){e.next=9;break}return e.next=8,f.Storage.vault.get(r);case 8:t=e.sent;case 9:this.setState({note:a,content:n,attachmentURL:t}),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(0),alert(e.t0);case 15:case"end":return e.stop()}},e,this,[[0,12]])}));return function(){return e.apply(this,arguments)}}()},{key:"getNote",value:function(){return f.API.get("notes","/notes/".concat(this.props.match.params.id))}},{key:"validateForm",value:function(){return this.state.content.length>0}},{key:"formatFilename",value:function(e){return e.replace(/^\w+-/,"")}},{key:"saveNote",value:function(e){return f.API.put("notes","/notes/".concat(this.props.match.params.id),{body:e})}},{key:"deleteNote",value:function(){return f.API.del("notes","/notes/".concat(this.props.match.params.id))}},{key:"render",value:function(){return r.a.createElement("div",{className:"Notes"},this.state.note&&r.a.createElement("form",{onSubmit:this.handleSubmit},r.a.createElement(N.a,{controlId:"content"},r.a.createElement(P.a,{onChange:this.handleChange,value:this.state.content,componentClass:"textarea"})),this.state.note.attachment&&r.a.createElement(N.a,null,r.a.createElement(T.a,null,"Attachment"),r.a.createElement(P.a.Static,null,r.a.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:this.state.attachmentURL},this.formatFilename(this.state.note.attachment)))),r.a.createElement(N.a,{controlId:"file"},!this.state.note.attachment&&r.a.createElement(T.a,null,"Attachment"),r.a.createElement(P.a,{onChange:this.handleFileChange,type:"file"})),r.a.createElement(R,{block:!0,bsStyle:"primary",bsSize:"large",disabled:!this.validateForm(),type:"submit",isLoading:this.state.isLoading,text:"Save",loadingText:"Saving\u2026"}),r.a.createElement(R,{block:!0,bsStyle:"danger",bsSize:"large",isLoading:this.state.isDeleting,onClick:this.handleDelete,text:"Delete",loadingText:"Deleting\u2026"})))}}]),t}(n.Component)),Z=function(e){var t=e.component,a=e.props,n=Object(D.a)(e,["component","props"]);return r.a.createElement(S.a,Object.assign({},n,{render:function(e){return r.a.createElement(t,Object.assign({},e,a))}}))},K=a(156),V=function(e){var t=e.component,a=e.props,n=Object(D.a)(e,["component","props"]);return r.a.createElement(S.a,Object.assign({},n,{render:function(e){return a.isAuthenticated?r.a.createElement(t,Object.assign({},e,a)):r.a.createElement(K.a,{to:"/login?redirect=".concat(e.location.pathname).concat(e.location.search)})}}))};var W=function(e){var t=e.component,a=e.props,n=Object(D.a)(e,["component","props"]),i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window.location.href;e=e.replace(/[[]]/g,"\\$&");var a=new RegExp("[?&]"+e+"(=([^&#]*)|&|#|$)","i").exec(t);return a?a[2]?decodeURIComponent(a[2].replace(/\+/g," ")):"":null}("redirect");return r.a.createElement(S.a,Object.assign({},n,{render:function(e){return a.isAuthenticated?r.a.createElement(K.a,{to:""===i||null===i?"/":i}):r.a.createElement(t,Object.assign({},e,a))}}))},$=(a(401),n.Component,function(e){var t=e.childProps;return r.a.createElement(k.a,null,r.a.createElement(Z,{path:"/",exact:!0,component:j,props:t}),r.a.createElement(W,{path:"/login",exact:!0,component:z,props:t}),r.a.createElement(W,{path:"/signup",exact:!0,component:U,props:t}),r.a.createElement(V,{path:"/notes/new",exact:!0,component:X,props:t}),r.a.createElement(V,{path:"/notes/:id",exact:!0,component:Y,props:t}),r.a.createElement(S.a,{component:A}))}),J=function(e){function t(e){var a;return Object(u.a)(this,t),(a=Object(m.a)(this,Object(d.a)(t).call(this,e))).userHasAuthenticated=function(e){a.setState({isAuthenticated:e})},a.handleLogout=function(){var e=Object(l.a)(c.a.mark(function e(t){return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,f.Auth.signOut();case 2:a.userHasAuthenticated(!1),a.props.history.push("/login");case 4:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}(),a.state={isAuthenticated:!1,isAuthenticating:!0},a}return Object(p.a)(t,e),Object(h.a)(t,[{key:"componentDidMount",value:function(){var e=Object(l.a)(c.a.mark(function e(){return c.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,f.Auth.currentSession();case 3:this.userHasAuthenticated(!0),e.next=9;break;case 6:e.prev=6,e.t0=e.catch(0),"No current user"!==e.t0&&alert(e.t0);case 9:this.setState({isAuthenticating:!1});case 10:case"end":return e.stop()}},e,this,[[0,6]])}));return function(){return e.apply(this,arguments)}}()},{key:"render",value:function(){var e={isAuthenticated:this.state.isAuthenticated,userHasAuthenticated:this.userHasAuthenticated};return!this.state.isAuthenticating&&r.a.createElement("div",{className:"App container"},r.a.createElement(E.a,{fluid:!0,collapseOnSelect:!0},r.a.createElement(E.a.Header,null,r.a.createElement(E.a.Brand,null,r.a.createElement(b.a,{to:"/"},"Axe Forge")),r.a.createElement(E.a.Toggle,null)),r.a.createElement(E.a.Collapse,null,r.a.createElement(w.a,{pullRight:!0},this.state.isAuthenticated?r.a.createElement(y.a,{onClick:this.handleLogout},"Logout"):r.a.createElement(n.Fragment,null,r.a.createElement(L.LinkContainer,{to:"/signup"},r.a.createElement(y.a,null,"Signup")),r.a.createElement(L.LinkContainer,{to:"/login"},r.a.createElement(y.a,null,"Login")))))),r.a.createElement($,{childProps:e}))}}]),t}(n.Component),q=Object(v.a)(J);Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));var Q=a(141);g.a.configure({Auth:{mandatorySignIn:!0,region:H.cognito.REGION,userPoolId:H.cognito.USER_POOL_ID,identityPoolId:H.cognito.IDENTITY_POOL_ID,userPoolWebClientId:H.cognito.APP_CLIENT_ID},Storage:{region:H.s3.REGION,bucket:H.s3.BUCKET,identityPoolId:H.cognito.IDENTITY_POOL_ID},API:{endpoints:[{name:"notes",endpoint:H.apiGateway.URL,region:H.apiGateway.REGION}]}}),s.a.render(r.a.createElement(Q.a,null,r.a.createElement(q,null)),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(function(e){e.unregister()})},76:function(e,t){}},[[165,2,1]]]); //# sourceMappingURL=main.a40c1ca0.chunk.js.map