{"version":3,"sources":["components/Floaty/Floaty.js","components/Title/Title.js","components/Body/Body.js","components/Page/Page.js","data/ContactDetails.js","pages/Home.js","data/AboutBody.js","App.js","data/metadata.js","pages/NoMatch.js","routing.js","index.js"],"names":["Floaty","floaty_list","className","map","text","index","style","animation","Title","align","Body","elements","obj","i","Page","name","currentPage","children","nav","useNavigate","pageRef","useRef","callback","entries","observer","forEach","entry","intersectionRatio","replace","current","scrollIntoView","useEffect","ref","IntersectionObserver","root","rootMargin","threshold","observe","unobserve","id","phone","href","email","linkedin","github","reduce","p","n","Home","page","App","content","NoMatch","Routing","exact","path","element","rootElement","document","getElementById","render"],"mappings":"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","file":"static/js/main.32bcc5ba.chunk.js","sourcesContent":["import React from 'react';\nimport './Floaty.css';\n\nconst Floaty = ({ floaty_list }) => {\n const animation_delay = 1.2;\n const animation_duration = 1;\n\n return (\n
\n {floaty_list.map((text, index) => {\n return (\n \n {text}\n
\n );\n })}\n \n );\n};\n\nexport default Floaty;\n","import React from 'react';\nimport './Title.css';\n\nconst Title = ({ text, align }) => {\n return (\n
\n
{text}
\n
\n
\n );\n};\n\nexport default Title;\n","import React from 'react';\nimport './Body.css';\n\nconst Body = ({ elements = null, text = null, align }) => {\n return (\n
\n {text &&
{text}
}\n {elements && (\n
\n {elements.map((obj, i) => {\n return (\n
\n {obj}\n
\n );\n })}\n
\n )}\n
\n );\n};\n\nexport default Body;\n","import React, { useEffect, useRef } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport './Page.css';\n\nconst Page = ({ name, currentPage, children }) => {\n const nav = useNavigate();\n const pageRef = useRef(null);\n\n const callback = (entries, observer) => {\n entries.forEach((entry) => {\n if (entry.intersectionRatio > 0) {\n if (name) {\n nav('/' + name, { replace: true });\n } else {\n nav('/', { replace: true });\n }\n } else {\n if (name === currentPage) {\n pageRef.current.scrollIntoView();\n }\n }\n });\n };\n\n useEffect(() => {\n let options = {\n root: null,\n rootMargin: '0px',\n threshold: 0.6,\n };\n\n const ref = pageRef.current;\n\n let observer = new IntersectionObserver(callback, options);\n observer.observe(ref);\n return () => {\n observer.unobserve(ref);\n };\n // eslint-disable-next-line\n }, []);\n\n return (\n
\n {children}\n
\n );\n};\n\nexport default Page;\n","const phone = Phone: 07450 856481;\nconst email = (\n \n Email: fabrizio@catinella.co.uk\n \n);\nconst linkedin = (\n \n Linkedin: linkedin.com/in/fabrizio-catinella/\n \n);\nconst github = (\n Github: github.com/fabie37\n);\n\nconst contacts = [phone, email, linkedin, github]\n .reduce((p, n) => p + '\\n' + n, '')\n .replace(/^\\n(?<=.*)/gm, '');\n\nexport { phone, email, linkedin, github, contacts };\n","import Floaty from '../components/Floaty/Floaty';\nimport Title from '../components/Title/Title';\nimport Body from '../components/Body/Body';\nimport Page from '../components/Page/Page';\nimport AboutBody from '../data/AboutBody';\nimport { phone, email, linkedin, github } from '../data/ContactDetails';\n\n// Home Page\nconst title = 'CATINELLA';\nconst floaty_list = ['Design', 'Create', 'Maintain'];\n\n// About Page\nconst about = 'ABOUT';\n\n// Contact Page\nconst contact = 'CONTACT';\n\nconst Home = ({ page }) => {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default Home;\n","const AboutBody = \"Computing Science @ University of Glasgow. \\n Work experience in full stack and embedded systems. \\n Current interests involve: Building Drones, Machine Learning, Blockchain, Finance and Start-ups.\"\n\nexport default AboutBody","import './App.css';\nimport Home from './pages/Home';\nimport { meta_title, meta_description, meta_keywords } from './data/metadata';\nimport { Helmet, HelmetProvider } from 'react-helmet-async';\nimport React from 'react';\n\nconst App = ({ page }) => {\n return (\n
\n {/* SEO Stuff */}\n \n \n {meta_title}\n \n \n \n \n\n {/* The Application */}\n \n
\n );\n};\n\nexport default App;\n","const meta_title = \"Fabrizio Catinella - Software Engineer\"\nconst meta_description = \"Fabrizio Catinella - This is my personal website where you can get my contract details and get to know me more. I am interested in building anything and everything - as long as it provides a challenge and tests our understanding then I am game.\"\nconst meta_keywords = \"fabrizio, catinella, software, developer, full stack, blockchain, university of glasgow, glasgow, computing science, github, student, github, git, programming, programmer\"\n\nexport {meta_title, meta_description, meta_keywords}","import Title from '../components/Title/Title';\nimport Body from '../components/Body/Body';\nimport Page from '../components/Page/Page';\n\n// 404 Error Page\nconst title = '404';\nconst body = 'This page does not exist.';\n\nconst NoMatch = () => (\n
\n \n \n \n \n \n
\n);\n\nexport default NoMatch;\n","import App from './App';\nimport NoMatch from './pages/NoMatch';\nimport React from 'react';\nimport { Route, Routes } from 'react-router-dom';\n\nconst Routing = () => (\n \n } />\n } />\n } />\n } />\n \n);\n\nexport default Routing;\n","import React from 'react';\nimport { render } from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport './index.css';\nimport Routing from './routing';\n\nconst rootElement = document.getElementById('root');\nrender(\n \n \n ,\n rootElement\n);\n\nexport default Routing;\n"],"sourceRoot":""}