{"version":3,"sources":["data.js","components/projects/Projects.tsx","components/main-page/About.tsx","components/main-page/Home.tsx","components/dish/Dish.tsx","context.tsx","components/dish-list/recipes/Recipes.tsx","components/dish-list/search-form/SearchForm.tsx","components/dish-list/hero/Hero.tsx","components/TopButton.tsx","components/dish-list/DishesList.tsx","components/dish/dish-info/DishInfo.tsx","components/Calculator/Calculator.js","components/Calendar/Days.tsx","components/Calendar/Modal.tsx","components/Calendar/AddEventModal.tsx","components/Calendar/Day.tsx","components/hooks/UseLocalStorage.tsx","components/Calendar/Calendar.tsx","PracticeProjects/Tours/data.ts","PracticeProjects/Tours/Tour.tsx","PracticeProjects/Tours/Tours.tsx","PracticeProjects/ToursFlip/TourFlip.tsx","PracticeProjects/ToursFlip/ToursFlip.tsx","PracticeProjects/Creative-Agency-Clone/Footer/footer-data.tsx","PracticeProjects/Creative-Agency-Clone/Footer/Footer.tsx","PracticeProjects/Creative-Agency-Clone/Header/Navbar/Navbar.tsx","PracticeProjects/Creative-Agency-Clone/Header/header-data.tsx","PracticeProjects/Creative-Agency-Clone/Header/Header-Content/HeaderContent.tsx","PracticeProjects/Creative-Agency-Clone/Header/Header.tsx","PracticeProjects/Creative-Agency-Clone/MainContent/MainContent-data.tsx","PracticeProjects/Creative-Agency-Clone/MainContent/MainContent.tsx","PracticeProjects/Creative-Agency-Clone/MainSite.tsx","App.tsx","index.tsx"],"names":["social","id","url","icon","Email","fontSize","LinkedIn","GitHub","cardData","img","RestaurantMenu","color","texth3","texth4","link","Projects","className","map","item","src","alt","to","About","style","display","element","href","target","justifyContent","window","addEventListener","reveals","document","querySelectorAll","i","length","windowHeight","innerHeight","revealTop","getBoundingClientRect","top","classList","add","remove","Home","Dish","name","image","AppContext","React","createContext","loading","recipes","mealCategories","currentCategory","setCurrentCategory","useState","setSearchTerm","AppProvider","children","setLoading","searchTerm","setMealCategories","setRecipes","getCategories","useCallback","fetch","json","data","categories","cats","category","idCategory","strCategory","console","log","getCategoryDishes","meals","dishes","dish","idMeal","strMeal","strMealThumb","getDish","useEffect","Provider","value","useGlobalContext","useContext","Recipes","background","height","LinearProgress","flexGrow","SearchForm","searchValue","useRef","current","focus","action","onSubmit","e","preventDefault","htmlFor","type","ref","onChange","prevSearch","charAt","toUpperCase","toLowerCase","slice","onClick","Hero","TopButton","isVisible","setIsVisible","toggleVisibility","pageYOffset","removeEventListener","scrollTo","behavior","DishesList","makeReadable","ins","text","newInstructions","push","DishInfo","useParams","dishInfo","setDishInfo","getDishInfo","response","dishName","instructionsRaw","strInstructions","strIngredient1","strIngredient2","strIngredient3","strIngredient4","strIngredient5","strIngredient6","strIngredient7","strIngredient8","strIngredient9","strIngredient10","strIngredient11","strIngredient12","strIngredient13","strIngredient14","strIngredient15","strIngredient16","strIngredient17","strIngredient18","strIngredient19","strIngredient20","strMeasure1","strMeasure2","strMeasure3","strMeasure4","strMeasure5","strMeasure6","strMeasure7","strMeasure8","strMeasure9","strMeasure10","strMeasure11","strMeasure12","strMeasure13","strMeasure14","strMeasure15","strMeasure16","strMeasure17","strMeasure18","strMeasure19","strMeasure20","ingredients","measurements","instructions","undefined","ing","index","measure","line","ACTIONS","checkIfOperand","c","usedResult","reducer","state","payload","currOp","str","count","countChar","countOperands","checkIfOperandBeforeSecondDot","operand","result","total","replaceAll","evaluate","prevOp","substring","Calculator","useReducer","dispatch","Modal","open","onClose","AddEventModal","closeForm","addEvent","date","nameRef","Form","Header","Title","Body","Group","controlId","Label","Control","required","Button","Day","numday","startDate","numOfDaysInMonth","isOpen","setIsOpen","isFormOpen","setIsFormOpen","key","defaultValue","jsonValue","localStorage","getItem","JSON","parse","setValue","setItem","stringify","UseLocalStorage","events","setEvents","editEventValue","setEditEventValue","currentEdit","setCurrentEdit","editForm","dateToday","Date","getMonth","getDay","getFullYear","find","eDay","getDate","eMonth","eYear","event","d","m","y","desc","cursor","marginLeft","prevEvents","filter","ev","handleEdit","eventDate","uuidV4","numDays","Days","month","year","monthStartDay","getNumOfDaysInMonth","numDay","DAYS","MONTHS","today","Calendar","setMonth","setYear","prev","setPrevMonth","setNextMonth","day","title","price","description","Tour","handleDel","readMore","setReadMore","btnText","prevState","textContent","handleRead","Tours","tours","setTours","handleDelete","prevTours","tour","margin","TourFlip","handleLeft","handleRight","curTour","alignItems","flexDirection","ToursFlip","tourIndex","setTourIndex","prevIndex","marginBottom","textAlign","ind","position","h5","p","Footer","Navbar","barActive","setBarActive","nav","querySelector","logo","navItems","h1","h3","HeaderContent","currentSlide","slides","currentSlideId","setCurrentSlideId","backgroundImage","obj","currSlide","indexOf","nextSlide","btnDesc","data2","MainContent","h1Reveals","h3Reveals","MainSite","pathname","useLocation","App","exact","path","ReactDOM","render","StrictMode","getElementById"],"mappings":"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","file":"static/js/main.b7c9f733.chunk.js","sourcesContent":["import { Email, GitHub, LinkedIn } from '@material-ui/icons'\r\nimport { /*Casino,*/ RestaurantMenu } from \"@mui/icons-material\";\r\nimport CalculateIcon from '@mui/icons-material/Calculate';\r\nimport DateRangeIcon from '@mui/icons-material/DateRange';\r\nimport WebAssetIcon from '@mui/icons-material/WebAsset';\r\n\r\n// export const links = [\r\n// {\r\n// id: 1,\r\n// url: '/',\r\n// text: 'home',\r\n// },\r\n// ]\r\n\r\nexport const social = [\r\n {\r\n id: 2,\r\n url: 'mailto:ovasaf@gmail.com',\r\n icon: ,\r\n },\r\n {\r\n id: 3,\r\n url: 'https://linkedin.com/in/asaf-ovadya',\r\n icon: ,\r\n },\r\n {\r\n id: 4,\r\n url: 'https://github.com/AsafO7',\r\n icon: \r\n }\r\n]\r\n\r\nexport const cardData = [\r\n {\r\n id: 1,\r\n img: \"https://cdn.pixabay.com/photo/2017/01/26/02/06/platter-2009590_960_720.jpg\",\r\n icon: ,\r\n texth3: \"Recipe Search\",\r\n texth4: \"Displaying various recipes fetched from an API.\\n\" +\r\n \"Written with React and Typescript.\",\r\n link: \"/disheslist\"\r\n },\r\n\r\n {\r\n id: 2,\r\n img: \"https://cdn.pixabay.com/photo/2017/06/05/15/52/calculator-2374442_960_720.png\",\r\n icon: ,\r\n texth3: \"Calculator\",\r\n texth4: \"A simple calculator.\\nWritten with React and Javascript\",\r\n link: \"/calculator\"\r\n },\r\n\r\n {\r\n id: 3,\r\n img: \"https://cdn.pixabay.com/photo/2016/11/21/20/03/calendar-1847346_960_720.png\",\r\n icon: ,\r\n texth3: \"Calendar\",\r\n texth4: \"A calendar you can add events to.\\nWritten with React and Typescript\",\r\n link: \"/calendar\"\r\n },\r\n\r\n {\r\n id: 4,\r\n img: \"https://cdn.pixabay.com/photo/2016/09/30/09/16/tablet-1704786_960_720.png\",\r\n icon: ,\r\n texth3: \"Website clone\",\r\n texth4: \"A clone of a modern website.\\nWritten with React and Typescript.\\n(for copyright issues contact me via mail)\",\r\n link: \"/ca-clone\"\r\n },\r\n \r\n // {\r\n // id: 4,\r\n // icon: ,\r\n // texth3: \"Mini games project\",\r\n // texth4: \"Vanilla Javascript\",\r\n // link: \"/games/index.html\"\r\n // },\r\n]\r\n","import { Link } from \"react-router-dom\";\r\nimport { cardData } from \"../../data\";\r\n\r\nexport const Projects = () => {\r\n return
\r\n {cardData.map((item) => {\r\n const { id, img, texth3, texth4, link } = item;\r\n return
\r\n {id % 2 === 0 && \"even-img\"}\r\n
\r\n {/* {icon} */}\r\n

{texth3}

\r\n

{texth4}

\r\n View project\r\n
\r\n {id % 2 === 1 && \"odd-img\"}\r\n
\r\n })}\r\n
\r\n}","import { social } from '../../data'\r\nimport ArrowDownwardIcon from '@mui/icons-material/ArrowDownward';\r\n\r\nexport const About = () => {\r\n return (\r\n
\r\n
\r\n

Hey, I'm Asaf Ovadya

\r\n

Software Developer

\r\n

C.S graduate of The Open University of Israel.

\r\n
\r\n Contact me:\r\n {social.map((element: any) => {\r\n return {element.icon}\r\n })}\r\n
\r\n
\r\n \r\n

Projects

\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import { Projects } from \"../projects/Projects\";\r\nimport { About } from \"./About\";\r\n\r\nwindow.addEventListener(\"scroll\", reveal);\r\n\r\nfunction reveal() {\r\n let reveals = document.querySelectorAll(\".project\")\r\n\r\n for(let i = 0; i < reveals.length; i++) {\r\n let windowHeight = window.innerHeight\r\n let revealTop = reveals[i].getBoundingClientRect().top\r\n let revealPoint = 150\r\n\r\n if(revealTop < windowHeight - revealPoint) {\r\n reveals[i].classList.add(\"active\")\r\n }\r\n else {\r\n reveals[i].classList.remove(\"active\")\r\n }\r\n }\r\n}\r\n\r\nexport const Home = () => {\r\n return (\r\n
\r\n \r\n \r\n
\r\n )\r\n}","import { Link } from \"react-router-dom\";\r\nimport { DishItemType } from \"../../context\";\r\n\r\n/* \r\n1) Style the component.\r\n*/\r\n\r\ntype Props = {\r\n item: DishItemType;\r\n};\r\n\r\nexport const Dish: React.FC = ({ item }) => {\r\n const { name, image } = item;\r\n return (\r\n
\r\n \r\n {/*
*/}\r\n \"\"\r\n \r\n
\r\n {name}\r\n
\r\n
\r\n )\r\n}","import React, { useState, useContext, useEffect, useCallback } from 'react';\r\n\r\n\r\n\r\ntype Props = {\r\n loading: boolean;\r\n recipes: DishItemType[];\r\n mealCategories: Category[];\r\n currentCategory: string;\r\n setCurrentCategory: React.Dispatch>;\r\n setSearchTerm: React.Dispatch>;\r\n}\r\n\r\nconst url = \"https://www.themealdb.com/api/json/v1/1/search.php?s=\";\r\nconst catUrl = \"https://www.themealdb.com/api/json/v1/1/categories.php\";\r\nconst catMealUrl = \"https://www.themealdb.com/api/json/v1/1/filter.php?c=\";\r\nconst AppContext = React.createContext({loading: false, recipes: [], mealCategories: [],\r\n currentCategory: \"\", setCurrentCategory: useState, setSearchTerm: useState});\r\n\r\nexport type Category = {\r\n id: string,\r\n name: string\r\n}\r\n\r\nexport type DishItemType = {\r\n id: number;\r\n name: string;\r\n category: string;\r\n instructions: string;\r\n image: string;\r\n // youtubeLink: string;\r\n}\r\n\r\nconst AppProvider: React.FC = ({ children }) => {\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [searchTerm, setSearchTerm] = useState(\"\");\r\n const [mealCategories, setMealCategories] = useState([]);\r\n const [currentCategory, setCurrentCategory] = useState(\"\");\r\n const [recipes, setRecipes] = useState([]);\r\n\r\n const getCategories = useCallback(async () => {\r\n setLoading(true)\r\n try {\r\n const data = await (await fetch(`${catUrl}`)).json();\r\n const { categories } = data\r\n if(categories) {\r\n const cats: Category[] = categories.map((\r\n category: {idCategory: string, strCategory: string}) => {\r\n const {idCategory, strCategory} = category\r\n return {id: idCategory, name: strCategory}\r\n })\r\n setMealCategories(() => cats)\r\n }\r\n else {\r\n setMealCategories([])\r\n }\r\n setLoading(false)\r\n }\r\n catch(err) {\r\n setMealCategories([]);\r\n console.log(err);\r\n setLoading(false);\r\n }\r\n },[])\r\n\r\n const getCategoryDishes = useCallback(async () => {\r\n if(currentCategory !== \"\") {\r\n setLoading(true)\r\n try {\r\n const data = await (await fetch(`${catMealUrl}${currentCategory}`)).json();\r\n const { meals } = data\r\n if(meals) {\r\n const dishes: DishItemType[] = meals.map((\r\n dish: {idMeal: string, strMeal: string, strMealThumb: string}) => {\r\n const { idMeal, strMeal, strMealThumb } = dish;\r\n return { id: idMeal, name: strMeal, image: strMealThumb };\r\n })\r\n setRecipes(() => dishes)\r\n }\r\n else {\r\n setRecipes([])\r\n }\r\n setLoading(false)\r\n }\r\n catch(err) {\r\n setRecipes([]);\r\n console.log(err);\r\n setLoading(false);\r\n }\r\n }\r\n },[currentCategory])\r\n\r\n const getDish = useCallback(async () => {\r\n setLoading(true);\r\n try {\r\n const data = await (await fetch(`${url}${searchTerm}`)).json();\r\n const { meals } = data;\r\n if(meals) {\r\n const dishes: DishItemType[] = meals.map((\r\n dish: {idMeal: string, strMeal: string, strMealThumb: string}) => {\r\n const { idMeal, strMeal, strMealThumb } = dish;\r\n return { id: idMeal, name: strMeal, image: strMealThumb };\r\n })\r\n setRecipes(dishes);\r\n }\r\n else {\r\n setRecipes([]);\r\n }\r\n setLoading(false);\r\n }\r\n catch(err) {\r\n setRecipes([]);\r\n console.log(err);\r\n setLoading(false);\r\n }\r\n },[searchTerm])\r\n\r\n useEffect(() => {\r\n // console.log(\"1\")\r\n getCategories();\r\n },[getCategories])\r\n\r\n // Calls the function that fetches the data every time searchTerm changes.\r\n useEffect(() => {\r\n getDish();\r\n },[searchTerm, getDish])\r\n\r\n useEffect(() => {\r\n if(currentCategory !== \"\") {\r\n getCategoryDishes()\r\n }\r\n },[currentCategory, getCategoryDishes])\r\n\r\n\r\n return \r\n {children}\r\n}\r\n\r\nexport const useGlobalContext = () => {\r\n return useContext(AppContext)\r\n}\r\n\r\nexport { AppContext, AppProvider }\r\n","import { LinearProgress } from '@material-ui/core';\r\n//components\r\nimport { Dish } from '../../dish/Dish';\r\nimport { useGlobalContext } from '../../../context';\r\n\r\nexport const Recipes = () => {\r\n\r\n const { loading, recipes } = useGlobalContext();\r\n if(loading) { \r\n return
\r\n }\r\n\r\n if(recipes.length < 1) { \r\n return
\r\n

No recipe found, change input or refresh the page

\r\n
\r\n }\r\n return (\r\n <>\r\n
\r\n
    \r\n {recipes?.map((dish) => {\r\n return (\r\n
  • \r\n )\r\n })}\r\n
\r\n
\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { useGlobalContext } from \"../../../context\";\r\n\r\n\r\nexport const SearchForm = () => {\r\n const searchValue = React.useRef();\r\n const { setSearchTerm, mealCategories, setCurrentCategory, currentCategory } = useGlobalContext();\r\n\r\n // When reloading the page, focus on the search input.\r\n React.useEffect(() => {\r\n searchValue.current?.focus();\r\n },[]);\r\n\r\n // Prevents a re-render when pressing the \"Enter\" key.\r\n const handleSubmit = (e: any) => {\r\n e.preventDefault();\r\n }\r\n\r\n const searchRecipe = () => {\r\n if(searchValue.current?.value) {\r\n setCurrentCategory(\"\")\r\n setSearchTerm((prevSearch) => {\r\n if(prevSearch === \"\") return searchValue.current?.value\r\n if(prevSearch.charAt(0) === ((searchValue.current?.value).charAt(0)).toUpperCase()) {\r\n if((searchValue.current?.value).length > 1)\r\n return ((searchValue.current?.value).charAt(0)).toLowerCase() + (searchValue.current?.value).slice(1)\r\n else {\r\n return ((searchValue.current?.value).charAt(0)).toLowerCase()\r\n }\r\n }\r\n else if((searchValue.current?.value).length > 1){\r\n return ((searchValue.current?.value).charAt(0)).toUpperCase() + (searchValue.current?.value).slice(1)\r\n }\r\n else {\r\n return ((searchValue.current?.value).charAt(0)).toUpperCase()\r\n }\r\n });\r\n }\r\n else {\r\n setSearchTerm(\"\");\r\n }\r\n }\r\n\r\n return (
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {mealCategories.map((category) => {\r\n const {id, name} = category\r\n // console.log(currentCategory + 5)\r\n return \r\n })}\r\n
\r\n
\r\n )\r\n}","\r\n\r\nexport const Hero = () => {\r\n return (<>\r\n
\r\n \"\"\r\n\r\n

\r\n Do you have a hard time choosing what to eat for the day?
\r\n This website was created for easy picking of dishes of all kinds!
\r\n Whether it's main courses, side-dishes, or desserts.
\r\n Whether it's breakfast, lunch or dinner, we've got you covered with an easy to use\r\n site to choose your next meal!


\r\n Choose a category or type a recipe's name in the search bar and click on the dish for more info.\r\n

\r\n
\r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\n\r\nexport const TopButton = () => {\r\n\r\n const [isVisible, setIsVisible] = useState(false);\r\n\r\n function toggleVisibility() { (window.pageYOffset > 300) ? setIsVisible(true) : setIsVisible(false); }\r\n\r\n const scrollToTop = () => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: \"smooth\"\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"scroll\", toggleVisibility);\r\n //Clean-up function to avoid memory-leaks\r\n return () => { window.removeEventListener(\"scroll\", toggleVisibility) }\r\n }, []);\r\n\r\n return (\r\n
\r\n {isVisible && (\r\n \r\n )}\r\n
\r\n );\r\n \r\n}","import { Recipes } from '../dish-list/recipes/Recipes';\r\nimport { SearchForm } from '../dish-list/search-form/SearchForm';\r\nimport { Hero } from '../dish-list/hero/Hero';\r\nimport { TopButton } from '../TopButton';\r\n// import { Link } from 'react-router-dom';\r\n\r\nexport const DishesList = () => {\r\n return (\r\n
\r\n
\r\n {/* Home */}\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default DishesList;\r\n","import { LinearProgress } from '@material-ui/core';\r\nimport { useCallback, useEffect, useState } from 'react';\r\nimport { Link, useParams } from 'react-router-dom';\r\nimport { useGlobalContext } from '../../../context';\r\nimport { TopButton } from '../../TopButton';\r\n\r\n/* \r\n1) fetch the dish using the name. - Done\r\n2) display the rest of the properties. - Done\r\n2.1) handle loading and error. - Done\r\n3) style the page. - Done\r\n4) Fix the instructions so after every \".\" there's a line-breaker. - Done\r\n5) Maybe add measurements from the API. - Done\r\n*/\r\n\r\nconst url = \"https://www.themealdb.com/api/json/v1/1/search.php?s=\";\r\n\r\ntype DishInfoType = {\r\n id: string;\r\n dishName: string;\r\n image: string;\r\n category: string;\r\n instructions: string[];\r\n ingredients: string[];\r\n measurements: string[];\r\n}\r\n\r\nconst makeReadable = (ins: String): string[] => {\r\n let text = ``;\r\n let newInstructions: string[] = [];\r\n for(let i = 0; i < ins.length; i++) {\r\n if(ins[i] === \".\") {\r\n newInstructions.push(`${text}.`);\r\n text = ``;\r\n }\r\n else { text = `${text}${ins[i]}` }\r\n }\r\n return newInstructions;\r\n}\r\n\r\nexport const DishInfo = () => {\r\n const { name } = useParams() as any;\r\n const [loading, setLoading] = useState(false);\r\n const [dishInfo, setDishInfo] = useState();\r\n const { setSearchTerm } = useGlobalContext();\r\n\r\n const getDishInfo = useCallback(async () => {\r\n try {\r\n const response = await fetch(`${url}${name}`);\r\n const data = await response.json();\r\n if(data.meals) { \r\n const {idMeal: id, strMeal: dishName, strMealThumb: image, strCategory: category,\r\n strInstructions: instructionsRaw, strIngredient1, strIngredient2,\r\n strIngredient3, strIngredient4, strIngredient5, strIngredient6, strIngredient7,\r\n strIngredient8, strIngredient9, strIngredient10, strIngredient11, strIngredient12,\r\n strIngredient13, strIngredient14, strIngredient15, strIngredient16, strIngredient17, strIngredient18, strIngredient19, strIngredient20, strMeasure1, strMeasure2, strMeasure3, strMeasure4,\r\n strMeasure5, strMeasure6, strMeasure7, strMeasure8, strMeasure9, strMeasure10, strMeasure11,\r\n strMeasure12, strMeasure13, strMeasure14, strMeasure15, strMeasure16, strMeasure17, strMeasure18,strMeasure19, strMeasure20 } = data.meals[0];\r\n\r\n const ingredients: string[] = [strIngredient1, strIngredient2, strIngredient3, strIngredient4, strIngredient5,\r\n strIngredient6, strIngredient7, strIngredient8, strIngredient9, strIngredient10,\r\n strIngredient11, strIngredient12, strIngredient13, strIngredient14, strIngredient15,\r\n strIngredient16, strIngredient17, strIngredient18, strIngredient19, strIngredient20];\r\n\r\n const measurements: string[] = [strMeasure1, strMeasure2, strMeasure3, strMeasure4,\r\n strMeasure5, strMeasure6, strMeasure7, strMeasure8, strMeasure9, strMeasure10, strMeasure11,\r\n strMeasure12, strMeasure13, strMeasure14, strMeasure15, strMeasure16, strMeasure17, strMeasure18,strMeasure19, strMeasure20];\r\n\r\n const instructions = makeReadable(instructionsRaw);\r\n const newDish: DishInfoType = { id, dishName, image, category, instructions, ingredients, measurements };\r\n setDishInfo(newDish);\r\n }\r\n else { setDishInfo(undefined); }\r\n setLoading(false);\r\n }\r\n catch(err) {\r\n console.log(err);\r\n setLoading(false);\r\n }\r\n },[name])\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n getDishInfo();\r\n },[name, getDishInfo])\r\n\r\n if(loading) { return }\r\n if(!dishInfo) { return

No such recipe exists

}\r\n\r\n const { id, dishName, image, category, instructions, ingredients, measurements } = dishInfo;\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Dish name\r\n
{dishName}
\r\n
\r\n Category\r\n
{category}
\r\n
\r\n
\r\n {dishName}\r\n
\r\n
\r\n
\r\n
Ingredients
\r\n
    \r\n {ingredients.map((ing, index) => {\r\n if(ing) { return
  • {ing}
  • }\r\n return null;\r\n })}\r\n
\r\n
\r\n
\r\n
Measurements
\r\n
    \r\n {measurements.map((measure, index) => {\r\n if(measure) { return
  • \r\n {measure}
  • }\r\n return null;\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Instructions\r\n { instructions.map((line, index) => {\r\n return {line}
\r\n })}\r\n

\r\n setSearchTerm(\"\")}>Back to list\r\n
\r\n )\r\n}","import { useReducer } from \"react\"\r\nimport { evaluate } from 'mathjs'\r\n\r\nconst ACTIONS = {\r\n ADD_DIGIT: \"add-digit\",\r\n CLEAR: \"clear\",\r\n DELETE_DIGIT: \"delete-digit\",\r\n CHOOSE_OP: \"choose-op\",\r\n RESULT: \"result\"\r\n}\r\n\r\n// checks if c is an operand\r\nfunction checkIfOperand(c) {\r\n if(c === \"+\" || \r\n c === \"-\" || \r\n c === \"*\" ||\r\n c === \"/\" ||\r\n c === \"÷\" ||\r\n c === \"×\" ||\r\n c === \"−\") {\r\n return true\r\n }\r\n return false\r\n}\r\n\r\n// counts the number of operands in str\r\nfunction countOperands(str) {\r\n let count = 0\r\n for(let i = 0; i < str.length; i++) {\r\n if(str[i] === \"+\" || \r\n str[i] === \"-\" || \r\n str[i] === \"*\" ||\r\n str[i] === \"/\" ||\r\n str[i] === \"÷\" ||\r\n str[i] === \"×\" ||\r\n str[i] === \"−\") {\r\n count++;\r\n }\r\n }\r\n return count\r\n}\r\n\r\n// count the number of occurences of c in str\r\nfunction countChar(str, c) {\r\n let count = 0\r\n for(let i = 0; i < str.length; i++) {\r\n if(str[i] === c) {\r\n count++;\r\n }\r\n }\r\n return count\r\n}\r\n\r\n// checks if an operand appeared before a dot, so we won't have a case of a number between 2 dots.\r\nfunction checkIfOperandBeforeSecondDot(str) {\r\n for(let i = str.length - 1; i >= 0; i--) {\r\n if(str[i] === \".\") return false\r\n if(checkIfOperand(str[i])) return true\r\n }\r\n return true\r\n}\r\n\r\nlet usedResult = false\r\n\r\nfunction reducer(state, {type, payload}) {\r\n switch(type) {\r\n case ACTIONS.ADD_DIGIT:\r\n // no multiple zeros on the left side of a number\r\n if(payload === \"0\" && state.currOp === \"0\") { return state }\r\n\r\n // making sure there are no dots at illigle places.\r\n if(payload === \".\" && (!state.currOp || state.currOp.charAt(state.currOp.length - 1) === \".\"\r\n || checkIfOperand(state.currOp.charAt(state.currOp.length - 1)) ||\r\n countChar(state.currOp, \".\") === countOperands(state.currOp) + 1 ||\r\n !checkIfOperandBeforeSecondDot(state.currOp))) {\r\n return state\r\n }\r\n\r\n if(usedResult) {\r\n usedResult = false\r\n return {\r\n ...state,\r\n // prevOp: \"\",\r\n currOp: payload\r\n }\r\n }\r\n else {\r\n return { \r\n ...state,\r\n currOp: `${state.currOp || \"\"}${payload}`\r\n }\r\n }\r\n \r\n case ACTIONS.CHOOSE_OP:\r\n if(!state.currOp && payload !== \"-\") return { ...state } // expressions don't start with an operator.\r\n // no dots before an operand\r\n // if() { return state }\r\n // no multiple operators in a row.\r\n if(state.currOp) {\r\n if((checkIfOperand(state.currOp.charAt(state.currOp.length - 1)) && payload !== \"-\")\r\n || state.currOp.charAt(state.currOp.length - 1) === \".\") {\r\n return { ...state }\r\n }\r\n }\r\n \r\n if(usedResult) { usedResult = false }\r\n let operand = \"\"\r\n switch(payload) {\r\n case \"-\":\r\n operand = \"−\"\r\n break\r\n case \"*\":\r\n operand = \"×\"\r\n break\r\n case \"/\":\r\n operand = \"÷\"\r\n break\r\n default:\r\n operand = \"+\"\r\n break\r\n }\r\n return {\r\n ...state,\r\n currOp: `${state.currOp || \"\"}${operand}`\r\n }\r\n // return {\r\n // ...state,\r\n // currOp: `${state.currOp || \"\"}${payload}`\r\n // }\r\n case ACTIONS.RESULT:\r\n let result = \"\"\r\n if(state.currOp) {\r\n if(!checkIfOperand(state.currOp.charAt(state.currOp.length - 1))\r\n && state.currOp.charAt(state.currOp.length - 1) !== \".\") {\r\n let total = state.currOp.replaceAll(\"÷\", \"/\").replaceAll(\"×\", \"*\").replaceAll(\"−\", \"-\")\r\n result = `${evaluate(total)}`\r\n }\r\n else {\r\n return state \r\n }\r\n }\r\n usedResult = true\r\n if(result === \"Infinity\" || result === \"NaN\") { result = \"0\" }\r\n console.log(result)\r\n return {\r\n ...state,\r\n prevOp: state.currOp,\r\n currOp: result\r\n }\r\n case ACTIONS.CLEAR:\r\n return {}\r\n case ACTIONS.DELETE_DIGIT:\r\n if(!state.currOp) return state \r\n return {\r\n ...state,\r\n currOp: state.currOp.substring(0, state.currOp.length - 1)\r\n }\r\n default: return 2\r\n }\r\n}\r\n\r\nexport const Calculator = () => {\r\n const [{currOp, prevOp}, dispatch] = useReducer(reducer, {})\r\n return (\r\n //
\r\n
\r\n
\r\n
{prevOp}
\r\n
{currOp}
\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\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n // {/*
*/}\r\n )\r\n}","import { Day } from \"./Day\"\r\n// require('datejs')\r\n\r\nlet numDays:number[] = []\r\nfor(let i = 1; i < 43; i++) {\r\n numDays[i-1] = i\r\n}\r\n\r\n// Find a way to get yearly data of days in every month\r\n\r\nexport type monthObj = {\r\n month: number,\r\n year: number\r\n}\r\n\r\nfunction getNumOfDaysInMonth(month: number, year: number) {\r\n if(month + 1 === 2) {\r\n if((year % 100 === 0 && year % 400 === 0) || year % 4 === 0) {\r\n return 29\r\n }\r\n else return 28\r\n }\r\n if(month + 1 === 7 || month + 1 === 8) return 31\r\n if(month + 1 === 1 || month + 1 === 3 || month + 1 === 5 || month + 1 === 10 || month + 1 === 12) return 31\r\n else return 30\r\n}\r\n\r\nexport const Days:React.FC = ({month, year}) => {\r\n let monthStartDay = new Date(`${month + 1} 1 ${year}`)\r\n let numOfDaysInMonth = getNumOfDaysInMonth(month, year)\r\n return (\r\n
\r\n {numDays.map((numDay) => {\r\n return \r\n })}\r\n
\r\n )}","import React, { MouseEventHandler } from 'react'\r\n\r\ntype Props = {\r\n children: string\r\n open: boolean\r\n onClose: MouseEventHandler\r\n}\r\n\r\nexport const Modal:React.FC = ({ open, children, onClose }) => {\r\n if(!open) return null\r\n return (<>\r\n
\r\n
\r\n \r\n
\r\n

Events

\r\n
    {children}
\r\n
\r\n
\r\n )\r\n}\r\n","import React, { FormEvent, useRef } from \"react\"\r\nimport { Button, Form, Modal } from \"react-bootstrap\"\r\n\r\ntype Props = {\r\n // children: string,\r\n open: boolean,\r\n closeForm: () => void,\r\n addEvent: (event: string, eventDate: Date) => void,\r\n date: Date\r\n}\r\n\r\n// Add a form that will enable the user to write an event.\r\n// Take the event written and write it in the Modal componant - use local storage.\r\n\r\nexport const AddEventModal:React.FC = ({ open, closeForm, addEvent, date }) => {\r\n const nameRef = useRef() as React.MutableRefObject\r\n // const { addEvent } = useEvents()\r\n\r\n function handleSubmit(e: FormEvent) {\r\n e.preventDefault()\r\n addEvent(nameRef.current.value, date)\r\n closeForm()\r\n }\r\n\r\n if(!open) return null\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n \r\n New Event\r\n \r\n \r\n \r\n Event\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n}","import { Modal } from \"./Modal\"\r\nimport { useState } from \"react\"\r\nimport CalendarTodayIcon from '@mui/icons-material/CalendarToday';\r\nimport { AddEventModal } from \"./AddEventModal\";\r\nimport { v4 as uuidV4 } from \"uuid\";\r\nimport { UseLocalStorage } from \"../hooks/UseLocalStorage\";\r\nimport React from \"react\";\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport ArrowRightAltIcon from '@mui/icons-material/ArrowRightAlt';\r\n\r\ntype Props = {\r\n numday: number,\r\n startDate: Date,\r\n numOfDaysInMonth: number\r\n}\r\n\r\nexport type DayEvent = {\r\n id: string,\r\n eDay: number,\r\n eMonth: number,\r\n eYear: number,\r\n desc: string\r\n}\r\n\r\n// After leaving the page, days with events are no longer different in color - fix it!\r\n\r\nexport const Day:React.FC = ({numday, startDate, numOfDaysInMonth}) => {\r\n const [isOpen, setIsOpen] = useState(false)\r\n const [isFormOpen, setIsFormOpen] = useState(false)\r\n const [events, setEvents] = UseLocalStorage(\"events\", [])\r\n const [editEventValue, setEditEventValue] = useState(\"\")\r\n const [currentEdit, setCurrentEdit] = useState(\"\")\r\n\r\n const editForm = React.useRef()\r\n\r\n // getMonth() + 1 used to be getMonth() + 2\r\n const dateToday = new Date(`${startDate.getMonth() + 1} ${numday - startDate.getDay()} \r\n ${startDate.getFullYear()}`)\r\n\r\n React.useEffect(() => {\r\n editForm.current?.focus()\r\n },[currentEdit])\r\n\r\n function checkDate(d: number, m: number, y: number) {\r\n // console.log(d, m, y)\r\n if(d === dateToday.getDate() && m === dateToday.getMonth() && y === dateToday.getFullYear()) return true\r\n return false\r\n }\r\n\r\n function addEvent(event: string, eventDate: Date) {\r\n setEvents((prevEvents: DayEvent[]) => {\r\n if(prevEvents.find(e => e.desc === event && e.eDay === eventDate.getDate() &&\r\n e.eMonth === eventDate.getMonth() && e.eYear === eventDate.getFullYear())) {\r\n return prevEvents\r\n }\r\n // setHasEvent(true)\r\n return [...prevEvents, { id: uuidV4(), eDay: dateToday.getDate(), eMonth: dateToday.getMonth(),\r\n eYear: dateToday.getFullYear(), desc: event}]\r\n })\r\n }\r\n\r\n function deleteEvent(id: string) {\r\n // setHasEvent(false)\r\n setEvents((prevEvents: DayEvent[]) => {\r\n return prevEvents.filter(e => e.id !== id)\r\n })\r\n }\r\n\r\n function setEditCurrent(id: string, desc: string) {\r\n setCurrentEdit(id)\r\n setEditEventValue(desc)\r\n // isEditEvent = true\r\n }\r\n\r\n function handleEdit(e: React.FormEvent, event: DayEvent) {\r\n e.preventDefault()\r\n\r\n setEvents((prevEvents: DayEvent[]) => {\r\n return prevEvents.map((ev) => {\r\n if(ev.id === event.id) ev.desc = editEventValue\r\n return ev\r\n })\r\n })\r\n setCurrentEdit(\"\")\r\n // isEditEvent = false\r\n }\r\n\r\n if(numday < startDate.getDay() + 1 || numOfDaysInMonth + startDate.getDay() < numday) {\r\n return \r\n }\r\n return (<>\r\n {numday - startDate.getDay()}\r\n {!(events.find((e: DayEvent) => e.eDay === dateToday.getDate() &&\r\n e.eMonth === dateToday.getMonth() && e.eYear === dateToday.getFullYear())) && \r\n setIsOpen(true)} />}\r\n {(events.find((e: DayEvent) => e.eDay === dateToday.getDate() &&\r\n e.eMonth === dateToday.getMonth() && e.eYear === dateToday.getFullYear())) && \r\n setIsOpen(true)} />}\r\n \r\n \r\n setIsOpen(false)}>\r\n {/* if there are events, map them to the modal */}\r\n {events && events.map((event: DayEvent) => {\r\n if(checkDate(event.eDay, event.eMonth, event.eYear)) {\r\n return event.id !== currentEdit ? \r\n
  • • {event.desc}\r\n setEditCurrent(event.id, event.desc)} />\r\n deleteEvent(event.id)} />\r\n
  • \r\n :\r\n
    \r\n
    handleEdit(e, event)} style={{display: \"inline-block\"}}>\r\n setEditEventValue(e.target.value)}\r\n ref={editForm} />\r\n
    \r\n Back\r\n setCurrentEdit(\"\")} />\r\n \r\n
    \r\n }\r\n else return null\r\n })}
    \r\n setIsFormOpen(false)} addEvent={addEvent}\r\n date={dateToday} children=\"\"/>\r\n )\r\n}","import { useEffect, useState } from \"react\"\r\n\r\n\r\nexport const UseLocalStorage = (key: string, defaultValue: any) => {\r\n const [value, setValue] = useState(() => {\r\n const jsonValue = localStorage.getItem(key)\r\n // we have a value, so return it.\r\n if(jsonValue !== null) return JSON.parse(jsonValue)\r\n if(typeof jsonValue === \"function\") return defaultValue()\r\n else return defaultValue\r\n })\r\n\r\n useEffect(() => {\r\n // we use stringify because you can only pass strings to local storage\r\n localStorage.setItem(key, JSON.stringify(value))\r\n }, [key, value])\r\n\r\n return [value, setValue]\r\n}","import { useState } from \"react\"\r\nimport { Days } from \"./Days\"\r\n\r\nconst DAYS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]\r\nconst MONTHS = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\",\r\n\"October\", \"November\", \"December\"]\r\n\r\nlet today = new Date()\r\n\r\nexport const Calendar = () => {\r\n const [month, setMonth] = useState(today.getMonth())\r\n const [year, setYear] = useState(today.getFullYear())\r\n\r\n function setPrevMonth(month: number) {\r\n if(month - 1 < 0) {\r\n setMonth(11)\r\n setYear((prev) => {\r\n return prev - 1\r\n })\r\n }\r\n else setMonth((prev) => {\r\n return prev - 1\r\n })\r\n }\r\n \r\n function setNextMonth(month: number) {\r\n if(month + 1 > 11) {\r\n setMonth(0)\r\n setYear((prev) => {\r\n return prev + 1\r\n })\r\n }\r\n else setMonth((prev) => {\r\n return prev + 1\r\n })\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n {MONTHS[month]} {year}\r\n \r\n
    \r\n
    \r\n
    \r\n {DAYS.map((day) => {\r\n return {day}\r\n })}\r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}","export const data = [\r\n{\r\n id: \"nv8935\",\r\n image: \"https://images.pexels.com/photos/158398/niagara-falls-waterfall-horseshoe-158398.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\r\n title: \"Best Of Paris In 7 Days Tour\",\r\n price: \"$1,995\",\r\n description: `Paris is synonymous with the finest things that culture can offer — in art, fashion, food, literature, and ideas. On this tour, your Paris-savvy Rick Steves guide will immerse you in the very best of the City of Light: the masterpiece-packed Louvre and Orsay museums, resilient Notre-Dame Cathedral, exquisite Sainte-Chapelle, and extravagant Palace of Versailles. You'll also enjoy guided neighborhood walks through the city's historic heart as well as quieter moments to slow down and savor the city's intimate cafés, colorful markets, and joie de vivre. Join us for the Best of Paris in 7 Days!`\r\n},\r\n{\r\n id: \"n347v9\",\r\n image: \"https://images.pexels.com/photos/2161449/pexels-photo-2161449.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\r\n title: \"Best Of Ireland In 14 Days Tour\",\r\n price: \"$3,895\",\r\n description: `Rick Steves' Best of Ireland tour kicks off with the best of Dublin, followed by Ireland's must-see historical sites, charming towns, music-filled pubs, and seaside getaways — including Kinsale, the Dingle Peninsula, the Cliffs of Moher, the Aran Islands, Galway, Connemara, Giant's Causeway, and the compelling city of Belfast. All along the way, Rick's guides will share their stories to draw you in to the Emerald Isle, and the friendliness of the people will surely steal your heart. Join us for the Best of Ireland in 14 Days!`\r\n},\r\n{\r\n id: \"3n978v\",\r\n image: \"https://images.pexels.com/photos/235648/pexels-photo-235648.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\r\n title: \"Best Of Salzburg & Vienna In 8 Days Tour\",\r\n price: \"$2,695\",\r\n description: `Let's go where classical music, towering castles, and the-hills-are-alive scenery welcome you to the gemütlichkeit of Bavaria and opulence of Austria's Golden Age. Your Rick Steves guide will bring this region's rich history and culture to life in festive Munich, Baroque Salzburg, sparkling Lake Hallstatt, monastic Melk, the blue Danube, and royal Vienna — with cozy villages and alpine vistas all along the way. Join us for the Best of Munich, Salzburg & Vienna in 8 Days!`\r\n},\r\n{\r\n id: \"dfv8bg\",\r\n image: \"https://images.pexels.com/photos/2161467/pexels-photo-2161467.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\r\n title: \"Best Of Rome In 7 Days Tour\",\r\n price: \"$2,095\",\r\n description: `Our Rome tour serves up Europe's most intoxicating brew of dazzling art, earth-shaking history, and city life with style. On this Rome vacation, your tour guide will resurrect the grandeur of ancient Rome's Colosseum, Forum, Pantheon, and nearby Ostia Antica. From the Renaissance and Baroque eras, you'll marvel at St. Peter's Basilica, the Vatican Museums, Sistine Chapel, and Borghese Gallery. You'll also enjoy today's Rome, with neighborhood walking tours, memorable restaurants, and time to explore on your own. Join us for the Best of Rome in 7 Days!`\r\n},\r\n{\r\n id: \"nv8egy\",\r\n image: \"https://images.pexels.com/photos/464440/pexels-photo-464440.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\r\n title: \"Best Of Poland In 10 Days Tour\",\r\n price: \"$2,595\",\r\n description: `Starting in the colorful port city of Gdańsk, you'll escape the crowds and embrace the understated elegance of ready-for-prime-time Poland for 10 days. With an expert Rick Steves guide at your side, you'll experience mighty Malbork castle, the cobbly-cute village of Toruń, Poland's contemporary capital of Warsaw, the spiritual Jasna Góra Monastery, and charming Kraków — Poland's finest city. In this land of surprises — so trendy and hip, yet steeped in history — there's so much to discover. Join us for the Best of Poland in 10 Days!`\r\n},\r\n]","import React, { useState } from 'react'\r\n\r\ntype TourInfo = {\r\n id: string,\r\n image: string,\r\n title: string,\r\n price: string,\r\n description: string,\r\n handleDel: (id: string, e: React.MouseEvent) => void\r\n}\r\n\r\nexport const Tour: React.FC = ({id, image, title, price, description, handleDel} ) => {\r\n const [readMore, setReadMore] = useState(false)\r\n const btnText = React.useRef()\r\n\r\n function handleRead(e: React.MouseEvent) {\r\n e.preventDefault()\r\n setReadMore((prevState) => { return !prevState })\r\n btnText.current.textContent === \"Read More\" ? \r\n btnText.current.textContent = \"Show Less\" : btnText.current.textContent = \"Read More\"\r\n }\r\n\r\n return (\r\n
    \r\n \"pic\r\n
    \r\n {title}\r\n {price}\r\n
    \r\n

    {readMore ? description : `${description.substring(0, 200)}... `}\r\n

    \r\n \r\n
    \r\n )\r\n}\r\n","import React, { useState } from 'react'\r\nimport { data } from './data'\r\nimport { Tour } from './Tour'\r\n\r\nexport const Tours: React.FC = () => {\r\n const [tours, setTours] = useState(data)\r\n function handleDelete(id: string, e: React.MouseEvent) {\r\n e.preventDefault()\r\n setTours((prevTours) => prevTours.filter(tour => tour.id !== id))\r\n }\r\n\r\n function handleRefresh() {\r\n setTours(data)\r\n }\r\n\r\n if(tours.length === 0) {\r\n return (\r\n
    \r\n

    No Tours Left

    \r\n \r\n
    \r\n )\r\n }\r\n return (\r\n
    \r\n

    Our Tours

    \r\n
    \r\n {tours.map((tour) => {\r\n return \r\n })}\r\n
    \r\n
    \r\n )\r\n}\r\n","import React, { useState } from 'react'\r\n\r\ntype TourInfo = {\r\n id: string,\r\n image: string,\r\n title: string,\r\n price: string,\r\n description: string,\r\n handleLeft: () => void,\r\n handleRight: () => void\r\n}\r\n\r\nexport const TourFlip: React.FC = ({id, image, title, price, description, handleLeft, handleRight}) => {\r\n const [readMore, setReadMore] = useState(false)\r\n const btnText = React.useRef()\r\n const curTour = React.useRef()\r\n\r\n function handleRead(e: React.MouseEvent) {\r\n e.preventDefault()\r\n setReadMore((prevState) => { return !prevState })\r\n btnText.current.textContent === \"Read More\" ? \r\n btnText.current.textContent = \"Show Less\" : btnText.current.textContent = \"Read More\"\r\n }\r\n\r\n return (\r\n
    \r\n \"pic\r\n
    \r\n {title}\r\n {price}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n

    {readMore ? description : `${description.substring(0, 200)}... `}\r\n

    \r\n {/* */}\r\n
    \r\n )\r\n}\r\n","import React, { useState } from 'react'\r\nimport { data } from '../Tours/data'\r\nimport { TourFlip } from './TourFlip'\r\n\r\nexport const ToursFlip: React.FC = () => {\r\n // const [tours, setTours] = useState(data)\r\n const [tourIndex, setTourIndex] = useState(0)\r\n\r\n const handleRight = () => {\r\n if(tourIndex >= data.length - 1) {\r\n setTourIndex(() => { return 0 })\r\n }\r\n else {\r\n setTourIndex((prevIndex) => { return prevIndex + 1 })\r\n }\r\n }\r\n\r\n const handleLeft = () => {\r\n if(tourIndex === 0) {\r\n setTourIndex(() => { return data.length - 1 })\r\n }\r\n else {\r\n setTourIndex((prevIndex) => { return prevIndex - 1 })\r\n }\r\n}\r\n \r\n return (\r\n
    \r\n

    Our Tours

    \r\n
    \r\n {data.map((tour, ind) => {\r\n //style={{display:\"flex\", flexDirection: \"row\"}}\r\n let position = \"next-tour\"\r\n if(ind === tourIndex) {\r\n position = \"activeTour\"\r\n }\r\n if(ind === tourIndex - 1 || (tourIndex === 0 && ind === data.length - 1)) {\r\n position = \"prev-tour\"\r\n }\r\n return
    \r\n \r\n
    \r\n })}\r\n
    \r\n
    \r\n )\r\n}\r\n","\r\n\r\nexport const data = [\r\n {\r\n id: 1,\r\n h5: \"MENU\",\r\n p: \"ABOUT\\n\" +\r\n \"SERVICES\\n\" +\r\n \"PORTFOLIO\\n\" +\r\n \"CONTACT\"\r\n },\r\n {\r\n id: 2,\r\n h5: \"ADDRESS\",\r\n p: \"Suite #913\\n\" +\r\n \"Corporation Building\\n\" +\r\n \"Tibb Street\\n\" +\r\n \"Manchester\\n\" + \r\n \"M1 1TA\"\r\n },\r\n {\r\n id: 3,\r\n h5: \"CONTACT\",\r\n p: \"E: info(at)youragency.com\\n\" +\r\n \"T: +44 800 123 456\\n\" +\r\n \"F: +44 800 123 400\"\r\n },\r\n]","import { data } from \"./footer-data\"\r\n\r\nexport const Footer = () => {\r\n return
    \r\n \"logo\"\r\n {data.map((item) => {\r\n return
    \r\n
    {item.h5}
    \r\n {item.id === 1 ? {item.p} :

    {item.p}

    }\r\n
    \r\n })}\r\n
    \r\n}","import MenuIcon from '@mui/icons-material/Menu';\r\nimport { useState } from 'react';\r\n\r\n/* add functionality to the hamburger bar */\r\n\r\nexport const Navbar = () => {\r\n\r\n const [barActive, setBarActive] = useState(false)\r\n\r\n const handleActiveBar = () => {\r\n let nav = document.querySelector(\"#navId\")\r\n let logo = document.querySelector(\"#navLogoId\")\r\n let navItems = document.querySelector(\"#navItemsId\")\r\n if(!barActive) {\r\n nav?.classList.add(\"ca-nav-active\")\r\n logo?.classList.add(\"ca-logo-active\")\r\n navItems?.classList.add(\"ca-nav-items-active\")\r\n }\r\n else {\r\n nav?.classList.remove(\"ca-nav-active\")\r\n logo?.classList.remove(\"ca-logo-active\")\r\n navItems?.classList.remove(\"ca-nav-items-active\")\r\n }\r\n setBarActive((prev) => !prev)\r\n }\r\n\r\n return <>\r\n \r\n \r\n \r\n}","export const data = [\r\n {\r\n id: \"#slide1\",\r\n image: \"https://images.pexels.com/photos/4245826/pexels-photo-4245826.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\r\n h1: \"We can change \\n\" +\r\n \"your digital world\",\r\n h3: \"Bold enough to blow a hole in your next marketing campaign.\",\r\n },\r\n {\r\n id: \"#slide2\",\r\n image: \"https://images.pexels.com/photos/3560168/pexels-photo-3560168.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\r\n h1: \"You need \\n\" +\r\n \"a good partner\",\r\n h3: \"Let us help you realise your true potential\",\r\n },\r\n {\r\n id: \"#slide3\",\r\n image: \"https://images.pexels.com/photos/2387793/pexels-photo-2387793.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1\",\r\n h1: \"Shoot for \\n\" +\r\n \"the hoop!\",\r\n h3: \"Aiming low is not an option for us\",\r\n },\r\n ]","import { data } from \"../header-data\"\r\n\r\ntype slide = {\r\n currentSlide: string\r\n}\r\n\r\nexport const HeaderContent = ({currentSlide}: slide) => {\r\n\r\n return (\r\n
    \r\n {data.map((item) => {\r\n return
    \r\n

    {item.h1}

    \r\n

    {item.h3}

    \r\n
    \r\n })}\r\n
    \r\n )\r\n}","import { Navbar } from \"./Navbar/Navbar\"\r\nimport ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos';\r\nimport ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';\r\nimport { HeaderContent } from \"./Header-Content/HeaderContent\";\r\nimport { useState } from \"react\";\r\nimport { data } from \"./header-data\"\r\n\r\nexport const Header = () => {\r\n const slides = data.map((item) => item.id)\r\n const [currentSlideId, setCurrentSlideId] = useState(\"#slide1\")\r\n\r\n const handlePrev = () => {\r\n let currSlide = document.querySelector(currentSlideId)\r\n if(slides.indexOf(currentSlideId) === 0) {\r\n let nextSlide = document.querySelector(`#slide${slides.length}`)\r\n nextSlide?.classList.add(\"header-lorem-active\")\r\n currSlide?.classList.remove(\"header-lorem-active\")\r\n setCurrentSlideId(slides[slides.length - 1])\r\n }\r\n else {\r\n let nextSlide = document.querySelector(`#slide${slides.indexOf(currentSlideId)}`)\r\n nextSlide?.classList.add(\"header-lorem-active\")\r\n currSlide?.classList.remove(\"header-lorem-active\")\r\n setCurrentSlideId(`#slide${slides.indexOf(currentSlideId)}`)\r\n }\r\n }\r\n\r\n const handleNext = () => {\r\n let currSlide = document.querySelector(currentSlideId)\r\n if(slides.indexOf(currentSlideId) === slides.length - 1) {\r\n let nextSlide = document.querySelector(slides[0])\r\n nextSlide?.classList.add(\"header-lorem-active\")\r\n currSlide?.classList.remove(\"header-lorem-active\")\r\n setCurrentSlideId(slides[0])\r\n }\r\n else {\r\n let nextSlide = document.querySelector(`#slide${slides.indexOf(currentSlideId) + 2}`)\r\n nextSlide?.classList.add(\"header-lorem-active\")\r\n currSlide?.classList.remove(\"header-lorem-active\")\r\n setCurrentSlideId(`#slide${slides.indexOf(currentSlideId) + 2}`)\r\n }\r\n }\r\n\r\n return (\r\n
    obj.id === currentSlideId)?.image})`}}>\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n )\r\n}","import AlbumIcon from '@mui/icons-material/Album';\r\n\r\nexport const data = [\r\n {\r\n id: 1,\r\n icon: \"\",\r\n image:\"https://daks2k3a4ib2z.cloudfront.net/5527a015715879bc5767ece2/552aa58c3b36ca374dffe8ee_port1.jpeg\",\r\n h1: \"Creative\\n\" +\r\n \"& fresh\",\r\n h3: \"Our digital agency\",\r\n desc: `Focus infographic venture business model canvas gamification ecosystem. \r\n Business plan gamification user experience low hanging fruit twitter. Metrics research & development\r\n market paradigm shift growth hacking disruptive user experience iPad social media angel investor alpha.\r\n Social proof lean startup alpha scrum project non-disclosure agreement.`,\r\n btnDesc: \"VIEW PORTFOLIO\"\r\n },\r\n {\r\n id: 2,\r\n icon: \"\",\r\n image:\"https://daks2k3a4ib2z.cloudfront.net/5527a015715879bc5767ece2/552aad0d416f90126f4e859a_port3.jpeg\",\r\n h1: \"Hip\\n\" +\r\n \"& Funky\",\r\n h3: \"We try new things\",\r\n desc: `Focus infographic venture business model canvas gamification ecosystem. \r\n Business plan gamification user experience low hanging fruit twitter. Metrics research & development\r\n market paradigm shift growth hacking disruptive user experience iPad social media angel investor alpha.\r\n Social proof lean startup alpha scrum project non-disclosure agreement.`,\r\n btnDesc: \"OUR SERVICES\"\r\n },\r\n {\r\n id: 3,\r\n icon: \"\",\r\n image:\"https://daks2k3a4ib2z.cloudfront.net/5527a015715879bc5767ece2/552b90f8a2ec8d8276bfb9dc_port4.jpg\",\r\n h1: \"Things\\n\" +\r\n \"we do\",\r\n h3: \"We exist to create\",\r\n desc: `Focus infographic venture business model canvas gamification ecosystem. \r\n Business plan gamification user experience low hanging fruit twitter. Metrics research & development\r\n market paradigm shift growth hacking disruptive user experience iPad social media angel investor alpha.\r\n Social proof lean startup alpha scrum project non-disclosure agreement.`,\r\n btnDesc: \"GET IN TOUCH\"\r\n }\r\n]\r\n\r\nexport const data2 = [\r\n {\r\n id: 4,\r\n icon: ,\r\n h1: \"Branding\",\r\n desc: `Focus infographic venture business model canvas gamification ecosystem. \r\n Business plan gamification user experience low hanging fruit twitter. Metrics research & development\r\n market paradigm shift growth hacking disruptive user experience iPad social media angel investor alpha.\r\n Social proof lean startup alpha scrum project non-disclosure agreement.`,\r\n },\r\n {\r\n id: 5,\r\n icon: ,\r\n h1: \"Web Design\",\r\n desc: `Focus infographic venture business model canvas gamification ecosystem. \r\n Business plan gamification user experience low hanging fruit twitter. Metrics research & development\r\n market paradigm shift growth hacking disruptive user experience iPad social media angel investor alpha.\r\n Social proof lean startup alpha scrum project non-disclosure agreement.`,\r\n },\r\n {\r\n id: 6,\r\n icon: ,\r\n h1: \"Graphic Design\",\r\n desc: `Focus infographic venture business model canvas gamification ecosystem. \r\n Business plan gamification user experience low hanging fruit twitter. Metrics research & development\r\n market paradigm shift growth hacking disruptive user experience iPad social media angel investor alpha.\r\n Social proof lean startup alpha scrum project non-disclosure agreement.`,\r\n }\r\n]\r\n","import { data, data2 } from \"./MainContent-data\"\r\n\r\nexport const MainContent = () => {\r\n return (<>\r\n
    \r\n {data.map((item) => {\r\n if(item.id % 2 === 1) {\r\n return (\r\n
    \r\n \"img\"\r\n
    \r\n

    {item.h1}

    \r\n

    {item.h3}

    \r\n

    {item.desc}

    \r\n \r\n
    \r\n
    \r\n )\r\n }\r\n else {\r\n return (\r\n
    \r\n
    \r\n

    {item.h1}

    \r\n

    {item.h3}

    \r\n

    {item.desc}

    \r\n \r\n
    \r\n \"img\"\r\n
    \r\n )\r\n }\r\n })}\r\n
    \r\n
    \r\n {data2.map((item) => {\r\n return (\r\n
    \r\n {item.icon}\r\n

    {item.h1}

    \r\n

    {item.desc}

    \r\n
    \r\n )\r\n })}\r\n
    \r\n \r\n )\r\n}\r\n\r\n/* animate the elements as needed */","import { useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { Footer } from \"./Footer/Footer\";\r\nimport { Header } from \"./Header/Header\"\r\nimport { MainContent } from \"./MainContent/MainContent\"\r\n\r\nwindow.addEventListener(\"scroll\", reveal);\r\n\r\nfunction reveal() {\r\n let reveals = document.querySelectorAll(\".ca-bottom-info\")\r\n let h1Reveals = document.querySelectorAll(\".h1-reveal\")\r\n let h3Reveals = document.querySelectorAll(\".h3-reveal\")\r\n\r\n for(let i = 0; i < reveals.length; i++) {\r\n let windowHeight = window.innerHeight\r\n let revealTop = reveals[i].getBoundingClientRect().top\r\n let revealPoint = 150\r\n\r\n if(revealTop < windowHeight - revealPoint) {\r\n reveals[i].classList.add(`ca-bottom-info-active${i+1}`)\r\n }\r\n }\r\n\r\n for(let i = 0; i < h1Reveals.length; i++) {\r\n let windowHeight = window.innerHeight\r\n let revealTop = h1Reveals[i].getBoundingClientRect().top\r\n let revealPoint = 100\r\n\r\n if(revealTop < windowHeight - revealPoint) {\r\n h1Reveals[i].classList.add(`h1-active`)\r\n h3Reveals[i].classList.add(\"h3-active\")\r\n }\r\n }\r\n}\r\n\r\nexport const MainSite = () => {\r\n\r\n const { pathname } = useLocation();\r\n\r\n useEffect(() => {\r\n window.scrollTo(0,0)\r\n },[pathname])\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}","import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';\n// import { Navbar } from './components/navbar/Navbar';\nimport { Home } from './components/main-page/Home';\n// import { Projects } from './components/projects/Projects';\nimport { DishesList } from './components/dish-list/DishesList';\nimport { DishInfo } from './components/dish/dish-info/DishInfo';\nimport { Calculator } from './components/Calculator/Calculator.js';\nimport { Calendar } from './components/Calendar/Calendar';\nimport { Tours } from './PracticeProjects/Tours/Tours';\nimport { ToursFlip } from './PracticeProjects/ToursFlip/ToursFlip';\nimport { MainSite } from './PracticeProjects/Creative-Agency-Clone/MainSite';\n\n\n\n\nfunction App() {\n return (\n \n {/* */}\n \n \n \n \n {/* \n \n */}\n \n {/* Home */}\n \n \n \n {/* Home */}\n \n \n \n {/* Home */}\n \n \n \n {/* Home */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\nimport './index.css';\nimport { AppProvider } from './context'\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root')\n);\n"],"sourceRoot":""}