{"version":3,"sources":["data/newsletters.js","components/Checkbox.jsx","components/NewsletterForm.jsx","App.jsx","serviceWorker.js","index.jsx"],"names":["Newsletters","Checkbox","_ref","type","name","checked","onChange","id","_jsx","className","NewsletterForm","React","Component","constructor","props","super","this","state","checkedItems","Map","affl","email","handleChange","bind","handleEmailChange","handleAfflChange","handleSubmit","e","target","isChecked","setState","prevState","set","value","preventDefault","alert","dailyNewsId","dailyNewsToggled","array","Array","from","filter","obj","elementIds","elem","push","user_email","newsletter_ids","demographics","affiliation","fetchData","method","headers","Accept","body","JSON","stringify","fetch","then","res","json","data","console","log","success","callback","callbackStatus","objAffl","fetchDataAffl","render","_jsxs","children","src","alt","style","textAlign","class","href","onSubmit","map","item","get","description","key","placeholder","required","color","disabled","selected","fontSize","i","_Fragment","url","App","Boolean","window","location","hostname","match","ReactDOM","StrictMode","document","getElementById","navigator","serviceWorker","ready","registration","unregister","catch","error","message"],"mappings":"oMAAO,MAAMA,EAAc,CAAC,CACxB,GAAM,aACN,KAAQ,mBACR,YAAe,0FACf,IAAO,4B,WCUIC,MAXEC,IAAA,IAAC,KAACC,EAAO,WAAU,KAAEC,EAAI,QAAEC,GAAU,EAAK,SAAEC,EAAQ,GAAEC,GAAGL,EAAA,OACtEM,cAAA,SAAOC,UAAU,iBAAiBN,KAAMA,EAAMC,KAAMA,EAAMC,QAASA,EAASC,SAAUA,EAAUC,GAAIA,GAAK,ECA7G,MAAMG,UAAuBC,IAAMC,UACjCC,YAAYC,GACVC,MAAMD,GAENE,KAAKC,MAAQ,CACXC,aAAc,IAAIC,IAClBC,KAAM,MACNC,MAAO,IAGTL,KAAKM,aAAeN,KAAKM,aAAaC,KAAKP,MAC3CA,KAAKQ,kBAAoBR,KAAKQ,kBAAkBD,KAAKP,MACrDA,KAAKS,iBAAmBT,KAAKS,iBAAiBF,KAAKP,MACnDA,KAAKU,aAAeV,KAAKU,aAAaH,KAAKP,KAC7C,CAEAM,aAAaK,GACX,MAAMpB,EAAKoB,EAAEC,OAAOrB,GACdsB,EAAYF,EAAEC,OAAOvB,QAC3BW,KAAKc,UAAUC,IAAS,CACtBb,aAAca,EAAUb,aAAac,IAAIzB,EAAIsB,MAEjD,CAEAJ,iBAAiBE,GACf,MAAMP,EAAOO,EAAEC,OAAOK,MAEX,YAATb,GACS,qBAATA,GACS,wBAATA,GACS,WAATA,GACS,uBAATA,GACS,SAATA,GACS,kBAATA,GACS,UAATA,EAEAJ,KAAKc,SAAS,CAAEV,KAAMA,IAEtBJ,KAAKc,SAAS,CAAEV,KAAM,OAE1B,CAEAI,kBAAkBG,GAChB,MAAMN,EAAQM,EAAEC,OAAOK,MACvBjB,KAAKc,SAAS,CAAET,MAAOA,GACzB,CAEAK,aAAaC,GAGX,GAFAA,EAAEO,iBAEsB,QAApBlB,KAAKC,MAAMG,KAIb,YAHAe,MACE,uEAMJ,MAAMC,EAAc,aACpB,IAAIC,GAAmB,EAEvB,MAAMC,EAAQC,MAAMC,KAAKxB,KAAKC,MAAMC,cAAchB,IAAA,IAAEK,EAAIsB,GAAU3B,EAAA,MAAM,CACtEK,KACAsB,YACD,IAAGY,QAAQC,GAAQA,EAAIb,YACxB,IAAIc,EAAa,GAEjB,IAAK,IAAIC,KAAQN,EACXM,EAAKrC,KAAO6B,EACdC,GAAmB,EAEnBM,EAAWE,KAAKD,EAAKrC,IAIzB,MAAMmC,EAAM,CACVI,WAAY9B,KAAKC,MAAMI,MACvB0B,eAAgBJ,EAChBK,aAAc,CACZC,YAAajC,KAAKC,MAAMG,OAI5B,IAAI8B,EAAY,CACdC,OAAQ,OACRC,QAAS,CACPC,OAAQ,mBACR,eAAgB,oBAElBC,KAAMC,KAAKC,UAAUd,IAwBvB,GArBAe,MACE,4DACAP,GAECQ,MAAMC,GAAQA,EAAIC,SAClBF,MAAMG,IACLC,QAAQC,IAAIF,EAAKG,SACI,iBAAjBH,EAAKG,SACPhD,KAAKc,SAAS,CACZmC,SACE,+HAEJjD,KAAKc,SAAS,CAAEoC,eAAgB,UAEhClD,KAAKc,SAAS,CACZmC,SAAU,wCAEZjD,KAAKc,SAAS,CAAEoC,eAAgB,UAClC,IAGA7B,EAAkB,CACpB,MAAM8B,EAAU,CACdrB,WAAY9B,KAAKC,MAAMI,MACvB4B,YAAajC,KAAKC,MAAMG,KACxB2B,eAAgB,CAACX,IAGnB,IAAIgC,EAAgB,CAClBjB,OAAQ,OACRC,QAAS,CACPC,OAAQ,mBACR,eAAgB,oBAElBC,KAAMC,KAAKC,UAAUW,IAGvBV,MACE,wEACAW,GAECV,MAAMC,GAAQA,EAAIC,SAClBF,MAAMG,IACLC,QAAQC,IAAIF,EAAKG,SAEE,iBAAjBH,EAAKG,SACyB,QAA9BhD,KAAKC,MAAMiD,gBAEXlD,KAAKc,SAAS,CACZmC,SACE,+HAEJjD,KAAKc,SAAS,CAAEoC,eAAgB,UAEhClD,KAAKc,SAAS,CACZmC,SAAU,wCAEZjD,KAAKc,SAAS,CAAEoC,eAAgB,UAClC,GAEN,CACF,CAEAG,SACE,MAAM,SAAEJ,EAAQ,eAAEC,GAAmBlD,KAAKC,MAC1C,OACEqD,eAAA,OAAK7D,UAAU,oBAAmB8D,SAAA,CAChC/D,cAAA,OACEgE,IAAI,qEACJC,IAAI,SACJhE,UAAU,eAEZ6D,eAAA,MAAI7D,UAAU,gBAAgBiE,MAAO,CAAEC,UAAW,UAAWJ,SAAA,CAC1D,IACD/D,cAAA,QAAMoE,MAAM,MAAKL,SAAC,cAAgB,2DAGpCD,eAAA,MAAI7D,UAAU,gBAAgBiE,MAAO,CAAEC,UAAW,UAAWJ,SAAA,CAAC,iBAC7C,IACf/D,cAAA,QAAMoE,MAAM,MAAKL,SACf/D,cAAA,KACEqE,KAAK,iDACLD,MAAM,cAAaL,SACpB,yBAGK,IAAI,eAGd/D,cAAA,SACAA,cAAA,MAAIC,UAAU,oBAAoBiE,MAAO,CAAEC,UAAW,UAAWJ,SAAC,sDAGlED,eAAA,QAAMQ,SAAU9D,KAAKU,aAAa6C,SAAA,CAChC/D,cAAA,OAAKC,UAAU,iBAAgB8D,SAC5BvE,EAAY+E,KAAKC,GAChBV,eAAA,SAAAC,SAAA,CACE/D,cAACP,EAAQ,CACPG,KAAM4E,EAAK5E,KACXC,QAASW,KAAKC,MAAMC,aAAa+D,IAAID,EAAKzE,IAC1CD,SAAUU,KAAKM,aACff,GAAIyE,EAAKzE,KACT,SACKyE,EAAK5E,KACZI,cAAA,SAAM,IAAC8D,eAAA,KAAG7D,UAAU,cAAa8D,SAAA,CAAES,EAAKE,YAAY,SAR1CF,EAAKG,SAYrB3E,cAAA,SACAA,cAAA,KAAGC,UAAU,QAAO8D,SAAC,wBACrB/D,cAAA,SACEC,UAAU,YACVF,GAAG,cACHJ,KAAK,QACLC,KAAK,QACLgF,YAAY,GACZ9E,SAAUU,KAAKQ,kBACf6D,UAAQ,IAEV7E,cAAA,KAAGC,UAAU,QAAO8D,SAAC,qCACrBD,eAAA,UACE7D,UAAU,OACVF,GAAG,OACHH,KAAK,OACLE,SAAUU,KAAKS,iBACfiD,MAAO,CAAEY,MAA2B,QAApBtE,KAAKC,MAAMG,KAAiB,UAAY,WAAYmD,SAAA,CAEpE/D,cAAA,UAAQyB,MAAM,GAAGsD,UAAQ,EAACC,UAAQ,IAClChF,cAAA,UAAQyB,MAAM,UAASsC,SAAC,0BACxB/D,cAAA,UAAQyB,MAAM,mBAAkBsC,SAAC,qBACjC/D,cAAA,UAAQyB,MAAM,sBAAqBsC,SAAC,wBACpC/D,cAAA,UAAQyB,MAAM,SAAQsC,SAAC,WACvB/D,cAAA,UAAQyB,MAAM,qBAAoBsC,SAAC,uBACnC/D,cAAA,UAAQyB,MAAM,OAAMsC,SAAC,SACrB/D,cAAA,UAAQyB,MAAM,gBAAesC,SAAC,kBAC9B/D,cAAA,UAAQyB,MAAM,QAAOsC,SAAC,aAExB/D,cAAA,QAAMC,UAAU,WAAU8D,SAAC,qBAC3B/D,cAAA,SACAA,cAAA,SACAA,cAAA,OAAKD,GAAG,SAASE,UAAU,gBAAe8D,SACxC/D,cAAA,SACEkE,MAAO,CAAEe,SAAU,QACnBhF,UAAU,YACVN,KAAK,SACL8B,MAAM,gBAGVzB,cAAA,SACAA,cAAA,SACCyD,GACCzD,cAAA,OAAKD,GAAG,kBAAkBE,UAAWyD,EAAeK,SACjDN,IAGLK,eAAA,OAAK7D,UAAU,aAAY8D,SAAA,CACzB/D,cAAA,KAAA+D,SACE/D,cAAA,KAAA+D,SAAG,kGAKJvE,EAAY+E,KAAI,CAACC,EAAMU,IACtBpB,eAAAqB,WAAA,CAAApB,SAAA,CACGmB,EAAI,GAAK,MACVlF,cAAA,KAAGqE,KAAMG,EAAKY,IAAKhE,OAAO,SAASnB,UAAU,YAAW8D,SACrDS,EAAK5E,oBAQtB,EAGaM,Q,KChQAmF,MAbf,WACE,OACErF,cAAAmF,WAAA,CAAApB,SACED,eAAA,OAAK7D,UAAU,UAAS8D,SAAA,CACtB/D,cAAA,OAAKC,UAAU,qBAAoB8D,SACjC/D,cAACE,EAAc,MAEjBF,cAAA,aAIR,ECHoBsF,QACa,cAA7BC,OAAOC,SAASC,UAEa,UAA7BF,OAAOC,SAASC,UAEhBF,OAAOC,SAASC,SAASC,MACrB,2DCbRC,IAAS9B,OACL7D,cAACG,IAAMyF,WAAU,CAAA7B,SACb/D,cAACqF,EAAG,MAERQ,SAASC,eAAe,SD0HpB,kBAAmBC,WACnBA,UAAUC,cAAcC,MACnB/C,MAAKgD,IACFA,EAAaC,YAAY,IAE5BC,OAAMC,IACH/C,QAAQ+C,MAAMA,EAAMC,QAAQ,G","file":"static/js/main.80a5d011.chunk.js","sourcesContent":["export const Newsletters = [{\n 'id': '314837ec05',\n 'name': 'Daily Newsletter',\n 'description': 'Keep up to date with all of The Daily Princetonian’s coverage, delivered weekdays.',\n 'url': 'http://eepurl.com/GveCn'\n}];\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Checkbox = ({type = 'checkbox', name, checked = false, onChange, id}) => (\n \n);\n\nCheckbox.propTypes = {\n type: PropTypes.string,\n name: PropTypes.string.isRequired,\n checked: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n}\n\nexport default Checkbox;\n","import React from \"react\";\nimport { Newsletters } from \"../data/newsletters.js\";\nimport Checkbox from \"./Checkbox\";\n\nclass NewsletterForm extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n checkedItems: new Map(),\n affl: \"bad\",\n email: \"\",\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleEmailChange = this.handleEmailChange.bind(this);\n this.handleAfflChange = this.handleAfflChange.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n }\n\n handleChange(e) {\n const id = e.target.id;\n const isChecked = e.target.checked;\n this.setState((prevState) => ({\n checkedItems: prevState.checkedItems.set(id, isChecked),\n }));\n }\n\n handleAfflChange(e) {\n const affl = e.target.value;\n if (\n affl === \"student\" ||\n affl === \"graduate_student\" ||\n affl === \"prospective_student\" ||\n affl === \"parent\" ||\n affl === \"prospective_parent\" ||\n affl === \"alum\" ||\n affl === \"faculty/staff\" ||\n affl === \"other\"\n ) {\n this.setState({ affl: affl });\n } else {\n this.setState({ affl: \"bad\" });\n }\n }\n\n handleEmailChange(e) {\n const email = e.target.value;\n this.setState({ email: email });\n }\n\n handleSubmit(e) {\n e.preventDefault();\n\n if (this.state.affl === \"bad\") {\n alert(\n \"Please select a Princeton University affiliation from the dropdown.\"\n );\n return;\n }\n\n // daily subscribers requires affiliation\n const dailyNewsId = \"314837ec05\";\n let dailyNewsToggled = false;\n\n const array = Array.from(this.state.checkedItems, ([id, isChecked]) => ({\n id,\n isChecked,\n })).filter((obj) => obj.isChecked);\n let elementIds = [];\n\n for (let elem of array) {\n if (elem.id === dailyNewsId) {\n dailyNewsToggled = true;\n } else {\n elementIds.push(elem.id);\n }\n }\n\n const obj = {\n user_email: this.state.email,\n newsletter_ids: elementIds,\n demographics: {\n affiliation: this.state.affl,\n },\n };\n\n var fetchData = {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(obj),\n };\n\n fetch(\n \"https://dailyprince-subscribe-api.herokuapp.com/subscribe\",\n fetchData\n )\n .then((res) => res.json())\n .then((data) => {\n console.log(data.success);\n if (data.success === \"unsuccessful\") {\n this.setState({\n callback:\n \"Something went wrong. Have you already subscribed to this service? Check your inbox or contact tech@dailyprincetonian.com.\",\n });\n this.setState({ callbackStatus: \"red\" });\n } else {\n this.setState({\n callback: \"Success! Thank you for subscribing.\",\n });\n this.setState({ callbackStatus: \"green\" });\n }\n });\n\n if (dailyNewsToggled) {\n const objAffl = {\n user_email: this.state.email,\n affiliation: this.state.affl,\n newsletter_ids: [dailyNewsId],\n };\n\n var fetchDataAffl = {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(objAffl),\n };\n\n fetch(\n \"https://dailyprince-subscribe-api.herokuapp.com/subscribe/affiliation\",\n fetchDataAffl\n )\n .then((res) => res.json())\n .then((data) => {\n console.log(data.success);\n if (\n data.success === \"unsuccessful\" ||\n this.state.callbackStatus === \"red\"\n ) {\n this.setState({\n callback:\n \"Something went wrong. Have you already subscribed to this service? Check your inbox or contact tech@dailyprincetonian.com.\",\n });\n this.setState({ callbackStatus: \"red\" });\n } else {\n this.setState({\n callback: \"Success! Thank you for subscribing.\",\n });\n this.setState({ callbackStatus: \"green\" });\n }\n });\n }\n }\n\n render() {\n const { callback, callbackStatus } = this.state;\n return (\n