{"version":3,"sources":["navigation/main-nav.jsx","intro/intro.jsx","about/about.jsx","classes/class.jsx","classes/classes.jsx","gallery/gallery-carousel.jsx","gallery/gallery.jsx","events/event.jsx","events/events.jsx","contact/social-media.jsx","contact/contact.jsx","offers/offers.jsx","footer/footer.jsx","contentful-client.js","actions.js","App.jsx","serviceWorker.js","index.jsx"],"names":["MainNav","Navbar","expand","variant","bg","sticky","Container","Brand","href","Toggle","aria-controls","Collapse","id","className","activeClass","to","spy","smooth","offset","duration","Intro","Jumbotron","About","title","text","Class","day","venue","street","town","postcode","mapUrl","lesson1","lesson2","lesson3","price","info","target","rel","defaultProps","Classes","classes","Row","sort","a","b","order","map","c","i","Col","sm","md","key","GalleryCarousel","photos","Carousel","x","Item","fields","file","url","src","alt","Gallery","gallery","useState","show","setShow","handleClose","Button","size","onClick","Modal","onHide","Header","closeButton","Title","Body","Footer","Event","startDateTime","endDateTime","timeOptions","timeStyle","hour12","start","Date","startDate","toLocaleDateString","weekday","year","month","startTime","toLocaleTimeString","endTime","formattedDate","Events","events","length","e","SocialMedia","icon","faTwitterSquare","faFacebookSquare","faYoutubeSquare","Contact","contact","faPhone","phone","faMobileAlt","mobile","faEnvelope","email","Offers","getFullYear","getClient","createClient","space","accessToken","environment","host","fetchContent","client","getEntries","request","response","App","content","setContent","useEffect","result","loadContent","then","data","mapped","console","log","items","forEach","entry","sys","contentType","push","type","aboutSection","classesSection","eventsSection","contactSection","offersSection","mapContent","catch","error","Boolean","window","location","hostname","match","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.ba4d5d8b.chunk.js","sourcesContent":["import React from \"react\";\r\nimport \"./main-nav.scss\";\r\nimport { Navbar, Container } from \"react-bootstrap\";\r\nimport { Link } from \"react-scroll\";\r\n\r\nconst MainNav = () => {\r\n return (\r\n \r\n \r\n Noches De Salsa\r\n \r\n \r\n
    \r\n
  • \r\n \r\n About\r\n \r\n
  • \r\n
  • \r\n \r\n Classes\r\n \r\n
  • \r\n
  • \r\n \r\n Gallery\r\n \r\n
  • \r\n
  • \r\n \r\n Events\r\n \r\n
  • \r\n
  • \r\n \r\n Contact\r\n \r\n
  • \r\n
  • \r\n \r\n Offers\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default MainNav;\r\n","import React from \"react\";\r\nimport \"./intro.scss\";\r\nimport { Jumbotron, Container } from \"react-bootstrap\";\r\nimport { Link } from \"react-scroll\";\r\n\r\nconst Intro = () => {\r\n return (\r\n
\r\n \r\n \r\n

Noches De Salsa

\r\n

Cuban salsa classes in Blackpool and Fylde

\r\n\r\n \r\n Learn More\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Intro;\r\n","import React from \"react\";\r\nimport { Container } from \"react-bootstrap\";\r\nimport { string } from \"prop-types\";\r\n\r\nconst About = ({ title, text }) => {\r\n return (\r\n
\r\n \r\n

{title}

\r\n
\r\n

{text}

\r\n
\r\n
\r\n );\r\n};\r\n\r\nAbout.propTypes = {\r\n title: string.isRequired,\r\n text: string.isRequired\r\n};\r\n\r\nexport default About;\r\n","import React from \"react\";\r\nimport { string } from \"prop-types\";\r\nimport \"./class.scss\";\r\n\r\nconst Class = ({\r\n day,\r\n venue,\r\n street,\r\n town,\r\n postcode,\r\n mapUrl,\r\n lesson1,\r\n lesson2,\r\n lesson3,\r\n price,\r\n info\r\n}) => {\r\n return (\r\n
\r\n

{day}

\r\n

{venue}

\r\n
\r\n {street}, {town}\r\n
\r\n {postcode}\r\n
\r\n

\r\n \r\n Get Directions\r\n \r\n

\r\n

\r\n {lesson1}\r\n {lesson2 && (\r\n <>\r\n
\r\n {lesson2}\r\n \r\n )}\r\n {lesson3 && (\r\n <>\r\n
\r\n {lesson3}\r\n \r\n )}\r\n

\r\n

{price}

\r\n

\r\n {info}\r\n

\r\n
\r\n );\r\n};\r\n\r\nClass.propTypes = {\r\n day: string.isRequired,\r\n venue: string.isRequired,\r\n street: string.isRequired,\r\n town: string.isRequired,\r\n postcode: string.isRequired,\r\n mapUrl: string.isRequired,\r\n lesson1: string.isRequired,\r\n lesson2: string,\r\n lesson3: string,\r\n price: string.isRequired,\r\n info: string\r\n};\r\n\r\nClass.defaultProps = {\r\n lesson2: \"\",\r\n lesson3: \"\",\r\n info: \"\"\r\n};\r\n\r\nexport default Class;\r\n","import React from \"react\";\r\nimport { Container, Row, Col } from \"react-bootstrap\";\r\nimport { arrayOf, object, string } from \"prop-types\";\r\nimport Class from \"./class\";\r\n\r\nconst Classes = ({ classes, title, text }) => {\r\n return (\r\n
\r\n \r\n

{title}

\r\n
\r\n

{text}

\r\n \r\n {classes\r\n .sort((a, b) => a.order - b.order)\r\n .map((c, i) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nClasses.propTypes = {\r\n classes: arrayOf(object).isRequired,\r\n title: string.isRequired,\r\n text: string.isRequired\r\n};\r\n\r\nexport default Classes;\r\n","import React from \"react\";\r\nimport { Carousel } from \"react-bootstrap\";\r\nimport { arrayOf, object } from \"prop-types\";\r\nimport \"./gallery-carousel.scss\";\r\n\r\nconst GalleryCarousel = ({ photos }) => {\r\n return (\r\n \r\n {photos.map(x => (\r\n \r\n \"Gallery\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nGalleryCarousel.propTypes = {\r\n photos: arrayOf(object).isRequired\r\n};\r\n\r\nexport default GalleryCarousel;\r\n","import React, { useState } from \"react\";\r\nimport { Jumbotron, Container, Button, Modal } from \"react-bootstrap\";\r\nimport { shape } from \"prop-types\";\r\nimport \"./gallery.scss\";\r\nimport GalleryCarousel from \"./gallery-carousel\";\r\n\r\nconst Gallery = ({ gallery }) => {\r\n const [show, setShow] = useState(false);\r\n\r\n const handleClose = () => setShow(false);\r\n const handleShow = () => setShow(true);\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n

{gallery.text}

\r\n \r\n View\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n Gallery\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nGallery.propTypes = {\r\n gallery: shape({}).isRequired\r\n};\r\n\r\nexport default Gallery;\r\n","import React from \"react\";\r\nimport { string } from \"prop-types\";\r\nimport \"./event.scss\";\r\n\r\nconst Event = ({\r\n title,\r\n venue,\r\n street,\r\n town,\r\n postcode,\r\n startDateTime,\r\n endDateTime,\r\n info\r\n}) => {\r\n const options = {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\"\r\n };\r\n\r\n const timeOptions = {\r\n timeStyle: \"short\",\r\n hour12: true\r\n };\r\n\r\n const start = new Date(startDateTime);\r\n const startDate = start.toLocaleDateString(\"en-GB\", options);\r\n const startTime = start.toLocaleTimeString(\"en-GB\", timeOptions);\r\n const end = new Date(endDateTime);\r\n const endTime = end.toLocaleTimeString(\"en-GB\", timeOptions);\r\n const formattedDate = `${startDate} ${startTime} - ${endTime}`;\r\n\r\n return (\r\n
\r\n

{title}

\r\n

{venue}

\r\n

\r\n {street}, {town}, {postcode}\r\n

\r\n

{formattedDate}

\r\n

{info}

\r\n
\r\n );\r\n};\r\n\r\nEvent.propTypes = {\r\n title: string.isRequired,\r\n venue: string.isRequired,\r\n street: string.isRequired,\r\n town: string.isRequired,\r\n postcode: string.isRequired,\r\n startDateTime: string.isRequired,\r\n endDateTime: string.isRequired,\r\n info: string.isRequired\r\n};\r\n\r\nexport default Event;\r\n","import React from \"react\";\r\nimport { arrayOf, object, string } from \"prop-types\";\r\nimport { Container, Row, Col } from \"react-bootstrap\";\r\nimport Event from \"./event\";\r\n\r\nconst Events = ({ events, title }) => {\r\n return (\r\n
\r\n \r\n

{title}

\r\n
\r\n {events.length > 0 ? (\r\n \r\n {events.map((e, i) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n \r\n \r\n ))}\r\n \r\n ) : (\r\n

\r\n We have no events planned at the moment. Please check back later.\r\n

\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nEvents.propTypes = {\r\n events: arrayOf(object).isRequired,\r\n title: string.isRequired\r\n};\r\n\r\nexport default Events;\r\n","import React from \"react\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faFacebookSquare,\r\n faTwitterSquare,\r\n faYoutubeSquare\r\n} from \"@fortawesome/free-brands-svg-icons\";\r\n\r\nconst SocialMedia = () => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SocialMedia;\r\n","import React from \"react\";\r\nimport { Container, Row, Col } from \"react-bootstrap\";\r\nimport { shape, string } from \"prop-types\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faPhone,\r\n faMobileAlt,\r\n faEnvelope\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport SocialMedia from \"./social-media\";\r\n\r\nconst Contact = ({ contact, title, text }) => {\r\n return (\r\n
\r\n \r\n

{title}

\r\n
\r\n \r\n\r\n

{text}

\r\n\r\n \r\n \r\n
\r\n \r\n

{contact.phone}

\r\n
\r\n \r\n \r\n
\r\n \r\n

{contact.mobile}

\r\n
\r\n \r\n \r\n
\r\n \r\n

\r\n {contact.email}\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nContact.propTypes = {\r\n contact: shape({\r\n phone: string.isRequired,\r\n mobile: string.isRequired,\r\n email: string.isRequired\r\n }).isRequired,\r\n text: string.isRequired,\r\n title: string.isRequired\r\n};\r\n\r\nexport default Contact;\r\n","import React from \"react\";\r\nimport { Container } from \"react-bootstrap\";\r\nimport { string } from \"prop-types\";\r\n\r\nconst Offers = ({ title, text }) => {\r\n return (\r\n
\r\n \r\n

{title}

\r\n
\r\n

{text}

\r\n
\r\n
\r\n );\r\n};\r\n\r\nOffers.propTypes = {\r\n title: string.isRequired,\r\n text: string.isRequired\r\n};\r\n\r\nexport default Offers;\r\n","import React from \"react\";\r\nimport { Container } from \"react-bootstrap\";\r\n\r\nconst Footer = () => {\r\n const year = new Date().getFullYear();\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default Footer;\r\n","import { createClient } from \"contentful\";\r\n\r\nexport const getClient = () => {\r\n return createClient({\r\n space: \"39id4c0b7dki\",\r\n accessToken: \"fRoz9WEspRcCaJL88AXXs1jctIpWmM-PCegnRRQyQOM\",\r\n environment: \"master\",\r\n host: \"cdn.contentful.com\"\r\n });\r\n};\r\n\r\nexport default {\r\n getClient\r\n};\r\n","import { getClient } from \"./contentful-client\";\r\n\r\nexport async function fetchContent() {\r\n const client = getClient();\r\n const request = await client.getEntries();\r\n\r\n return {\r\n response: request\r\n };\r\n}\r\n\r\nexport function mapContent(data) {\r\n console.log(data);\r\n\r\n const content = { classes: [], events: [] };\r\n\r\n data.items.forEach(entry => {\r\n if (entry.sys.contentType.sys.id === \"class\") {\r\n content.classes.push(entry.fields);\r\n } else if (entry.sys.contentType.sys.id === \"contactDetails\") {\r\n content.contact = entry.fields;\r\n } else if (entry.sys.contentType.sys.id === \"gallery\") {\r\n content.gallery = entry.fields;\r\n } else if (entry.sys.contentType.sys.id === \"event\") {\r\n const endDateTime = new Date(entry.fields.endDateTime);\r\n const now = new Date();\r\n\r\n if (endDateTime > now) {\r\n content.events.push(entry.fields);\r\n }\r\n } else if (entry.sys.contentType.sys.id === \"section\") {\r\n if (entry.fields.type === \"About\") {\r\n content.aboutSection = entry.fields;\r\n } else if (entry.fields.type === \"Classes\") {\r\n content.classesSection = entry.fields;\r\n } else if (entry.fields.type === \"Events\") {\r\n content.eventsSection = entry.fields;\r\n } else if (entry.fields.type === \"Contact\") {\r\n content.contactSection = entry.fields;\r\n } else if (entry.fields.type === \"Offers\") {\r\n content.offersSection = entry.fields;\r\n }\r\n }\r\n });\r\n\r\n return content;\r\n}\r\n","import React, { useEffect, useState } from \"react\";\nimport MainNav from \"./navigation/main-nav\";\nimport Intro from \"./intro/intro\";\nimport About from \"./about/about\";\nimport Classes from \"./classes/classes\";\nimport Gallery from \"./gallery/gallery\";\nimport Events from \"./events/events\";\nimport Contact from \"./contact/contact\";\nimport Offers from \"./offers/offers\";\nimport Footer from \"./footer/footer\";\nimport { fetchContent, mapContent } from \"./actions\";\n\nfunction App() {\n const [content, setContent] = useState(null);\n\n useEffect(() => {\n const loadContent = async () => {\n const result = await fetchContent();\n return result;\n };\n\n loadContent()\n .then(data => {\n const mapped = mapContent(data.response);\n setContent(mapped);\n })\n // eslint-disable-next-line no-console\n .catch(error => console.log(error));\n }, []);\n\n if (!content) {\n return <>;\n }\n\n return (\n <>\n \n \n \n \n \n \n \n \n